VirtualBox

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


Ignore:
Timestamp:
Apr 1, 2015 2:50:42 PM (10 years ago)
Author:
vboxsync
Message:

5.0.0 Beta 1 (and backed out r99347 as it might have caused a regression)

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

Legend:

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

    r52439 r55078  
    856856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857857_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 09ah, 079h, 062h, 087h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 05dh, 07bh, 025h, 089h
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860     db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 091h, 036h, 091h, 036h
     860    db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 054h, 038h, 054h, 038h
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h
    863     db  028h, 078h, 0e1h, 078h, 05eh, 086h, 0f2h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     863    db  0ebh, 079h, 0a4h, 07ah, 021h, 088h, 0b5h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865865
     
    871871    db   'bios_printf: unknown format', 00ah, 000h, 000h
    872872    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
    873     db   'ata%d-%d: PCHS=%u/%d/%d LCHS=%u/%u/%u', 00ah, 000h
     873    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
    874874    db   'ata-detect: Failed to detect ATAPI device', 00ah, 000h
    875875    db   ' slave', 000h
     
    968968    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
    969969    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
    970     db   'SCSI %d-ID#%d: LCHS=%u/%u/%u %ld sectors', 00ah, 000h
     970    db   'SCSI %d-ID#%d: LCHS=%u/%u/%u %lu sectors', 00ah, 000h
    971971    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
    972972    db   'ahci_read_sectors', 000h
     
    975975    db   'ahci_cmd_packet', 000h
    976976    db   '%s: DATA_OUT not supported yet', 00ah, 000h
    977     db   'AHCI %d-P#%d: PCHS=%u/%d/%d LCHS=%u/%u/%u %ld sectors', 00ah, 000h, 000h
     977    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u %lu sectors', 00ah, 000h, 000h
    978978    db   'Standby', 000h
    979979    db   'Suspend', 000h
     
    982982    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    983983
    984 section CONST2 progbits vstart=0xd90 align=1 ; size=0x3fa class=DATA group=DGROUP
    985 _bios_cvs_version_string:                    ; 0xf0d90 LB 0x12
    986     db  'VirtualBox 4.3.53', 000h
    987 _bios_prefix_string:                         ; 0xf0da2 LB 0x8
     984section CONST2 progbits vstart=0xd90 align=1 ; size=0x400 class=DATA group=DGROUP
     985_bios_cvs_version_string:                    ; 0xf0d90 LB 0x18
     986    db  'VirtualBox 5.0.0_BETA1', 000h, 000h
     987_bios_prefix_string:                         ; 0xf0da8 LB 0x8
    988988    db  'BIOS: ', 000h, 000h
    989 _isotag:                                     ; 0xf0daa LB 0x6
     989_isotag:                                     ; 0xf0db0 LB 0x6
    990990    db  'CD001', 000h
    991 _eltorito:                                   ; 0xf0db0 LB 0x18
     991_eltorito:                                   ; 0xf0db6 LB 0x18
    992992    db  'EL TORITO SPECIFICATION', 000h
    993 _drivetypes:                                 ; 0xf0dc8 LB 0x28
     993_drivetypes:                                 ; 0xf0dce LB 0x28
    994994    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    995995    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    996996    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    997 _scan_to_scanascii:                          ; 0xf0df0 LB 0x37a
     997_scan_to_scanascii:                          ; 0xf0df6 LB 0x37a
    998998    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    999999    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    10521052    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    10531053    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1054 _panic_msg_keyb_buffer_full:                 ; 0xf116a LB 0x20
     1054_panic_msg_keyb_buffer_full:                 ; 0xf1170 LB 0x20
    10551055    db  '%s: keyboard input buffer full', 00ah, 000h
    10561056
    1057   ; Padding 0x476 bytes at 0xf118a
    1058   times 1142 db 0
     1057  ; Padding 0x470 bytes at 0xf1190
     1058  times 1136 db 0
    10591059
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8025 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x81e5 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x50
    10621062    push bp                                   ; 55
     
    12801280    push bp                                   ; 55
    12811281    mov bp, sp                                ; 89 e5
    1282     mov bx, 00da2h                            ; bb a2 0d
     1282    mov bx, 00da8h                            ; bb a8 0d
    12831283    mov cx, ds                                ; 8c d9
    12841284    mov ax, strict word 00004h                ; b8 04 00
     
    13091309    int 010h                                  ; cd 10
    13101310    jmp short 017c1h                          ; eb 03
    1311     call 07437h                               ; e8 76 5c
     1311    call 075fah                               ; e8 39 5e
    13121312    mov sp, bp                                ; 89 ec
    13131313    pop bp                                    ; 5d
     
    14551455    mov bx, strict word 0000ah                ; bb 0a 00
    14561456    xor cx, cx                                ; 31 c9
    1457     call 09530h                               ; e8 57 7c
     1457    call 096f0h                               ; e8 17 7e
    14581458    mov word [bp-008h], ax                    ; 89 46 f8
    14591459    mov cx, dx                                ; 89 d1
     
    24182418    mov dx, ss                                ; 8c d2
    24192419    lea ax, [bp-036h]                         ; 8d 46 ca
    2420     call 053f3h                               ; e8 d6 31
    2421     mov bx, 00da2h                            ; bb a2 0d
     2420    call 055b6h                               ; e8 99 33
     2421    mov bx, 00da8h                            ; bb a8 0d
    24222422    mov cx, ds                                ; 8c d9
    24232423    mov ax, strict word 00004h                ; b8 04 00
     
    30673067    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    30683068    jne short 028e1h                          ; 75 1f
    3069     mov bx, 00da2h                            ; bb a2 0d
     3069    mov bx, 00da8h                            ; bb a8 0d
    30703070    mov cx, ds                                ; 8c d9
    30713071    mov ax, strict word 00004h                ; b8 04 00
     
    38293829    pop bp                                    ; 5d
    38303830    retn                                      ; c3
    3831 _int13_diskette_function:                    ; 0xf2f2e LB 0x734
     3831_int13_diskette_function:                    ; 0xf2f2e LB 0x8f7
    38323832    push bp                                   ; 55
    38333833    mov bp, sp                                ; 89 e5
    38343834    push si                                   ; 56
    38353835    push di                                   ; 57
    3836     sub sp, strict byte 00012h                ; 83 ec 12
     3836    sub sp, strict byte 00016h                ; 83 ec 16
    38373837    mov bx, word [bp+016h]                    ; 8b 5e 16
    38383838    shr bx, 008h                              ; c1 eb 08
    3839     mov ch, bl                                ; 88 dd
     3839    mov byte [bp-006h], bl                    ; 88 5e fa
    38403840    mov si, word [bp+016h]                    ; 8b 76 16
    38413841    and si, 000ffh                            ; 81 e6 ff 00
    3842     mov ah, byte [bp+00eh]                    ; 8a 66 0e
     3842    mov al, byte [bp+00eh]                    ; 8a 46 0e
     3843    mov ah, byte [bp+014h]                    ; 8a 66 14
     3844    mov cl, byte [bp+016h]                    ; 8a 4e 16
     3845    mov dx, word [bp+014h]                    ; 8b 56 14
     3846    shr dx, 008h                              ; c1 ea 08
     3847    mov word [bp-010h], dx                    ; 89 56 f0
    38433848    cmp bl, 008h                              ; 80 fb 08
    3844     jc short 02f85h                           ; 72 38
     3849    jc short 02f95h                           ; 72 38
    38453850    mov dx, word [bp+01ch]                    ; 8b 56 1c
    38463851    or dl, 001h                               ; 80 ca 01
    38473852    cmp bl, 008h                              ; 80 fb 08
    3848     jbe near 034e1h                           ; 0f 86 87 05
     3853    jbe near 034ebh                           ; 0f 86 81 05
    38493854    cmp bl, 016h                              ; 80 fb 16
    3850     jc short 02f7bh                           ; 72 1c
     3855    jc short 02f8bh                           ; 72 1c
    38513856    or si, 00100h                             ; 81 ce 00 01
    38523857    cmp bl, 016h                              ; 80 fb 16
    3853     jbe near 0361dh                           ; 0f 86 b3 06
     3858    jbe near 0361fh                           ; 0f 86 a5 06
    38543859    cmp bl, 018h                              ; 80 fb 18
    3855     je near 03622h                            ; 0f 84 b1 06
     3860    je near 036b5h                            ; 0f 84 34 07
    38563861    cmp bl, 017h                              ; 80 fb 17
    3857     je near 03622h                            ; 0f 84 aa 06
    3858     jmp near 0363fh                           ; e9 c4 06
     3862    je near 03643h                            ; 0f 84 bb 06
     3863    jmp near 03802h                           ; e9 77 08
    38593864    cmp bl, 015h                              ; 80 fb 15
    3860     je near 035d7h                            ; 0f 84 55 06
    3861     jmp near 0363fh                           ; e9 ba 06
     3865    je near 035dbh                            ; 0f 84 49 06
     3866    jmp near 03802h                           ; e9 6d 08
    38623867    cmp bl, 001h                              ; 80 fb 01
    3863     jc short 02f9fh                           ; 72 15
    3864     jbe near 03018h                           ; 0f 86 8a 00
     3868    jc short 02fafh                           ; 72 15
     3869    jbe near 03028h                           ; 0f 86 8a 00
    38653870    cmp bl, 005h                              ; 80 fb 05
    3866     je near 0335bh                            ; 0f 84 c6 03
     3871    je near 03365h                            ; 0f 84 c0 03
    38673872    cmp bl, 004h                              ; 80 fb 04
    3868     jbe near 03036h                           ; 0f 86 9a 00
    3869     jmp near 0363fh                           ; e9 a0 06
     3873    jbe near 03046h                           ; 0f 86 9a 00
     3874    jmp near 03802h                           ; e9 53 08
    38703875    test bl, bl                               ; 84 db
    3871     jne near 0363fh                           ; 0f 85 9a 06
     3876    jne near 03802h                           ; 0f 85 4d 08
    38723877    mov al, byte [bp+00eh]                    ; 8a 46 0e
    3873     mov byte [bp-00eh], al                    ; 88 46 f2
     3878    mov byte [bp-008h], al                    ; 88 46 f8
    38743879    cmp AL, strict byte 001h                  ; 3c 01
    3875     jbe short 02fc3h                          ; 76 14
     3880    jbe short 02fd3h                          ; 76 14
    38763881    mov ax, word [bp+016h]                    ; 8b 46 16
    38773882    xor ah, ah                                ; 30 e4
     
    38793884    mov word [bp+016h], ax                    ; 89 46 16
    38803885    mov ax, strict word 00001h                ; b8 01 00
    3881     call 02bf7h                               ; e8 37 fc
    3882     jmp near 03337h                           ; e9 74 03
     3886    call 02bf7h                               ; e8 27 fc
     3887    jmp near 03341h                           ; e9 6e 03
    38833888    mov ax, strict word 00010h                ; b8 10 00
    3884     call 016ach                               ; e8 e3 e6
    3885     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3886     jne short 02fd6h                          ; 75 07
    3887     mov dl, al                                ; 88 c2
    3888     shr dl, 004h                              ; c0 ea 04
    3889     jmp short 02fdbh                          ; eb 05
    3890     mov dl, al                                ; 88 c2
    3891     and dl, 00fh                              ; 80 e2 0f
    3892     test dl, dl                               ; 84 d2
    3893     jne short 02fefh                          ; 75 10
     3889    call 016ach                               ; e8 d3 e6
     3890    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3891    jne short 02fe6h                          ; 75 07
     3892    mov cl, al                                ; 88 c1
     3893    shr cl, 004h                              ; c0 e9 04
     3894    jmp short 02febh                          ; eb 05
     3895    mov cl, al                                ; 88 c1
     3896    and cl, 00fh                              ; 80 e1 0f
     3897    test cl, cl                               ; 84 c9
     3898    jne short 02fffh                          ; 75 10
    38943899    mov ax, word [bp+016h]                    ; 8b 46 16
    38953900    xor ah, ah                                ; 30 e4
     
    38973902    mov word [bp+016h], ax                    ; 89 46 16
    38983903    mov ax, 00080h                            ; b8 80 00
    3899     jmp short 02fbdh                          ; eb ce
     3904    jmp short 02fcdh                          ; eb ce
    39003905    xor bx, bx                                ; 31 db
    39013906    mov dx, strict word 0003eh                ; ba 3e 00
    39023907    mov ax, strict word 00040h                ; b8 40 00
    3903     call 0165eh                               ; e8 64 e6
     3908    call 0165eh                               ; e8 54 e6
    39043909    xor al, al                                ; 30 c0
    39053910    mov byte [bp+017h], al                    ; 88 46 17
    39063911    xor ah, ah                                ; 30 e4
    3907     call 02bf7h                               ; e8 f3 fb
     3912    call 02bf7h                               ; e8 e3 fb
    39083913    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    3909     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3914    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39103915    xor dx, dx                                ; 31 d2
    3911     call 02c0fh                               ; e8 fe fb
     3916    call 02c0fh                               ; e8 ee fb
    39123917    lea sp, [bp-004h]                         ; 8d 66 fc
    39133918    pop di                                    ; 5f
     
    39183923    mov dx, 00441h                            ; ba 41 04
    39193924    xor ax, ax                                ; 31 c0
    3920     call 01650h                               ; e8 2c e6
     3925    call 01650h                               ; e8 1c e6
    39213926    movzx dx, al                              ; 0f b6 d0
    39223927    sal dx, 008h                              ; c1 e2 08
     
    39243929    mov word [bp+016h], si                    ; 89 76 16
    39253930    test al, al                               ; 84 c0
    3926     je short 03011h                           ; 74 de
    3927     jmp near 03337h                           ; e9 01 03
    3928     mov al, byte [bp+016h]                    ; 8a 46 16
    3929     mov byte [bp-00ch], al                    ; 88 46 f4
    3930     mov dx, word [bp+014h]                    ; 8b 56 14
    3931     shr dx, 008h                              ; c1 ea 08
    3932     mov byte [bp-006h], dl                    ; 88 56 fa
    3933     mov al, byte [bp+014h]                    ; 8a 46 14
    3934     mov byte [bp-00ah], al                    ; 88 46 f6
     3931    je short 03021h                           ; 74 de
     3932    jmp near 03341h                           ; e9 fb 02
     3933    mov ch, cl                                ; 88 cd
     3934    mov dl, byte [bp-010h]                    ; 8a 56 f0
     3935    mov byte [bp-00ch], dl                    ; 88 56 f4
     3936    mov byte [bp-00ah], ah                    ; 88 66 f6
    39353937    mov dx, word [bp+012h]                    ; 8b 56 12
    39363938    shr dx, 008h                              ; c1 ea 08
    3937     mov byte [bp-008h], dl                    ; 88 56 f8
    3938     mov byte [bp-00eh], ah                    ; 88 66 f2
    3939     cmp ah, 001h                              ; 80 fc 01
    3940     jnbe short 0306ch                         ; 77 10
     3939    mov byte [bp-00eh], dl                    ; 88 56 f2
     3940    mov byte [bp-008h], al                    ; 88 46 f8
     3941    cmp AL, strict byte 001h                  ; 3c 01
     3942    jnbe short 0306fh                         ; 77 0e
    39413943    cmp dl, 001h                              ; 80 fa 01
    3942     jnbe short 0306ch                         ; 77 0b
    3943     mov al, byte [bp-00ch]                    ; 8a 46 f4
    3944     test al, al                               ; 84 c0
    3945     je short 0306ch                           ; 74 04
    3946     cmp AL, strict byte 048h                  ; 3c 48
    3947     jbe short 03095h                          ; 76 29
    3948     mov bx, 00da2h                            ; bb a2 0d
     3944    jnbe short 0306fh                         ; 77 09
     3945    test cl, cl                               ; 84 c9
     3946    je short 0306fh                           ; 74 05
     3947    cmp cl, 048h                              ; 80 f9 48
     3948    jbe short 03099h                          ; 76 2a
     3949    mov bx, 00da8h                            ; bb a8 0d
    39493950    mov cx, ds                                ; 8c d9
    39503951    mov ax, strict word 00004h                ; b8 04 00
    3951     call 01931h                               ; e8 ba e8
     3952    call 01931h                               ; e8 b7 e8
    39523953    push 00255h                               ; 68 55 02
    39533954    push 0026dh                               ; 68 6d 02
    39543955    push strict byte 00004h                   ; 6a 04
    3955     call 01972h                               ; e8 f0 e8
     3956    call 01972h                               ; e8 ed e8
    39563957    add sp, strict byte 00006h                ; 83 c4 06
    39573958    mov ax, word [bp+016h]                    ; 8b 46 16
     
    39603961    mov word [bp+016h], ax                    ; 89 46 16
    39613962    mov ax, strict word 00001h                ; b8 01 00
    3962     jmp short 03106h                          ; eb 71
    3963     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3964     call 02f0ah                               ; e8 6e fe
     3963    jmp near 0310fh                           ; e9 76 00
     3964    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3965    call 02f0ah                               ; e8 6a fe
    39653966    test ax, ax                               ; 85 c0
    3966     je near 03199h                            ; 0f 84 f7 00
    3967     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     3967    je near 031a2h                            ; 0f 84 fc 00
     3968    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    39683969    mov ax, dx                                ; 89 d0
    3969     call 02d4fh                               ; e8 a4 fc
     3970    call 02d4fh                               ; e8 a0 fc
    39703971    test ax, ax                               ; 85 c0
    3971     jne short 030c8h                          ; 75 19
     3972    jne short 030cch                          ; 75 19
    39723973    mov ax, dx                                ; 89 d0
    3973     call 02e1ah                               ; e8 66 fd
     3974    call 02e1ah                               ; e8 62 fd
    39743975    test ax, ax                               ; 85 c0
    3975     jne short 030c8h                          ; 75 10
     3976    jne short 030cch                          ; 75 10
    39763977    mov ax, word [bp+016h]                    ; 8b 46 16
    39773978    xor ah, ah                                ; 30 e4
     
    39793980    mov word [bp+016h], ax                    ; 89 46 16
    39803981    mov ax, strict word 0000ch                ; b8 0c 00
    3981     jmp short 03106h                          ; eb 3e
    3982     cmp ch, 002h                              ; 80 fd 02
    3983     jne near 03230h                           ; 0f 85 61 01
    3984     mov cx, word [bp+006h]                    ; 8b 4e 06
    3985     shr cx, 00ch                              ; c1 e9 0c
    3986     mov ah, cl                                ; 88 cc
     3982    jmp short 0310fh                          ; eb 43
     3983    cmp byte [bp-006h], 002h                  ; 80 7e fa 02
     3984    jne near 03234h                           ; 0f 85 60 01
     3985    mov ax, word [bp+006h]                    ; 8b 46 06
     3986    shr ax, 00ch                              ; c1 e8 0c
     3987    mov cl, al                                ; 88 c1
    39873988    mov dx, word [bp+006h]                    ; 8b 56 06
    39883989    sal dx, 004h                              ; c1 e2 04
    39893990    mov bx, word [bp+010h]                    ; 8b 5e 10
    39903991    add bx, dx                                ; 01 d3
    3991     cmp bx, dx                                ; 39 d3
    3992     jnc short 030e8h                          ; 73 02
    3993     db  0feh, 0c4h
    3994     ; inc ah                                    ; fe c4
    3995     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    3996     sal cx, 009h                              ; c1 e1 09
    3997     dec cx                                    ; 49
    3998     mov dx, bx                                ; 89 da
    3999     add dx, cx                                ; 01 ca
     3992    mov word [bp-012h], bx                    ; 89 5e ee
    40003993    cmp dx, bx                                ; 39 da
    4001     jnc short 03110h                          ; 73 18
     3994    jbe short 030f0h                          ; 76 02
     3995    db  0feh, 0c1h
     3996    ; inc cl                                    ; fe c1
     3997    movzx bx, ch                              ; 0f b6 dd
     3998    sal bx, 009h                              ; c1 e3 09
     3999    dec bx                                    ; 4b
     4000    mov ax, word [bp-012h]                    ; 8b 46 ee
     4001    add ax, bx                                ; 01 d8
     4002    cmp ax, word [bp-012h]                    ; 3b 46 ee
     4003    jnc short 03119h                          ; 73 18
    40024004    mov ax, word [bp+016h]                    ; 8b 46 16
    40034005    xor ah, ah                                ; 30 e4
     
    40054007    mov word [bp+016h], ax                    ; 89 46 16
    40064008    mov ax, strict word 00009h                ; b8 09 00
    4007     call 02bf7h                               ; e8 ee fa
     4009    call 02bf7h                               ; e8 e5 fa
    40084010    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4009     jmp near 03337h                           ; e9 27 02
     4011    jmp near 03341h                           ; e9 28 02
    40104012    mov AL, strict byte 006h                  ; b0 06
    40114013    mov dx, strict word 0000ah                ; ba 0a 00
     
    40144016    mov dx, strict word 0000ch                ; ba 0c 00
    40154017    out DX, AL                                ; ee
     4018    mov al, byte [bp-012h]                    ; 8a 46 ee
     4019    mov dx, strict word 00004h                ; ba 04 00
     4020    out DX, AL                                ; ee
     4021    mov ax, word [bp-012h]                    ; 8b 46 ee
     4022    shr ax, 008h                              ; c1 e8 08
     4023    out DX, AL                                ; ee
     4024    xor al, al                                ; 30 c0
     4025    mov dx, strict word 0000ch                ; ba 0c 00
     4026    out DX, AL                                ; ee
    40164027    mov al, bl                                ; 88 d8
    4017     mov dx, strict word 00004h                ; ba 04 00
    4018     out DX, AL                                ; ee
    4019     shr bx, 008h                              ; c1 eb 08
    4020     mov al, bl                                ; 88 d8
    4021     out DX, AL                                ; ee
    4022     xor al, bl                                ; 30 d8
    4023     mov dx, strict word 0000ch                ; ba 0c 00
    4024     out DX, AL                                ; ee
    4025     mov al, cl                                ; 88 c8
    40264028    mov dx, strict word 00005h                ; ba 05 00
    40274029    out DX, AL                                ; ee
    4028     shr cx, 008h                              ; c1 e9 08
    4029     mov al, cl                                ; 88 c8
     4030    mov ax, bx                                ; 89 d8
     4031    shr ax, 008h                              ; c1 e8 08
    40304032    out DX, AL                                ; ee
    40314033    mov AL, strict byte 046h                  ; b0 46
    40324034    mov dx, strict word 0000bh                ; ba 0b 00
    40334035    out DX, AL                                ; ee
    4034     mov al, ah                                ; 88 e0
     4036    mov al, cl                                ; 88 c8
    40354037    mov dx, 00081h                            ; ba 81 00
    40364038    out DX, AL                                ; ee
     
    40384040    mov dx, strict word 0000ah                ; ba 0a 00
    40394041    out DX, AL                                ; ee
    4040     out DX, AL                                ; ee
    4041     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4042     call 02cceh                               ; e8 7a fb
     4042    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4043    call 02cceh                               ; e8 70 fb
    40434044    mov AL, strict byte 0e6h                  ; b0 e6
    40444045    mov dx, 003f5h                            ; ba f5 03
    40454046    out DX, AL                                ; ee
     4047    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     4048    sal dx, 002h                              ; c1 e2 02
    40464049    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4047     sal ax, 002h                              ; c1 e0 02
    4048     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    40494050    or ax, dx                                 ; 09 d0
    40504051    mov dx, 003f5h                            ; ba f5 03
    40514052    out DX, AL                                ; ee
    4052     mov al, byte [bp-006h]                    ; 8a 46 fa
    4053     out DX, AL                                ; ee
    4054     mov al, byte [bp-008h]                    ; 8a 46 f8
     4053    mov al, byte [bp-00ch]                    ; 8a 46 f4
     4054    out DX, AL                                ; ee
     4055    mov al, byte [bp-00eh]                    ; 8a 46 f2
    40554056    out DX, AL                                ; ee
    40564057    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    40594060    out DX, AL                                ; ee
    40604061    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    4061     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4062    movzx ax, ch                              ; 0f b6 c5
    40624063    add ax, dx                                ; 01 d0
    40634064    dec ax                                    ; 48
     
    40684069    mov AL, strict byte 0ffh                  ; b0 ff
    40694070    out DX, AL                                ; ee
    4070     call 02c5dh                               ; e8 cb fa
     4071    call 02c5dh                               ; e8 c2 fa
    40714072    test al, al                               ; 84 c0
    4072     jne short 031aah                          ; 75 14
    4073     call 02ca3h                               ; e8 0a fb
     4073    jne short 031b3h                          ; 75 14
     4074    call 02ca3h                               ; e8 01 fb
    40744075    mov ax, word [bp+016h]                    ; 8b 46 16
    40754076    xor ah, ah                                ; 30 e4
     
    40774078    mov word [bp+016h], ax                    ; 89 46 16
    40784079    mov ax, 00080h                            ; b8 80 00
    4079     jmp near 03106h                           ; e9 5c ff
     4080    jmp near 0310fh                           ; e9 5c ff
    40804081    mov dx, 003f4h                            ; ba f4 03
    40814082    in AL, DX                                 ; ec
     
    40844085    and AL, strict byte 0c0h                  ; 24 c0
    40854086    cmp AL, strict byte 0c0h                  ; 3c c0
    4086     je short 031c4h                           ; 74 0e
     4087    je short 031cdh                           ; 74 0e
    40874088    push 00255h                               ; 68 55 02
    40884089    push 00288h                               ; 68 88 02
    40894090    push strict byte 00007h                   ; 6a 07
    4090     call 01972h                               ; e8 b1 e7
     4091    call 01972h                               ; e8 a8 e7
    40914092    add sp, strict byte 00006h                ; 83 c4 06
    40924093    xor si, si                                ; 31 f6
    4093     jmp short 031cdh                          ; eb 05
     4094    jmp short 031d6h                          ; eb 05
    40944095    cmp si, strict byte 00007h                ; 83 fe 07
    4095     jnl short 031e5h                          ; 7d 18
     4096    jnl short 031eeh                          ; 7d 18
    40964097    mov dx, 003f5h                            ; ba f5 03
    40974098    in AL, DX                                 ; ec
    40984099    db  02ah, 0e4h
    40994100    ; sub ah, ah                                ; 2a e4
    4100     mov byte [bp+si-016h], al                 ; 88 42 ea
     4101    mov byte [bp+si-01ah], al                 ; 88 42 e6
    41014102    movzx bx, al                              ; 0f b6 d8
    41024103    lea dx, [si+042h]                         ; 8d 54 42
    41034104    mov ax, strict word 00040h                ; b8 40 00
    4104     call 0165eh                               ; e8 7c e4
     4105    call 0165eh                               ; e8 73 e4
    41054106    inc si                                    ; 46
    4106     jmp short 031c8h                          ; eb e3
    4107     test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4108     je short 031fch                           ; 74 11
     4107    jmp short 031d1h                          ; eb e3
     4108    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
     4109    je short 03205h                           ; 74 11
    41094110    mov ax, word [bp+016h]                    ; 8b 46 16
    41104111    xor ah, ah                                ; 30 e4
     
    41124113    mov word [bp+016h], ax                    ; 89 46 16
    41134114    mov ax, strict word 00020h                ; b8 20 00
    4114     jmp near 03106h                           ; e9 0a ff
    4115     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4115    jmp near 0310fh                           ; e9 0a ff
     4116    movzx ax, ch                              ; 0f b6 c5
    41164117    sal ax, 009h                              ; c1 e0 09
    41174118    cwd                                       ; 99
     
    41194120    ; sub ax, dx                                ; 2b c2
    41204121    sar ax, 1                                 ; d1 f8
     4122    mov cx, ax                                ; 89 c1
    41214123    mov si, word [bp+010h]                    ; 8b 76 10
    41224124    mov dx, word [bp+006h]                    ; 8b 56 06
    41234125    mov di, si                                ; 89 f7
    41244126    mov es, dx                                ; 8e c2
    4125     mov cx, ax                                ; 89 c1
    41264127    push DS                                   ; 1e
    41274128    mov ds, dx                                ; 8e da
    41284129    rep movsw                                 ; f3 a5
    41294130    pop DS                                    ; 1f
    4130     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4131     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4132     call 02c0fh                               ; e8 ea f9
     4131    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     4132    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4133    call 02c0fh                               ; e8 e2 f9
    41334134    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4134     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4135     jmp near 03011h                           ; e9 e1 fd
    4136     cmp ch, 003h                              ; 80 fd 03
    4137     jne near 03345h                           ; 0f 85 0e 01
     4135    jmp near 036aeh                           ; e9 7a 04
     4136    cmp byte [bp-006h], 003h                  ; 80 7e fa 03
     4137    jne near 0334fh                           ; 0f 85 13 01
     4138    mov ax, word [bp+006h]                    ; 8b 46 06
     4139    shr ax, 00ch                              ; c1 e8 0c
     4140    mov cl, al                                ; 88 c1
    41384141    mov dx, word [bp+006h]                    ; 8b 56 06
    4139     shr dx, 00ch                              ; c1 ea 0c
    4140     mov ah, dl                                ; 88 d4
    4141     mov cx, word [bp+006h]                    ; 8b 4e 06
    4142     sal cx, 004h                              ; c1 e1 04
     4142    sal dx, 004h                              ; c1 e2 04
    41434143    mov bx, word [bp+010h]                    ; 8b 5e 10
    4144     add bx, cx                                ; 01 cb
    4145     cmp bx, cx                                ; 39 cb
    4146     jnc short 03250h                          ; 73 02
    4147     db  0feh, 0c4h
    4148     ; inc ah                                    ; fe c4
    4149     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    4150     sal cx, 009h                              ; c1 e1 09
    4151     dec cx                                    ; 49
    4152     mov dx, bx                                ; 89 da
    4153     add dx, cx                                ; 01 ca
     4144    add bx, dx                                ; 01 d3
     4145    mov word [bp-012h], bx                    ; 89 5e ee
    41544146    cmp dx, bx                                ; 39 da
    4155     jc near 030f8h                            ; 0f 82 96 fe
     4147    jbe short 03258h                          ; 76 02
     4148    db  0feh, 0c1h
     4149    ; inc cl                                    ; fe c1
     4150    movzx bx, ch                              ; 0f b6 dd
     4151    sal bx, 009h                              ; c1 e3 09
     4152    dec bx                                    ; 4b
     4153    mov ax, word [bp-012h]                    ; 8b 46 ee
     4154    add ax, bx                                ; 01 d8
     4155    cmp ax, word [bp-012h]                    ; 3b 46 ee
     4156    jc near 03101h                            ; 0f 82 96 fe
    41564157    mov AL, strict byte 006h                  ; b0 06
    41574158    mov dx, strict word 0000ah                ; ba 0a 00
     
    41604161    mov dx, strict word 0000ch                ; ba 0c 00
    41614162    out DX, AL                                ; ee
     4163    mov al, byte [bp-012h]                    ; 8a 46 ee
     4164    mov dx, strict word 00004h                ; ba 04 00
     4165    out DX, AL                                ; ee
     4166    mov ax, word [bp-012h]                    ; 8b 46 ee
     4167    shr ax, 008h                              ; c1 e8 08
     4168    out DX, AL                                ; ee
     4169    xor al, al                                ; 30 c0
     4170    mov dx, strict word 0000ch                ; ba 0c 00
     4171    out DX, AL                                ; ee
    41624172    mov al, bl                                ; 88 d8
    4163     mov dx, strict word 00004h                ; ba 04 00
    4164     out DX, AL                                ; ee
    4165     shr bx, 008h                              ; c1 eb 08
    4166     mov al, bl                                ; 88 d8
    4167     out DX, AL                                ; ee
    4168     xor al, bl                                ; 30 d8
    4169     mov dx, strict word 0000ch                ; ba 0c 00
    4170     out DX, AL                                ; ee
    4171     mov al, cl                                ; 88 c8
    41724173    mov dx, strict word 00005h                ; ba 05 00
    41734174    out DX, AL                                ; ee
    4174     shr cx, 008h                              ; c1 e9 08
    4175     mov al, cl                                ; 88 c8
     4175    mov ax, bx                                ; 89 d8
     4176    shr ax, 008h                              ; c1 e8 08
    41764177    out DX, AL                                ; ee
    41774178    mov AL, strict byte 04ah                  ; b0 4a
    41784179    mov dx, strict word 0000bh                ; ba 0b 00
    41794180    out DX, AL                                ; ee
    4180     mov al, ah                                ; 88 e0
     4181    mov al, cl                                ; 88 c8
    41814182    mov dx, 00081h                            ; ba 81 00
    41824183    out DX, AL                                ; ee
     
    41844185    mov dx, strict word 0000ah                ; ba 0a 00
    41854186    out DX, AL                                ; ee
    4186     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4187     call 02cceh                               ; e8 29 fa
     4187    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4188    call 02cceh                               ; e8 1e fa
    41884189    mov AL, strict byte 0c5h                  ; b0 c5
    41894190    mov dx, 003f5h                            ; ba f5 03
    41904191    out DX, AL                                ; ee
    4191     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4192    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    41924193    sal dx, 002h                              ; c1 e2 02
    4193     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4194    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    41944195    or ax, dx                                 ; 09 d0
    41954196    mov dx, 003f5h                            ; ba f5 03
    41964197    out DX, AL                                ; ee
    4197     mov al, byte [bp-006h]                    ; 8a 46 fa
    4198     out DX, AL                                ; ee
    4199     mov al, byte [bp-008h]                    ; 8a 46 f8
     4198    mov al, byte [bp-00ch]                    ; 8a 46 f4
     4199    out DX, AL                                ; ee
     4200    mov al, byte [bp-00eh]                    ; 8a 46 f2
    42004201    out DX, AL                                ; ee
    42014202    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    42044205    out DX, AL                                ; ee
    42054206    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    4206     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4207    movzx ax, ch                              ; 0f b6 c5
    42074208    add ax, dx                                ; 01 d0
    42084209    dec ax                                    ; 48
     
    42134214    mov AL, strict byte 0ffh                  ; b0 ff
    42144215    out DX, AL                                ; ee
    4215     call 02c5dh                               ; e8 7a f9
     4216    call 02c5dh                               ; e8 70 f9
    42164217    test al, al                               ; 84 c0
    4217     je near 03196h                            ; 0f 84 ad fe
     4218    je near 0319fh                            ; 0f 84 ac fe
    42184219    mov dx, 003f4h                            ; ba f4 03
    42194220    in AL, DX                                 ; ec
     
    42224223    and AL, strict byte 0c0h                  ; 24 c0
    42234224    cmp AL, strict byte 0c0h                  ; 3c c0
    4224     je short 03303h                           ; 74 0e
     4225    je short 0330dh                           ; 74 0e
    42254226    push 00255h                               ; 68 55 02
    42264227    push 00288h                               ; 68 88 02
    42274228    push strict byte 00007h                   ; 6a 07
    4228     call 01972h                               ; e8 72 e6
     4229    call 01972h                               ; e8 68 e6
    42294230    add sp, strict byte 00006h                ; 83 c4 06
    42304231    xor si, si                                ; 31 f6
    4231     jmp short 0330ch                          ; eb 05
     4232    jmp short 03316h                          ; eb 05
    42324233    cmp si, strict byte 00007h                ; 83 fe 07
    4233     jnl short 03324h                          ; 7d 18
     4234    jnl short 0332eh                          ; 7d 18
    42344235    mov dx, 003f5h                            ; ba f5 03
    42354236    in AL, DX                                 ; ec
    42364237    db  02ah, 0e4h
    42374238    ; sub ah, ah                                ; 2a e4
    4238     mov byte [bp+si-016h], al                 ; 88 42 ea
     4239    mov byte [bp+si-01ah], al                 ; 88 42 e6
    42394240    movzx bx, al                              ; 0f b6 d8
    42404241    lea dx, [si+042h]                         ; 8d 54 42
    42414242    mov ax, strict word 00040h                ; b8 40 00
    4242     call 0165eh                               ; e8 3d e3
     4243    call 0165eh                               ; e8 33 e3
    42434244    inc si                                    ; 46
    4244     jmp short 03307h                          ; eb e3
    4245     test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4246     je near 0321ah                            ; 0f 84 ee fe
    4247     test byte [bp-015h], 002h                 ; f6 46 eb 02
    4248     je short 0333eh                           ; 74 0c
     4245    jmp short 03311h                          ; eb e3
     4246    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
     4247    je near 03222h                            ; 0f 84 ec fe
     4248    test byte [bp-019h], 002h                 ; f6 46 e7 02
     4249    je short 03348h                           ; 74 0c
    42494250    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    42504251    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4251     jmp near 03011h                           ; e9 d3 fc
     4252    jmp near 03021h                           ; e9 d9 fc
    42524253    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4253     jmp short 03337h                          ; eb f2
    4254     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4255     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4256     call 02c0fh                               ; e8 bf f8
     4254    jmp short 03341h                          ; eb f2
     4255    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     4256    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4257    call 02c0fh                               ; e8 b5 f8
    42574258    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42584259    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4259     jmp near 03011h                           ; e9 b6 fc
    4260     mov al, byte [bp+016h]                    ; 8a 46 16
     4260    jmp near 03021h                           ; e9 bc fc
     4261    mov ch, byte [bp+016h]                    ; 8a 6e 16
     4262    mov ax, word [bp+014h]                    ; 8b 46 14
     4263    shr ax, 008h                              ; c1 e8 08
    42614264    mov byte [bp-00ch], al                    ; 88 46 f4
    4262     mov dx, word [bp+014h]                    ; 8b 56 14
     4265    mov dx, word [bp+012h]                    ; 8b 56 12
    42634266    shr dx, 008h                              ; c1 ea 08
    4264     mov byte [bp-006h], dl                    ; 88 56 fa
    4265     mov ax, word [bp+012h]                    ; 8b 46 12
    4266     shr ax, 008h                              ; c1 e8 08
    4267     mov byte [bp-008h], al                    ; 88 46 f8
     4267    mov byte [bp-00eh], dl                    ; 88 56 f2
    42684268    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    4269     mov byte [bp-00eh], bl                    ; 88 5e f2
     4269    mov byte [bp-008h], bl                    ; 88 5e f8
    42704270    cmp bl, 001h                              ; 80 fb 01
    4271     jnbe short 03392h                         ; 77 14
    4272     cmp AL, strict byte 001h                  ; 3c 01
    4273     jnbe short 03392h                         ; 77 10
    4274     cmp dl, 04fh                              ; 80 fa 4f
    4275     jnbe short 03392h                         ; 77 0b
    4276     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4277     test al, al                               ; 84 c0
    4278     je short 03392h                           ; 74 04
    4279     cmp AL, strict byte 012h                  ; 3c 12
    4280     jbe short 033a7h                          ; 76 15
     4271    jnbe short 03397h                         ; 77 12
     4272    cmp dl, 001h                              ; 80 fa 01
     4273    jnbe short 03397h                         ; 77 0d
     4274    cmp AL, strict byte 04fh                  ; 3c 4f
     4275    jnbe short 03397h                         ; 77 09
     4276    test ch, ch                               ; 84 ed
     4277    je short 03397h                           ; 74 05
     4278    cmp ch, 012h                              ; 80 fd 12
     4279    jbe short 033ach                          ; 76 15
    42814280    mov ax, word [bp+016h]                    ; 8b 46 16
    42824281    xor ah, ah                                ; 30 e4
     
    42844283    mov word [bp+016h], ax                    ; 89 46 16
    42854284    mov ax, strict word 00001h                ; b8 01 00
    4286     call 02bf7h                               ; e8 54 f8
     4285    call 02bf7h                               ; e8 4f f8
    42874286    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4288     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4289     call 02f0ah                               ; e8 5c fb
     4287    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4288    call 02f0ah                               ; e8 57 fb
    42904289    test ax, ax                               ; 85 c0
    4291     je near 02fdfh                            ; 0f 84 2b fc
    4292     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     4290    je near 02fefh                            ; 0f 84 36 fc
     4291    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    42934292    mov ax, dx                                ; 89 d0
    4294     call 02d4fh                               ; e8 92 f9
     4293    call 02d4fh                               ; e8 8d f9
    42954294    test ax, ax                               ; 85 c0
    4296     jne short 033cch                          ; 75 0b
     4295    jne short 033d1h                          ; 75 0b
    42974296    mov ax, dx                                ; 89 d0
    4298     call 02e1ah                               ; e8 54 fa
     4297    call 02e1ah                               ; e8 4f fa
    42994298    test ax, ax                               ; 85 c0
    4300     je near 030b8h                            ; 0f 84 ec fc
    4301     mov cx, word [bp+006h]                    ; 8b 4e 06
    4302     shr cx, 00ch                              ; c1 e9 0c
    4303     mov ah, cl                                ; 88 cc
     4299    je near 030bch                            ; 0f 84 eb fc
     4300    mov ax, word [bp+006h]                    ; 8b 46 06
     4301    shr ax, 00ch                              ; c1 e8 0c
     4302    mov cl, al                                ; 88 c1
    43044303    mov dx, word [bp+006h]                    ; 8b 56 06
    43054304    sal dx, 004h                              ; c1 e2 04
    43064305    mov bx, word [bp+010h]                    ; 8b 5e 10
    43074306    add bx, dx                                ; 01 d3
    4308     cmp bx, dx                                ; 39 d3
    4309     jnc short 033e5h                          ; 73 02
    4310     db  0feh, 0c4h
    4311     ; inc ah                                    ; fe c4
    4312     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    4313     sal cx, 002h                              ; c1 e1 02
    4314     dec cx                                    ; 49
    4315     mov dx, bx                                ; 89 da
    4316     add dx, cx                                ; 01 ca
     4307    mov word [bp-012h], bx                    ; 89 5e ee
    43174308    cmp dx, bx                                ; 39 da
    4318     jc near 030f8h                            ; 0f 82 01 fd
     4309    jbe short 033edh                          ; 76 02
     4310    db  0feh, 0c1h
     4311    ; inc cl                                    ; fe c1
     4312    movzx bx, ch                              ; 0f b6 dd
     4313    sal bx, 002h                              ; c1 e3 02
     4314    dec bx                                    ; 4b
     4315    mov ax, word [bp-012h]                    ; 8b 46 ee
     4316    add ax, bx                                ; 01 d8
     4317    cmp ax, word [bp-012h]                    ; 3b 46 ee
     4318    jc near 03101h                            ; 0f 82 01 fd
    43194319    mov AL, strict byte 006h                  ; b0 06
    43204320    mov dx, strict word 0000ah                ; ba 0a 00
     
    43234323    mov dx, strict word 0000ch                ; ba 0c 00
    43244324    out DX, AL                                ; ee
     4325    mov al, byte [bp-012h]                    ; 8a 46 ee
     4326    mov dx, strict word 00004h                ; ba 04 00
     4327    out DX, AL                                ; ee
     4328    mov ax, word [bp-012h]                    ; 8b 46 ee
     4329    shr ax, 008h                              ; c1 e8 08
     4330    out DX, AL                                ; ee
     4331    xor al, al                                ; 30 c0
     4332    mov dx, strict word 0000ch                ; ba 0c 00
     4333    out DX, AL                                ; ee
    43254334    mov al, bl                                ; 88 d8
    4326     mov dx, strict word 00004h                ; ba 04 00
    4327     out DX, AL                                ; ee
    4328     shr bx, 008h                              ; c1 eb 08
    4329     mov al, bl                                ; 88 d8
    4330     out DX, AL                                ; ee
    4331     xor al, bl                                ; 30 d8
    4332     mov dx, strict word 0000ch                ; ba 0c 00
    4333     out DX, AL                                ; ee
    4334     mov al, cl                                ; 88 c8
    43354335    mov dx, strict word 00005h                ; ba 05 00
    43364336    out DX, AL                                ; ee
    4337     shr cx, 008h                              ; c1 e9 08
    4338     mov al, cl                                ; 88 c8
     4337    mov ax, bx                                ; 89 d8
     4338    shr ax, 008h                              ; c1 e8 08
    43394339    out DX, AL                                ; ee
    43404340    mov AL, strict byte 04ah                  ; b0 4a
    43414341    mov dx, strict word 0000bh                ; ba 0b 00
    43424342    out DX, AL                                ; ee
    4343     mov al, ah                                ; 88 e0
     4343    mov al, cl                                ; 88 c8
    43444344    mov dx, 00081h                            ; ba 81 00
    43454345    out DX, AL                                ; ee
     
    43474347    mov dx, strict word 0000ah                ; ba 0a 00
    43484348    out DX, AL                                ; ee
    4349     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4350     call 02cceh                               ; e8 94 f8
     4349    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4350    call 02cceh                               ; e8 89 f8
    43514351    mov AL, strict byte 00fh                  ; b0 0f
    43524352    mov dx, 003f5h                            ; ba f5 03
    43534353    out DX, AL                                ; ee
     4354    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     4355    sal bx, 002h                              ; c1 e3 02
    43544356    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4355     sal ax, 002h                              ; c1 e0 02
    4356     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    43574357    or bx, ax                                 ; 09 c3
    43584358    mov al, bl                                ; 88 d8
    43594359    out DX, AL                                ; ee
    4360     mov al, byte [bp-006h]                    ; 8a 46 fa
     4360    mov al, byte [bp-00ch]                    ; 8a 46 f4
    43614361    out DX, AL                                ; ee
    43624362    mov AL, strict byte 04dh                  ; b0 4d
     
    43664366    mov AL, strict byte 002h                  ; b0 02
    43674367    out DX, AL                                ; ee
    4368     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4369     out DX, AL                                ; ee
    4370     xor al, al                                ; 30 c0
     4368    mov al, ch                                ; 88 e8
     4369    out DX, AL                                ; ee
     4370    xor al, ch                                ; 30 e8
    43714371    out DX, AL                                ; ee
    43724372    mov AL, strict byte 0f6h                  ; b0 f6
    43734373    out DX, AL                                ; ee
    4374     call 02c5dh                               ; e8 f3 f7
     4374    call 02c5dh                               ; e8 e9 f7
    43754375    test al, al                               ; 84 c0
    4376     jne short 03474h                          ; 75 06
    4377     call 02ca3h                               ; e8 32 f8
    4378     jmp near 02fdfh                           ; e9 6b fb
     4376    jne short 0347eh                          ; 75 06
     4377    call 02ca3h                               ; e8 28 f8
     4378    jmp near 02fefh                           ; e9 71 fb
    43794379    mov dx, 003f4h                            ; ba f4 03
    43804380    in AL, DX                                 ; ec
     
    43834383    and AL, strict byte 0c0h                  ; 24 c0
    43844384    cmp AL, strict byte 0c0h                  ; 3c c0
    4385     je short 0348eh                           ; 74 0e
     4385    je short 03498h                           ; 74 0e
    43864386    push 00255h                               ; 68 55 02
    43874387    push 00288h                               ; 68 88 02
    43884388    push strict byte 00007h                   ; 6a 07
    4389     call 01972h                               ; e8 e7 e4
     4389    call 01972h                               ; e8 dd e4
    43904390    add sp, strict byte 00006h                ; 83 c4 06
    43914391    xor si, si                                ; 31 f6
    4392     jmp short 03497h                          ; eb 05
     4392    jmp short 034a1h                          ; eb 05
    43934393    cmp si, strict byte 00007h                ; 83 fe 07
    4394     jnl short 034afh                          ; 7d 18
     4394    jnl short 034b9h                          ; 7d 18
    43954395    mov dx, 003f5h                            ; ba f5 03
    43964396    in AL, DX                                 ; ec
    43974397    db  02ah, 0e4h
    43984398    ; sub ah, ah                                ; 2a e4
    4399     mov byte [bp+si-016h], al                 ; 88 42 ea
     4399    mov byte [bp+si-01ah], al                 ; 88 42 e6
    44004400    movzx bx, al                              ; 0f b6 d8
    44014401    lea dx, [si+042h]                         ; 8d 54 42
    44024402    mov ax, strict word 00040h                ; b8 40 00
    4403     call 0165eh                               ; e8 b2 e1
     4403    call 0165eh                               ; e8 a8 e1
    44044404    inc si                                    ; 46
    4405     jmp short 03492h                          ; eb e3
    4406     test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4407     je short 034cbh                           ; 74 16
    4408     test byte [bp-015h], 002h                 ; f6 46 eb 02
    4409     jne near 03332h                           ; 0f 85 75 fe
     4405    jmp short 0349ch                          ; eb e3
     4406    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
     4407    je short 034d5h                           ; 74 16
     4408    test byte [bp-019h], 002h                 ; f6 46 e7 02
     4409    jne near 0333ch                           ; 0f 85 75 fe
    44104410    push 00255h                               ; 68 55 02
    44114411    push 0029ch                               ; 68 9c 02
    44124412    push strict byte 00007h                   ; 6a 07
    4413     call 01972h                               ; e8 aa e4
     4413    call 01972h                               ; e8 a0 e4
    44144414    add sp, strict byte 00006h                ; 83 c4 06
    44154415    xor al, al                                ; 30 c0
    44164416    mov byte [bp+017h], al                    ; 88 46 17
    44174417    xor ah, ah                                ; 30 e4
    4418     call 02bf7h                               ; e8 22 f7
    4419     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4418    call 02bf7h                               ; e8 18 f7
     4419    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    44204420    xor dx, dx                                ; 31 d2
    4421     call 02c0fh                               ; e8 31 f7
    4422     jmp near 03229h                           ; e9 48 fd
    4423     mov byte [bp-00eh], ah                    ; 88 66 f2
    4424     cmp ah, 001h                              ; 80 fc 01
    4425     jbe short 03509h                          ; 76 20
     4421    call 02c0fh                               ; e8 27 f7
     4422    jmp near 036aeh                           ; e9 c3 01
     4423    mov byte [bp-008h], al                    ; 88 46 f8
     4424    cmp AL, strict byte 001h                  ; 3c 01
     4425    jbe short 0350fh                          ; 76 1d
    44264426    xor ax, ax                                ; 31 c0
    44274427    mov word [bp+016h], ax                    ; 89 46 16
     
    44314431    mov word [bp+006h], ax                    ; 89 46 06
    44324432    mov word [bp+008h], ax                    ; 89 46 08
     4433    movzx ax, ch                              ; 0f b6 c5
     4434    mov word [bp+012h], ax                    ; 89 46 12
     4435    jmp near 0362ch                           ; e9 1d 01
     4436    mov ax, strict word 00010h                ; b8 10 00
     4437    call 016ach                               ; e8 97 e1
     4438    mov cl, al                                ; 88 c1
     4439    xor ch, ch                                ; 30 ed
     4440    test AL, strict byte 0f0h                 ; a8 f0
     4441    je short 0351fh                           ; 74 02
     4442    mov CH, strict byte 001h                  ; b5 01
     4443    test cl, 00fh                             ; f6 c1 0f
     4444    je short 03526h                           ; 74 02
     4445    db  0feh, 0c5h
     4446    ; inc ch                                    ; fe c5
     4447    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4448    jne short 03531h                          ; 75 05
     4449    shr cl, 004h                              ; c0 e9 04
     4450    jmp short 03534h                          ; eb 03
     4451    and cl, 00fh                              ; 80 e1 0f
     4452    mov byte [bp+011h], 000h                  ; c6 46 11 00
    44334453    movzx ax, cl                              ; 0f b6 c1
    4434     mov word [bp+012h], ax                    ; 89 46 12
    4435     mov word [bp+01ch], dx                    ; 89 56 1c
    4436     jmp near 03011h                           ; e9 08 fb
    4437     mov ax, strict word 00010h                ; b8 10 00
    4438     call 016ach                               ; e8 9d e1
    4439     mov dl, al                                ; 88 c2
    4440     xor cl, cl                                ; 30 c9
    4441     test AL, strict byte 0f0h                 ; a8 f0
    4442     je short 03519h                           ; 74 02
    4443     mov CL, strict byte 001h                  ; b1 01
    4444     test dl, 00fh                             ; f6 c2 0f
    4445     je short 03520h                           ; 74 02
    4446     db  0feh, 0c1h
    4447     ; inc cl                                    ; fe c1
    4448     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    4449     jne short 0352bh                          ; 75 05
    4450     shr dl, 004h                              ; c0 ea 04
    4451     jmp short 0352eh                          ; eb 03
    4452     and dl, 00fh                              ; 80 e2 0f
    4453     mov byte [bp+011h], 000h                  ; c6 46 11 00
    4454     movzx ax, dl                              ; 0f b6 c2
    44554454    mov word [bp+010h], ax                    ; 89 46 10
    44564455    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    4457     mov bx, word [bp+012h]                    ; 8b 5e 12
    4458     xor bl, bl                                ; 30 db
    4459     movzx ax, cl                              ; 0f b6 c1
    4460     or bx, ax                                 ; 09 c3
    4461     mov word [bp+012h], bx                    ; 89 5e 12
    4462     mov ax, bx                                ; 89 d8
    4463     xor ah, bh                                ; 30 fc
     4456    mov ax, word [bp+012h]                    ; 8b 46 12
     4457    xor al, al                                ; 30 c0
     4458    movzx dx, ch                              ; 0f b6 d5
     4459    or ax, dx                                 ; 09 d0
     4460    mov word [bp+012h], ax                    ; 89 46 12
     4461    xor ah, ah                                ; 30 e4
    44644462    or ah, 001h                               ; 80 cc 01
    44654463    mov word [bp+012h], ax                    ; 89 46 12
    4466     cmp dl, 003h                              ; 80 fa 03
    4467     jc short 0356eh                           ; 72 15
    4468     jbe short 03595h                          ; 76 3a
    4469     cmp dl, 005h                              ; 80 fa 05
    4470     jc short 0359ch                           ; 72 3c
    4471     jbe short 035a3h                          ; 76 41
    4472     cmp dl, 00fh                              ; 80 fa 0f
    4473     je short 035b1h                           ; 74 4a
    4474     cmp dl, 00eh                              ; 80 fa 0e
    4475     je short 035aah                           ; 74 3e
    4476     jmp short 035b8h                          ; eb 4a
    4477     cmp dl, 002h                              ; 80 fa 02
    4478     je short 0358eh                           ; 74 1b
    4479     cmp dl, 001h                              ; 80 fa 01
    4480     je short 03587h                           ; 74 0f
    4481     test dl, dl                               ; 84 d2
    4482     jne short 035b8h                          ; 75 3c
     4464    cmp cl, 003h                              ; 80 f9 03
     4465    jc short 03572h                           ; 72 15
     4466    jbe short 03599h                          ; 76 3a
     4467    cmp cl, 005h                              ; 80 f9 05
     4468    jc short 035a0h                           ; 72 3c
     4469    jbe short 035a7h                          ; 76 41
     4470    cmp cl, 00fh                              ; 80 f9 0f
     4471    je short 035b5h                           ; 74 4a
     4472    cmp cl, 00eh                              ; 80 f9 0e
     4473    je short 035aeh                           ; 74 3e
     4474    jmp short 035bch                          ; eb 4a
     4475    cmp cl, 002h                              ; 80 f9 02
     4476    je short 03592h                           ; 74 1b
     4477    cmp cl, 001h                              ; 80 f9 01
     4478    je short 0358bh                           ; 74 0f
     4479    test cl, cl                               ; 84 c9
     4480    jne short 035bch                          ; 75 3c
    44834481    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    44844482    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4485     jmp short 035c6h                          ; eb 3f
     4483    jmp short 035cah                          ; eb 3f
    44864484    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4487     jmp short 035c6h                          ; eb 38
     4485    jmp short 035cah                          ; eb 38
    44884486    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4489     jmp short 035c6h                          ; eb 31
     4487    jmp short 035cah                          ; eb 31
    44904488    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4491     jmp short 035c6h                          ; eb 2a
     4489    jmp short 035cah                          ; eb 2a
    44924490    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4493     jmp short 035c6h                          ; eb 23
     4491    jmp short 035cah                          ; eb 23
    44944492    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4495     jmp short 035c6h                          ; eb 1c
     4493    jmp short 035cah                          ; eb 1c
    44964494    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4497     jmp short 035c6h                          ; eb 15
     4495    jmp short 035cah                          ; eb 15
    44984496    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4499     jmp short 035c6h                          ; eb 0e
     4497    jmp short 035cah                          ; eb 0e
    45004498    push 00255h                               ; 68 55 02
    45014499    push 002adh                               ; 68 ad 02
    45024500    push strict byte 00007h                   ; 6a 07
    4503     call 01972h                               ; e8 af e3
     4501    call 01972h                               ; e8 ab e3
    45044502    add sp, strict byte 00006h                ; 83 c4 06
    45054503    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    4506     movzx ax, dl                              ; 0f b6 c2
    4507     call 03662h                               ; e8 91 00
     4504    movzx ax, cl                              ; 0f b6 c1
     4505    call 03825h                               ; e8 50 02
    45084506    mov word [bp+008h], ax                    ; 89 46 08
    4509     jmp near 03229h                           ; e9 52 fc
    4510     mov byte [bp-00eh], ah                    ; 88 66 f2
    4511     cmp ah, 001h                              ; 80 fc 01
    4512     jbe short 035e5h                          ; 76 06
     4507    jmp near 036aeh                           ; e9 d3 00
     4508    mov byte [bp-008h], al                    ; 88 46 f8
     4509    cmp AL, strict byte 001h                  ; 3c 01
     4510    jbe short 035e7h                          ; 76 05
    45134511    mov word [bp+016h], si                    ; 89 76 16
    4514     jmp near 03503h                           ; e9 1e ff
     4512    jmp short 0362ch                          ; eb 45
    45154513    mov ax, strict word 00010h                ; b8 10 00
    4516     call 016ach                               ; e8 c1 e0
    4517     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    4518     jne short 035f8h                          ; 75 07
    4519     mov dl, al                                ; 88 c2
    4520     shr dl, 004h                              ; c0 ea 04
    4521     jmp short 035fdh                          ; eb 05
    4522     mov dl, al                                ; 88 c2
    4523     and dl, 00fh                              ; 80 e2 0f
     4514    call 016ach                               ; e8 bf e0
     4515    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4516    jne short 035fah                          ; 75 07
     4517    mov cl, al                                ; 88 c1
     4518    shr cl, 004h                              ; c0 e9 04
     4519    jmp short 035ffh                          ; eb 05
     4520    mov cl, al                                ; 88 c1
     4521    and cl, 00fh                              ; 80 e1 0f
    45244522    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4525     mov bx, word [bp+016h]                    ; 8b 5e 16
    4526     xor bh, bh                                ; 30 ff
    4527     test dl, dl                               ; 84 d2
    4528     je short 03617h                           ; 74 0d
    4529     cmp dl, 001h                              ; 80 fa 01
    4530     jbe short 03614h                          ; 76 05
    4531     or bh, 002h                               ; 80 cf 02
    4532     jmp short 03617h                          ; eb 03
    4533     or bh, 001h                               ; 80 cf 01
    4534     mov word [bp+016h], bx                    ; 89 5e 16
    4535     jmp near 03011h                           ; e9 f4 f9
    4536     cmp ah, 001h                              ; 80 fc 01
    4537     jbe short 0362eh                          ; 76 0c
     4523    mov dx, word [bp+016h]                    ; 8b 56 16
     4524    xor dh, dh                                ; 30 f6
     4525    test cl, cl                               ; 84 c9
     4526    je short 03619h                           ; 74 0d
     4527    cmp cl, 001h                              ; 80 f9 01
     4528    jbe short 03616h                          ; 76 05
     4529    or dh, 002h                               ; 80 ce 02
     4530    jmp short 03619h                          ; eb 03
     4531    or dh, 001h                               ; 80 ce 01
     4532    mov word [bp+016h], dx                    ; 89 56 16
     4533    jmp near 03021h                           ; e9 02 fa
     4534    cmp AL, strict byte 001h                  ; 3c 01
     4535    jbe short 03632h                          ; 76 0f
    45384536    mov word [bp+016h], si                    ; 89 76 16
    45394537    mov ax, strict word 00001h                ; b8 01 00
    4540     call 02bf7h                               ; e8 cc f5
    4541     jmp near 03503h                           ; e9 d5 fe
     4538    call 02bf7h                               ; e8 cb f5
     4539    mov word [bp+01ch], dx                    ; 89 56 1c
     4540    jmp near 03021h                           ; e9 ef f9
    45424541    mov ax, word [bp+016h]                    ; 8b 46 16
    45434542    xor ah, ah                                ; 30 e4
     
    45454544    mov word [bp+016h], ax                    ; 89 46 16
    45464545    mov ax, strict word 00006h                ; b8 06 00
    4547     jmp near 02fbdh                           ; e9 7e f9
    4548     mov bx, 00da2h                            ; bb a2 0d
     4546    jmp near 02fcdh                           ; e9 8a f9
     4547    mov byte [bp-008h], al                    ; 88 46 f8
     4548    mov bl, cl                                ; 88 cb
     4549    cmp AL, strict byte 001h                  ; 3c 01
     4550    jnbe short 03623h                         ; 77 d7
     4551    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4552    call 02f0ah                               ; e8 b7 f8
     4553    test ax, ax                               ; 85 c0
     4554    je near 02fefh                            ; 0f 84 96 f9
     4555    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4556    db  00fh, 095h, 0c0h
     4557    ; setne al                                  ; 0f 95 c0
     4558    movzx dx, al                              ; 0f b6 d0
     4559    add dx, 00090h                            ; 81 c2 90 00
     4560    mov word [bp-012h], dx                    ; 89 56 ee
     4561    mov ax, strict word 00040h                ; b8 40 00
     4562    call 01650h                               ; e8 e0 df
     4563    and AL, strict byte 00fh                  ; 24 0f
     4564    cmp bl, 002h                              ; 80 fb 02
     4565    jc short 03686h                           ; 72 0f
     4566    jbe short 03692h                          ; 76 19
     4567    cmp bl, 004h                              ; 80 fb 04
     4568    je short 0368eh                           ; 74 10
     4569    cmp bl, 003h                              ; 80 fb 03
     4570    je short 03696h                           ; 74 13
     4571    jmp near 02fbfh                           ; e9 39 f9
     4572    cmp bl, 001h                              ; 80 fb 01
     4573    je short 0368eh                           ; 74 03
     4574    jmp near 02fbfh                           ; e9 31 f9
     4575    or AL, strict byte 090h                   ; 0c 90
     4576    jmp short 03698h                          ; eb 06
     4577    or AL, strict byte 070h                   ; 0c 70
     4578    jmp short 03698h                          ; eb 02
     4579    or AL, strict byte 010h                   ; 0c 10
     4580    movzx bx, al                              ; 0f b6 d8
     4581    mov dx, word [bp-012h]                    ; 8b 56 ee
     4582    mov ax, strict word 00040h                ; b8 40 00
     4583    call 0165eh                               ; e8 ba df
     4584    xor al, al                                ; 30 c0
     4585    mov byte [bp+017h], al                    ; 88 46 17
     4586    xor ah, ah                                ; 30 e4
     4587    call 02bf7h                               ; e8 49 f5
     4588    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4589    jmp near 03021h                           ; e9 6c f9
     4590    mov byte [bp-008h], al                    ; 88 46 f8
     4591    mov ch, ah                                ; 88 e5
     4592    and ch, 03fh                              ; 80 e5 3f
     4593    movzx bx, ah                              ; 0f b6 dc
     4594    sar bx, 006h                              ; c1 fb 06
     4595    sal bx, 008h                              ; c1 e3 08
     4596    add bx, word [bp-010h]                    ; 03 5e f0
     4597    mov byte [bp-00ch], bl                    ; 88 5e f4
     4598    cmp AL, strict byte 001h                  ; 3c 01
     4599    jnbe near 03623h                          ; 0f 87 51 ff
     4600    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4601    call 02f0ah                               ; e8 31 f8
     4602    test ax, ax                               ; 85 c0
     4603    je near 02fefh                            ; 0f 84 10 f9
     4604    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4605    mov ax, dx                                ; 89 d0
     4606    call 02d4fh                               ; e8 67 f6
     4607    test ax, ax                               ; 85 c0
     4608    jne short 03706h                          ; 75 1a
     4609    mov ax, dx                                ; 89 d0
     4610    call 02e1ah                               ; e8 29 f7
     4611    test ax, ax                               ; 85 c0
     4612    jne short 03706h                          ; 75 11
     4613    mov ax, word [bp+016h]                    ; 8b 46 16
     4614    xor ah, ah                                ; 30 e4
     4615    or ah, 00ch                               ; 80 cc 0c
     4616    mov word [bp+016h], ax                    ; 89 46 16
     4617    mov ax, strict word 0000ch                ; b8 0c 00
     4618    jmp near 02fcdh                           ; e9 c7 f8
     4619    mov ax, strict word 00010h                ; b8 10 00
     4620    call 016ach                               ; e8 a0 df
     4621    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4622    jne short 03719h                          ; 75 07
     4623    mov cl, al                                ; 88 c1
     4624    shr cl, 004h                              ; c0 e9 04
     4625    jmp short 0371eh                          ; eb 05
     4626    mov cl, al                                ; 88 c1
     4627    and cl, 00fh                              ; 80 e1 0f
     4628    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4629    db  00fh, 095h, 0c0h
     4630    ; setne al                                  ; 0f 95 c0
     4631    movzx dx, al                              ; 0f b6 d0
     4632    add dx, 00090h                            ; 81 c2 90 00
     4633    mov word [bp-012h], dx                    ; 89 56 ee
     4634    mov ax, strict word 00040h                ; b8 40 00
     4635    call 01650h                               ; e8 1b df
     4636    and AL, strict byte 00fh                  ; 24 0f
     4637    cmp cl, 003h                              ; 80 f9 03
     4638    jc short 0375ah                           ; 72 1e
     4639    mov dl, al                                ; 88 c2
     4640    or dl, 090h                               ; 80 ca 90
     4641    cmp cl, 003h                              ; 80 f9 03
     4642    jbe short 03798h                          ; 76 52
     4643    mov ah, al                                ; 88 c4
     4644    or ah, 010h                               ; 80 cc 10
     4645    cmp cl, 005h                              ; 80 f9 05
     4646    je near 037bdh                            ; 0f 84 6b 00
     4647    cmp cl, 004h                              ; 80 f9 04
     4648    je short 037a7h                           ; 74 50
     4649    jmp near 037d8h                           ; e9 7e 00
     4650    cmp cl, 002h                              ; 80 f9 02
     4651    je short 0377ah                           ; 74 1b
     4652    cmp cl, 001h                              ; 80 f9 01
     4653    jne near 037d8h                           ; 0f 85 72 00
     4654    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
     4655    jne near 037d8h                           ; 0f 85 6a 00
     4656    cmp ch, 009h                              ; 80 fd 09
     4657    jne near 037d8h                           ; 0f 85 63 00
     4658    or AL, strict byte 090h                   ; 0c 90
     4659    jmp near 037d8h                           ; e9 5e 00
     4660    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
     4661    jne short 03789h                          ; 75 09
     4662    cmp ch, 009h                              ; 80 fd 09
     4663    jne short 03789h                          ; 75 04
     4664    or AL, strict byte 070h                   ; 0c 70
     4665    jmp short 037d8h                          ; eb 4f
     4666    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
     4667    jne short 037d8h                          ; 75 49
     4668    cmp ch, 00fh                              ; 80 fd 0f
     4669    jne short 037d8h                          ; 75 44
     4670    or AL, strict byte 010h                   ; 0c 10
     4671    jmp short 037d8h                          ; eb 40
     4672    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
     4673    jne short 037d8h                          ; 75 3a
     4674    cmp ch, 009h                              ; 80 fd 09
     4675    jne short 037d8h                          ; 75 35
     4676    mov al, dl                                ; 88 d0
     4677    jmp short 037d8h                          ; eb 31
     4678    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
     4679    jne short 037d8h                          ; 75 2b
     4680    cmp ch, 009h                              ; 80 fd 09
     4681    jne short 037b4h                          ; 75 02
     4682    jmp short 037a3h                          ; eb ef
     4683    cmp ch, 012h                              ; 80 fd 12
     4684    jne short 037d8h                          ; 75 1f
     4685    mov al, ah                                ; 88 e0
     4686    jmp short 037d8h                          ; eb 1b
     4687    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
     4688    jne short 037d8h                          ; 75 15
     4689    cmp ch, 009h                              ; 80 fd 09
     4690    jne short 037cah                          ; 75 02
     4691    jmp short 037a3h                          ; eb d9
     4692    cmp ch, 012h                              ; 80 fd 12
     4693    jne short 037d1h                          ; 75 02
     4694    jmp short 037b9h                          ; eb e8
     4695    cmp ch, 024h                              ; 80 fd 24
     4696    jne short 037d8h                          ; 75 02
     4697    or AL, strict byte 0d0h                   ; 0c d0
     4698    movzx dx, al                              ; 0f b6 d0
     4699    sar dx, 004h                              ; c1 fa 04
     4700    test dl, 001h                             ; f6 c2 01
     4701    je near 036f5h                            ; 0f 84 10 ff
     4702    movzx bx, al                              ; 0f b6 d8
     4703    mov dx, word [bp-012h]                    ; 8b 56 ee
     4704    mov ax, strict word 00040h                ; b8 40 00
     4705    call 0165eh                               ; e8 6d de
     4706    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     4707    movzx ax, cl                              ; 0f b6 c1
     4708    call 03825h                               ; e8 29 00
     4709    mov word [bp+008h], ax                    ; 89 46 08
     4710    jmp near 036a4h                           ; e9 a2 fe
     4711    mov bx, 00da8h                            ; bb a8 0d
    45494712    mov cx, ds                                ; 8c d9
    45504713    mov ax, strict word 00004h                ; b8 04 00
    4551     call 01931h                               ; e8 e7 e2
     4714    call 01931h                               ; e8 24 e1
    45524715    mov ax, word [bp+016h]                    ; 8b 46 16
    45534716    shr ax, 008h                              ; c1 e8 08
     
    45564719    push 002c2h                               ; 68 c2 02
    45574720    push strict byte 00004h                   ; 6a 04
    4558     call 01972h                               ; e8 16 e3
     4721    call 01972h                               ; e8 53 e1
    45594722    add sp, strict byte 00008h                ; 83 c4 08
    4560     jmp near 02fafh                           ; e9 4d f9
    4561 get_floppy_dpt_:                             ; 0xf3662 LB 0x2f
     4723    jmp near 02fbfh                           ; e9 9a f7
     4724get_floppy_dpt_:                             ; 0xf3825 LB 0x2f
    45624725    push bx                                   ; 53
    45634726    push dx                                   ; 52
     
    45664729    mov dl, al                                ; 88 c2
    45674730    xor ax, ax                                ; 31 c0
    4568     jmp short 03673h                          ; eb 06
     4731    jmp short 03836h                          ; eb 06
    45694732    inc ax                                    ; 40
    45704733    cmp ax, strict word 00007h                ; 3d 07 00
    4571     jnc short 0368ah                          ; 73 17
     4734    jnc short 0384dh                          ; 73 17
    45724735    mov bx, ax                                ; 89 c3
    45734736    add bx, ax                                ; 01 c3
    45744737    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    4575     jne short 0366dh                          ; 75 f0
     4738    jne short 03830h                          ; 75 f0
    45764739    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    45774740    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    45784741    add ax, strict word 00000h                ; 05 00 00
    4579     jmp short 0368dh                          ; eb 03
     4742    jmp short 03850h                          ; eb 03
    45804743    mov ax, strict word 00041h                ; b8 41 00
    45814744    pop bp                                    ; 5d
     
    45834746    pop bx                                    ; 5b
    45844747    retn                                      ; c3
    4585 dummy_soft_reset_:                           ; 0xf3691 LB 0x7
     4748dummy_soft_reset_:                           ; 0xf3854 LB 0x7
    45864749    push bp                                   ; 55
    45874750    mov bp, sp                                ; 89 e5
     
    45894752    pop bp                                    ; 5d
    45904753    retn                                      ; c3
    4591 _cdemu_init:                                 ; 0xf3698 LB 0x18
     4754_cdemu_init:                                 ; 0xf385b LB 0x18
    45924755    push bp                                   ; 55
    45934756    mov bp, sp                                ; 89 e5
    45944757    mov dx, strict word 0000eh                ; ba 0e 00
    45954758    mov ax, strict word 00040h                ; b8 40 00
    4596     call 0166ch                               ; e8 c8 df
     4759    call 0166ch                               ; e8 05 de
    45974760    xor bx, bx                                ; 31 db
    45984761    mov dx, 00322h                            ; ba 22 03
    4599     call 0165eh                               ; e8 b2 df
     4762    call 0165eh                               ; e8 ef dd
    46004763    mov sp, bp                                ; 89 ec
    46014764    pop bp                                    ; 5d
    46024765    retn                                      ; c3
    4603 _cdemu_isactive:                             ; 0xf36b0 LB 0x16
     4766_cdemu_isactive:                             ; 0xf3873 LB 0x16
    46044767    push bp                                   ; 55
    46054768    mov bp, sp                                ; 89 e5
    46064769    mov dx, strict word 0000eh                ; ba 0e 00
    46074770    mov ax, strict word 00040h                ; b8 40 00
    4608     call 0166ch                               ; e8 b0 df
     4771    call 0166ch                               ; e8 ed dd
    46094772    mov dx, 00322h                            ; ba 22 03
    4610     call 01650h                               ; e8 8e df
     4773    call 01650h                               ; e8 cb dd
    46114774    mov sp, bp                                ; 89 ec
    46124775    pop bp                                    ; 5d
    46134776    retn                                      ; c3
    4614 _cdemu_emulated_drive:                       ; 0xf36c6 LB 0x16
     4777_cdemu_emulated_drive:                       ; 0xf3889 LB 0x16
    46154778    push bp                                   ; 55
    46164779    mov bp, sp                                ; 89 e5
    46174780    mov dx, strict word 0000eh                ; ba 0e 00
    46184781    mov ax, strict word 00040h                ; b8 40 00
    4619     call 0166ch                               ; e8 9a df
     4782    call 0166ch                               ; e8 d7 dd
    46204783    mov dx, 00324h                            ; ba 24 03
    4621     call 01650h                               ; e8 78 df
     4784    call 01650h                               ; e8 b5 dd
    46224785    mov sp, bp                                ; 89 ec
    46234786    pop bp                                    ; 5d
    46244787    retn                                      ; c3
    4625 _int13_eltorito:                             ; 0xf36dc LB 0x189
     4788_int13_eltorito:                             ; 0xf389f LB 0x189
    46264789    push bp                                   ; 55
    46274790    mov bp, sp                                ; 89 e5
     
    46304793    mov dx, strict word 0000eh                ; ba 0e 00
    46314794    mov ax, strict word 00040h                ; b8 40 00
    4632     call 0166ch                               ; e8 82 df
     4795    call 0166ch                               ; e8 bf dd
    46334796    mov si, 00322h                            ; be 22 03
    46344797    mov di, ax                                ; 89 c7
     
    46364799    shr ax, 008h                              ; c1 e8 08
    46374800    cmp ax, strict word 0004bh                ; 3d 4b 00
    4638     jc short 03704h                           ; 72 0a
    4639     jbe short 0372ah                          ; 76 2e
     4801    jc short 038c7h                           ; 72 0a
     4802    jbe short 038edh                          ; 76 2e
    46404803    cmp ax, strict word 0004dh                ; 3d 4d 00
    4641     jbe short 0370bh                          ; 76 0a
    4642     jmp near 03829h                           ; e9 25 01
     4804    jbe short 038ceh                          ; 76 0a
     4805    jmp near 039ech                           ; e9 25 01
    46434806    cmp ax, strict word 0004ah                ; 3d 4a 00
    4644     jne near 03829h                           ; 0f 85 1e 01
    4645     mov bx, 00da2h                            ; bb a2 0d
     4807    jne near 039ech                           ; 0f 85 1e 01
     4808    mov bx, 00da8h                            ; bb a8 0d
    46464809    mov cx, ds                                ; 8c d9
    46474810    mov ax, strict word 00004h                ; b8 04 00
    4648     call 01931h                               ; e8 1b e2
     4811    call 01931h                               ; e8 58 e0
    46494812    push word [bp+016h]                       ; ff 76 16
    46504813    push 002dch                               ; 68 dc 02
    46514814    push 002ebh                               ; 68 eb 02
    46524815    push strict byte 00004h                   ; 6a 04
    4653     call 01972h                               ; e8 4e e2
     4816    call 01972h                               ; e8 8b e0
    46544817    add sp, strict byte 00008h                ; 83 c4 08
    4655     jmp near 03844h                           ; e9 1a 01
     4818    jmp near 03a07h                           ; e9 1a 01
    46564819    mov dx, word [bp+00ah]                    ; 8b 56 0a
    46574820    mov ax, word [bp+004h]                    ; 8b 46 04
    46584821    mov bx, strict word 00013h                ; bb 13 00
    4659     call 0165eh                               ; e8 28 df
     4822    call 0165eh                               ; e8 65 dd
    46604823    mov es, di                                ; 8e c7
    46614824    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    46634826    inc dx                                    ; 42
    46644827    mov ax, word [bp+004h]                    ; 8b 46 04
    4665     call 0165eh                               ; e8 17 df
     4828    call 0165eh                               ; e8 54 dd
    46664829    mov es, di                                ; 8e c7
    46674830    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    46704833    inc dx                                    ; 42
    46714834    mov ax, word [bp+004h]                    ; 8b 46 04
    4672     call 0165eh                               ; e8 05 df
     4835    call 0165eh                               ; e8 42 dd
    46734836    mov es, di                                ; 8e c7
    46744837    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    46764839    add dx, strict byte 00003h                ; 83 c2 03
    46774840    mov ax, word [bp+004h]                    ; 8b 46 04
    4678     call 0165eh                               ; e8 f2 de
     4841    call 0165eh                               ; e8 2f dd
    46794842    mov es, di                                ; 8e c7
    46804843    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    46834846    add dx, strict byte 00004h                ; 83 c2 04
    46844847    mov ax, word [bp+004h]                    ; 8b 46 04
    4685     call 0169ah                               ; e8 18 df
     4848    call 0169ah                               ; e8 55 dd
    46864849    mov es, di                                ; 8e c7
    46874850    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    46894852    add dx, strict byte 00008h                ; 83 c2 08
    46904853    mov ax, word [bp+004h]                    ; 8b 46 04
    4691     call 0167ah                               ; e8 e6 de
     4854    call 0167ah                               ; e8 23 dd
    46924855    mov es, di                                ; 8e c7
    46934856    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    46954858    add dx, strict byte 0000ah                ; 83 c2 0a
    46964859    mov ax, word [bp+004h]                    ; 8b 46 04
    4697     call 0167ah                               ; e8 d4 de
     4860    call 0167ah                               ; e8 11 dd
    46984861    mov es, di                                ; 8e c7
    46994862    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    47014864    add dx, strict byte 0000ch                ; 83 c2 0c
    47024865    mov ax, word [bp+004h]                    ; 8b 46 04
    4703     call 0167ah                               ; e8 c2 de
     4866    call 0167ah                               ; e8 ff dc
    47044867    mov es, di                                ; 8e c7
    47054868    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    47074870    add dx, strict byte 0000eh                ; 83 c2 0e
    47084871    mov ax, word [bp+004h]                    ; 8b 46 04
    4709     call 0167ah                               ; e8 b0 de
     4872    call 0167ah                               ; e8 ed dc
    47104873    mov es, di                                ; 8e c7
    47114874    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    47134876    add dx, strict byte 00010h                ; 83 c2 10
    47144877    mov ax, word [bp+004h]                    ; 8b 46 04
    4715     call 0165eh                               ; e8 81 de
     4878    call 0165eh                               ; e8 be dc
    47164879    mov es, di                                ; 8e c7
    47174880    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    47194882    add dx, strict byte 00011h                ; 83 c2 11
    47204883    mov ax, word [bp+004h]                    ; 8b 46 04
    4721     call 0165eh                               ; e8 6e de
     4884    call 0165eh                               ; e8 ab dc
    47224885    mov es, di                                ; 8e c7
    47234886    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    47254888    add dx, strict byte 00012h                ; 83 c2 12
    47264889    mov ax, word [bp+004h]                    ; 8b 46 04
    4727     call 0165eh                               ; e8 5b de
     4890    call 0165eh                               ; e8 98 dc
    47284891    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    4729     jne short 0380fh                          ; 75 06
     4892    jne short 039d2h                          ; 75 06
    47304893    mov es, di                                ; 8e c7
    47314894    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    47344897    mov dx, strict word 00074h                ; ba 74 00
    47354898    mov ax, strict word 00040h                ; b8 40 00
    4736     call 0165eh                               ; e8 40 de
     4899    call 0165eh                               ; e8 7d dc
    47374900    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47384901    lea sp, [bp-004h]                         ; 8d 66 fc
     
    47414904    pop bp                                    ; 5d
    47424905    retn                                      ; c3
    4743     mov bx, 00da2h                            ; bb a2 0d
     4906    mov bx, 00da8h                            ; bb a8 0d
    47444907    mov cx, ds                                ; 8c d9
    47454908    mov ax, strict word 00004h                ; b8 04 00
    4746     call 01931h                               ; e8 fd e0
     4909    call 01931h                               ; e8 3a df
    47474910    mov ax, word [bp+016h]                    ; 8b 46 16
    47484911    shr ax, 008h                              ; c1 e8 08
     
    47504913    push 002dch                               ; 68 dc 02
    47514914    push 00313h                               ; 68 13 03
    4752     jmp near 0371fh                           ; e9 db fe
     4915    jmp near 038e2h                           ; e9 db fe
    47534916    mov ax, word [bp+016h]                    ; 8b 46 16
    47544917    xor ah, ah                                ; 30 e4
     
    47604923    mov dx, strict word 00074h                ; ba 74 00
    47614924    mov ax, strict word 00040h                ; b8 40 00
    4762     call 0165eh                               ; e8 ff dd
     4925    call 0165eh                               ; e8 3c dc
    47634926    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4764     jmp short 03822h                          ; eb bd
    4765 device_is_cdrom_:                            ; 0xf3865 LB 0x35
     4927    jmp short 039e5h                          ; eb bd
     4928device_is_cdrom_:                            ; 0xf3a28 LB 0x35
    47664929    push bp                                   ; 55
    47674930    mov bp, sp                                ; 89 e5
     
    47714934    mov dx, strict word 0000eh                ; ba 0e 00
    47724935    mov ax, strict word 00040h                ; b8 40 00
    4773     call 0166ch                               ; e8 f7 dd
     4936    call 0166ch                               ; e8 34 dc
    47744937    cmp bl, 010h                              ; 80 fb 10
    4775     jc short 0387eh                           ; 72 04
     4938    jc short 03a41h                           ; 72 04
    47764939    xor ax, ax                                ; 31 c0
    4777     jmp short 03893h                          ; eb 15
     4940    jmp short 03a56h                          ; eb 15
    47784941    xor bh, bh                                ; 30 ff
    47794942    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    47814944    add bx, 00122h                            ; 81 c3 22 01
    47824945    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4783     jne short 0387ah                          ; 75 ea
     4946    jne short 03a3dh                          ; 75 ea
    47844947    mov ax, strict word 00001h                ; b8 01 00
    47854948    lea sp, [bp-004h]                         ; 8d 66 fc
     
    47884951    pop bp                                    ; 5d
    47894952    retn                                      ; c3
    4790 cdrom_boot_:                                 ; 0xf389a LB 0x416
     4953cdrom_boot_:                                 ; 0xf3a5d LB 0x416
    47914954    push bp                                   ; 55
    47924955    mov bp, sp                                ; 89 e5
     
    47994962    mov dx, strict word 0000eh                ; ba 0e 00
    48004963    mov ax, strict word 00040h                ; b8 40 00
    4801     call 0166ch                               ; e8 bd dd
     4964    call 0166ch                               ; e8 fa db
    48024965    mov word [bp-018h], ax                    ; 89 46 e8
    48034966    mov si, 00322h                            ; be 22 03
     
    48064969    mov word [bp-012h], ax                    ; 89 46 ee
    48074970    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    4808     jmp short 038cfh                          ; eb 09
     4971    jmp short 03a92h                          ; eb 09
    48094972    inc byte [bp-00ch]                        ; fe 46 f4
    48104973    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4811     jnc short 038dah                          ; 73 0b
     4974    jnc short 03a9dh                          ; 73 0b
    48124975    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4813     call 03865h                               ; e8 8f ff
     4976    call 03a28h                               ; e8 8f ff
    48144977    test ax, ax                               ; 85 c0
    4815     je short 038c6h                           ; 74 ec
     4978    je short 03a89h                           ; 74 ec
    48164979    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4817     jc short 038e6h                           ; 72 06
     4980    jc short 03aa9h                           ; 72 06
    48184981    mov ax, strict word 00002h                ; b8 02 00
    4819     jmp near 03c4dh                           ; e9 67 03
     4982    jmp near 03e10h                           ; e9 67 03
    48204983    mov cx, strict word 0000ch                ; b9 0c 00
    48214984    xor bx, bx                                ; 31 db
    48224985    mov dx, ss                                ; 8c d2
    48234986    lea ax, [bp-026h]                         ; 8d 46 da
    4824     call 0959ah                               ; e8 a7 5c
     4987    call 0975ah                               ; e8 a4 5c
    48254988    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    48264989    mov ax, strict word 00011h                ; b8 11 00
     
    48385001    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    48395002    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    4840     jmp short 0392bh                          ; eb 09
     5003    jmp short 03aeeh                          ; eb 09
    48415004    inc byte [bp-00eh]                        ; fe 46 f2
    48425005    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    4843     jnbe short 03962h                         ; 77 37
     5006    jnbe short 03b25h                         ; 77 37
    48445007    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    48455008    imul di, di, strict byte 00018h           ; 6b ff 18
     
    48615024    call word [word di+0006ah]                ; ff 95 6a 00
    48625025    test ax, ax                               ; 85 c0
    4863     jne short 03922h                          ; 75 c0
     5026    jne short 03ae5h                          ; 75 c0
    48645027    test ax, ax                               ; 85 c0
    4865     je short 0396ch                           ; 74 06
     5028    je short 03b2fh                           ; 74 06
    48665029    mov ax, strict word 00003h                ; b8 03 00
    4867     jmp near 03c4dh                           ; e9 e1 02
     5030    jmp near 03e10h                           ; e9 e1 02
    48685031    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    4869     je short 03979h                           ; 74 06
     5032    je short 03b3ch                           ; 74 06
    48705033    mov ax, strict word 00004h                ; b8 04 00
    4871     jmp near 03c4dh                           ; e9 d4 02
     5034    jmp near 03e10h                           ; e9 d4 02
    48725035    xor di, di                                ; 31 ff
    4873     jmp short 03983h                          ; eb 06
     5036    jmp short 03b46h                          ; eb 06
    48745037    inc di                                    ; 47
    48755038    cmp di, strict byte 00005h                ; 83 ff 05
    4876     jnc short 03993h                          ; 73 10
     5039    jnc short 03b56h                          ; 73 10
    48775040    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    4878     cmp al, byte [di+00daah]                  ; 3a 85 aa 0d
    4879     je short 0397dh                           ; 74 f0
     5041    cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
     5042    je short 03b40h                           ; 74 f0
    48805043    mov ax, strict word 00005h                ; b8 05 00
    4881     jmp near 03c4dh                           ; e9 ba 02
     5044    jmp near 03e10h                           ; e9 ba 02
    48825045    xor di, di                                ; 31 ff
    4883     jmp short 0399dh                          ; eb 06
     5046    jmp short 03b60h                          ; eb 06
    48845047    inc di                                    ; 47
    48855048    cmp di, strict byte 00017h                ; 83 ff 17
    4886     jnc short 039adh                          ; 73 10
     5049    jnc short 03b70h                          ; 73 10
    48875050    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    4888     cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
    4889     je short 03997h                           ; 74 f0
     5051    cmp al, byte [di+00db6h]                  ; 3a 85 b6 0d
     5052    je short 03b5ah                           ; 74 f0
    48905053    mov ax, strict word 00006h                ; b8 06 00
    4891     jmp near 03c4dh                           ; e9 a0 02
     5054    jmp near 03e10h                           ; e9 a0 02
    48925055    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    48935056    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    49205083    call word [word di+0006ah]                ; ff 95 6a 00
    49215084    test ax, ax                               ; 85 c0
    4922     je short 03a0ah                           ; 74 06
     5085    je short 03bcdh                           ; 74 06
    49235086    mov ax, strict word 00007h                ; b8 07 00
    4924     jmp near 03c4dh                           ; e9 43 02
     5087    jmp near 03e10h                           ; e9 43 02
    49255088    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    4926     je short 03a17h                           ; 74 06
     5089    je short 03bdah                           ; 74 06
    49275090    mov ax, strict word 00008h                ; b8 08 00
    4928     jmp near 03c4dh                           ; e9 36 02
     5091    jmp near 03e10h                           ; e9 36 02
    49295092    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    4930     je short 03a24h                           ; 74 06
     5093    je short 03be7h                           ; 74 06
    49315094    mov ax, strict word 00009h                ; b8 09 00
    4932     jmp near 03c4dh                           ; e9 29 02
     5095    jmp near 03e10h                           ; e9 29 02
    49335096    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    4934     je short 03a31h                           ; 74 06
     5097    je short 03bf4h                           ; 74 06
    49355098    mov ax, strict word 0000ah                ; b8 0a 00
    4936     jmp near 03c4dh                           ; e9 1c 02
     5099    jmp near 03e10h                           ; e9 1c 02
    49375100    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    4938     jne short 03a2bh                          ; 75 f3
     5101    jne short 03beeh                          ; 75 f3
    49395102    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    4940     je short 03a45h                           ; 74 06
     5103    je short 03c08h                           ; 74 06
    49415104    mov ax, strict word 0000bh                ; b8 0b 00
    4942     jmp near 03c4dh                           ; e9 08 02
     5105    jmp near 03e10h                           ; e9 08 02
    49435106    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    49445107    mov es, [bp-010h]                         ; 8e 46 f0
    49455108    mov byte [es:si+001h], al                 ; 26 88 44 01
    49465109    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    4947     jne short 03a5eh                          ; 75 07
     5110    jne short 03c21h                          ; 75 07
    49485111    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4949     jmp short 03a71h                          ; eb 13
     5112    jmp short 03c34h                          ; eb 13
    49505113    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    4951     jnc short 03a6ch                          ; 73 07
     5114    jnc short 03c2fh                          ; 73 07
    49525115    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4953     jmp short 03a71h                          ; eb 05
     5116    jmp short 03c34h                          ; eb 05
    49545117    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    49555118    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    49695132    mov word [bp-016h], ax                    ; 89 46 ea
    49705133    test ax, ax                               ; 85 c0
    4971     jne short 03a9fh                          ; 75 05
     5134    jne short 03c62h                          ; 75 05
    49725135    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    49735136    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    49785141    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    49795142    test di, di                               ; 85 ff
    4980     je short 03ac1h                           ; 74 06
     5143    je short 03c84h                           ; 74 06
    49815144    cmp di, 00400h                            ; 81 ff 00 04
    4982     jbe short 03ac7h                          ; 76 06
     5145    jbe short 03c8ah                          ; 76 06
    49835146    mov ax, strict word 0000ch                ; b8 0c 00
    4984     jmp near 03c4dh                           ; e9 86 01
     5147    jmp near 03e10h                           ; e9 86 01
    49855148    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    49865149    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    50225185    sal ax, 1                                 ; d1 e0
    50235186    rcl di, 1                                 ; d1 d7
    5024     loop 03b35h                               ; e2 fa
     5187    loop 03cf8h                               ; e2 fa
    50255188    push di                                   ; 57
    50265189    push ax                                   ; 50
     
    50355198    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    50365199    test ax, ax                               ; 85 c0
    5037     je short 03b65h                           ; 74 06
     5200    je short 03d28h                           ; 74 06
    50385201    mov ax, strict word 0000dh                ; b8 0d 00
    5039     jmp near 03c4dh                           ; e9 e8 00
     5202    jmp near 03e10h                           ; e9 e8 00
    50405203    mov es, [bp-010h]                         ; 8e 46 f0
    50415204    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    50425205    cmp AL, strict byte 002h                  ; 3c 02
    5043     jc short 03b7dh                           ; 72 0d
    5044     jbe short 03b95h                          ; 76 23
     5206    jc short 03d40h                           ; 72 0d
     5207    jbe short 03d58h                          ; 76 23
    50455208    cmp AL, strict byte 004h                  ; 3c 04
    5046     je short 03babh                           ; 74 35
     5209    je short 03d6eh                           ; 74 35
    50475210    cmp AL, strict byte 003h                  ; 3c 03
    5048     je short 03ba0h                           ; 74 26
    5049     jmp near 03bf6h                           ; e9 79 00
     5211    je short 03d63h                           ; 74 26
     5212    jmp near 03db9h                           ; e9 79 00
    50505213    cmp AL, strict byte 001h                  ; 3c 01
    5051     jne short 03bf6h                          ; 75 75
     5214    jne short 03db9h                          ; 75 75
    50525215    mov es, [bp-010h]                         ; 8e 46 f0
    50535216    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    50545217    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    50555218    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5056     jmp short 03bf6h                          ; eb 61
     5219    jmp short 03db9h                          ; eb 61
    50575220    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    50585221    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5059     jmp short 03b8dh                          ; eb ed
     5222    jmp short 03d50h                          ; eb ed
    50605223    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    50615224    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5062     jmp short 03b8dh                          ; eb e2
     5225    jmp short 03d50h                          ; eb e2
    50635226    mov dx, 001c4h                            ; ba c4 01
    50645227    mov ax, word [bp-016h]                    ; 8b 46 ea
    5065     call 01650h                               ; e8 9c da
     5228    call 01650h                               ; e8 d9 d8
    50665229    and AL, strict byte 03fh                  ; 24 3f
    50675230    xor ah, ah                                ; 30 e4
     
    50705233    mov dx, 001c4h                            ; ba c4 01
    50715234    mov ax, word [bp-016h]                    ; 8b 46 ea
    5072     call 01650h                               ; e8 88 da
     5235    call 01650h                               ; e8 c5 d8
    50735236    movzx bx, al                              ; 0f b6 d8
    50745237    sal bx, 002h                              ; c1 e3 02
    50755238    mov dx, 001c5h                            ; ba c5 01
    50765239    mov ax, word [bp-016h]                    ; 8b 46 ea
    5077     call 01650h                               ; e8 79 da
     5240    call 01650h                               ; e8 b6 d8
    50785241    xor ah, ah                                ; 30 e4
    50795242    add ax, bx                                ; 01 d8
     
    50835246    mov dx, 001c3h                            ; ba c3 01
    50845247    mov ax, word [bp-016h]                    ; 8b 46 ea
    5085     call 01650h                               ; e8 64 da
     5248    call 01650h                               ; e8 a1 d8
    50865249    xor ah, ah                                ; 30 e4
    50875250    inc ax                                    ; 40
     
    50905253    mov es, [bp-010h]                         ; 8e 46 f0
    50915254    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5092     je short 03c34h                           ; 74 34
     5255    je short 03df7h                           ; 74 34
    50935256    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5094     jne short 03c1dh                          ; 75 16
     5257    jne short 03de0h                          ; 75 16
    50955258    mov dx, strict word 00010h                ; ba 10 00
    50965259    mov ax, strict word 00040h                ; b8 40 00
    5097     call 01650h                               ; e8 40 da
     5260    call 01650h                               ; e8 7d d8
    50985261    or AL, strict byte 041h                   ; 0c 41
    50995262    movzx bx, al                              ; 0f b6 d8
    51005263    mov dx, strict word 00010h                ; ba 10 00
    51015264    mov ax, strict word 00040h                ; b8 40 00
    5102     jmp short 03c31h                          ; eb 14
     5265    jmp short 03df4h                          ; eb 14
    51035266    mov dx, 002c0h                            ; ba c0 02
    51045267    mov ax, word [bp-018h]                    ; 8b 46 e8
    5105     call 01650h                               ; e8 2a da
     5268    call 01650h                               ; e8 67 d8
    51065269    db  0feh, 0c0h
    51075270    ; inc al                                    ; fe c0
     
    51095272    mov dx, 002c0h                            ; ba c0 02
    51105273    mov ax, word [bp-018h]                    ; 8b 46 e8
    5111     call 0165eh                               ; e8 2a da
     5274    call 0165eh                               ; e8 67 d8
    51125275    mov es, [bp-010h]                         ; 8e 46 f0
    51135276    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5114     je short 03c42h                           ; 74 04
     5277    je short 03e05h                           ; 74 04
    51155278    mov byte [es:si], 001h                    ; 26 c6 04 01
    51165279    mov es, [bp-010h]                         ; 8e 46 f0
     
    51265289    retn                                      ; c3
    51275290    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5128     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 040h, 056h
    5129     db  03dh, 0a0h, 03dh, 0c8h, 03dh, 095h, 03dh, 0c8h, 03dh, 095h, 03dh, 09eh, 03fh, 07bh, 03dh, 048h
    5130     db  040h, 048h, 040h, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 03fh, 040h, 07bh
    5131     db  03dh, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h
    5132     db  040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h
    5133 _int13_cdemu:                                ; 0xf3cb0 LB 0x434
     5291    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 00bh, 042h, 019h
     5292    db  03fh, 063h, 03fh, 08bh, 03fh, 058h, 03fh, 08bh, 03fh, 058h, 03fh, 061h, 041h, 03eh, 03fh, 00bh
     5293    db  042h, 00bh, 042h, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 002h, 042h, 03eh
     5294    db  03fh, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh
     5295    db  042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h
     5296_int13_cdemu:                                ; 0xf3e73 LB 0x434
    51345297    push bp                                   ; 55
    51355298    mov bp, sp                                ; 89 e5
     
    51395302    mov dx, strict word 0000eh                ; ba 0e 00
    51405303    mov ax, strict word 00040h                ; b8 40 00
    5141     call 0166ch                               ; e8 ab d9
     5304    call 0166ch                               ; e8 e8 d7
    51425305    mov di, 00322h                            ; bf 22 03
    51435306    mov cx, ax                                ; 89 c1
     
    51555318    mov dx, strict word 00074h                ; ba 74 00
    51565319    mov ax, strict word 00040h                ; b8 40 00
    5157     call 0165eh                               ; e8 6e d9
     5320    call 0165eh                               ; e8 ab d7
    51585321    mov es, cx                                ; 8e c1
    51595322    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5160     je short 03d06h                           ; 74 0e
     5323    je short 03ec9h                           ; 74 0e
    51615324    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    51625325    mov ax, word [bp+012h]                    ; 8b 46 12
    51635326    xor ah, ah                                ; 30 e4
    51645327    cmp dx, ax                                ; 39 c2
    5165     je short 03d2fh                           ; 74 29
    5166     mov bx, 00da2h                            ; bb a2 0d
     5328    je short 03ef2h                           ; 74 29
     5329    mov bx, 00da8h                            ; bb a8 0d
    51675330    mov cx, ds                                ; 8c d9
    51685331    mov ax, strict word 00004h                ; b8 04 00
    5169     call 01931h                               ; e8 20 dc
     5332    call 01931h                               ; e8 5d da
    51705333    mov ax, word [bp+012h]                    ; 8b 46 12
    51715334    xor ah, ah                                ; 30 e4
     
    51775340    push 00338h                               ; 68 38 03
    51785341    push strict byte 00004h                   ; 6a 04
    5179     call 01972h                               ; e8 49 dc
     5342    call 01972h                               ; e8 86 da
    51805343    add sp, strict byte 0000ah                ; 83 c4 0a
    5181     jmp near 04068h                           ; e9 39 03
     5344    jmp near 0422bh                           ; e9 39 03
    51825345    mov ax, word [bp+016h]                    ; 8b 46 16
    51835346    shr ax, 008h                              ; c1 e8 08
    51845347    cmp ax, strict word 00050h                ; 3d 50 00
    5185     jnbe near 04048h                          ; 0f 87 0c 03
     5348    jnbe near 0420bh                          ; 0f 87 0c 03
    51865349    push CS                                   ; 0e
    51875350    pop ES                                    ; 07
    51885351    mov cx, strict word 0001eh                ; b9 1e 00
    5189     mov di, 03c57h                            ; bf 57 3c
     5352    mov di, 03e1ah                            ; bf 1a 3e
    51905353    repne scasb                               ; f2 ae
    51915354    sal cx, 1                                 ; d1 e1
    51925355    mov di, cx                                ; 89 cf
    5193     mov ax, word [cs:di+03c74h]               ; 2e 8b 85 74 3c
     5356    mov ax, word [cs:di+03e37h]               ; 2e 8b 85 37 3e
    51945357    mov bx, word [bp+016h]                    ; 8b 5e 16
    51955358    xor bh, bh                                ; 30 ff
     
    52025365    add bx, bx                                ; 01 db
    52035366    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5204     je near 03d7bh                            ; 0f 84 08 00
     5367    je near 03f3eh                            ; 0f 84 08 00
    52055368    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    52065369    call word [word bx+00076h]                ; ff 97 76 00
     
    52095372    mov dx, strict word 00074h                ; ba 74 00
    52105373    mov ax, strict word 00040h                ; b8 40 00
    5211     call 0165eh                               ; e8 d4 d8
     5374    call 0165eh                               ; e8 11 d7
    52125375    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    52135376    lea sp, [bp-004h]                         ; 8d 66 fc
     
    52195382    xor ah, ah                                ; 30 e4
    52205383    or ah, 003h                               ; 80 cc 03
    5221     jmp near 04070h                           ; e9 d0 02
     5384    jmp near 04233h                           ; e9 d0 02
    52225385    mov dx, strict word 00074h                ; ba 74 00
    52235386    mov ax, strict word 00040h                ; b8 40 00
    5224     call 01650h                               ; e8 a7 d8
     5387    call 01650h                               ; e8 e4 d6
    52255388    mov cl, al                                ; 88 c1
    52265389    movzx ax, cl                              ; 0f b6 c1
     
    52315394    mov dx, strict word 00074h                ; ba 74 00
    52325395    mov ax, strict word 00040h                ; b8 40 00
    5233     call 0165eh                               ; e8 9d d8
     5396    call 0165eh                               ; e8 da d6
    52345397    test cl, cl                               ; 84 c9
    5235     je short 03d7fh                           ; 74 ba
    5236     jmp near 04084h                           ; e9 bc 02
     5398    je short 03f42h                           ; 74 ba
     5399    jmp near 04247h                           ; e9 bc 02
    52375400    mov es, [bp-008h]                         ; 8e 46 f8
    52385401    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    52585421    mov word [bp-00ah], cx                    ; 89 4e f6
    52595422    test cx, cx                               ; 85 c9
    5260     jne short 03e15h                          ; 75 03
    5261     jmp near 03d7bh                           ; e9 66 ff
     5423    jne short 03fd8h                          ; 75 03
     5424    jmp near 03f3eh                           ; e9 66 ff
    52625425    cmp di, word [bp-010h]                    ; 3b 7e f0
    5263     jc near 04068h                            ; 0f 82 4c 02
     5426    jc near 0422bh                            ; 0f 82 4c 02
    52645427    cmp ax, dx                                ; 39 d0
    5265     jnc near 04068h                           ; 0f 83 46 02
     5428    jnc near 0422bh                           ; 0f 83 46 02
    52665429    cmp si, bx                                ; 39 de
    5267     jnc near 04068h                           ; 0f 83 40 02
     5430    jnc near 0422bh                           ; 0f 83 40 02
    52685431    mov dx, word [bp+016h]                    ; 8b 56 16
    52695432    shr dx, 008h                              ; c1 ea 08
    52705433    cmp dx, strict byte 00004h                ; 83 fa 04
    5271     jne short 03e36h                          ; 75 03
    5272     jmp near 03d7bh                           ; e9 45 ff
     5434    jne short 03ff9h                          ; 75 03
     5435    jmp near 03f3eh                           ; e9 45 ff
    52735436    mov dx, word [bp+010h]                    ; 8b 56 10
    52745437    shr dx, 004h                              ; c1 ea 04
     
    52815444    xor dl, dl                                ; 30 d2
    52825445    xor cx, cx                                ; 31 c9
    5283     call 09569h                               ; e8 15 57
     5446    call 09729h                               ; e8 12 57
    52845447    xor bx, bx                                ; 31 db
    52855448    add ax, si                                ; 01 f0
     
    52875450    mov bx, di                                ; 89 fb
    52885451    xor cx, cx                                ; 31 c9
    5289     call 09569h                               ; e8 08 57
     5452    call 09729h                               ; e8 05 57
    52905453    mov bx, ax                                ; 89 c3
    52915454    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    53225485    mov dx, ss                                ; 8c d2
    53235486    lea ax, [bp-02eh]                         ; 8d 46 d2
    5324     call 0959ah                               ; e8 e2 56
     5487    call 0975ah                               ; e8 df 56
    53255488    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    53265489    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    53705533    sal si, 1                                 ; d1 e6
    53715534    rcl di, 1                                 ; d1 d7
    5372     loop 03f38h                               ; e2 fa
     5535    loop 040fbh                               ; e2 fa
    53735536    push di                                   ; 57
    53745537    push si                                   ; 56
     
    53855548    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    53865549    test al, al                               ; 84 c0
    5387     je near 03d7bh                            ; 0f 84 13 fe
    5388     mov bx, 00da2h                            ; bb a2 0d
     5550    je near 03f3eh                            ; 0f 84 13 fe
     5551    mov bx, 00da8h                            ; bb a8 0d
    53895552    mov cx, ds                                ; 8c d9
    53905553    mov ax, strict word 00004h                ; b8 04 00
    5391     call 01931h                               ; e8 be d9
     5554    call 01931h                               ; e8 fb d7
    53925555    movzx ax, dl                              ; 0f b6 c2
    53935556    push ax                                   ; 50
     
    53985561    push 0036eh                               ; 68 6e 03
    53995562    push strict byte 00004h                   ; 6a 04
    5400     call 01972h                               ; e8 e9 d9
     5563    call 01972h                               ; e8 26 d8
    54015564    add sp, strict byte 0000ah                ; 83 c4 0a
    54025565    mov ax, word [bp+016h]                    ; 8b 46 16
     
    54055568    mov word [bp+016h], ax                    ; 89 46 16
    54065569    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5407     jmp near 04073h                           ; e9 d5 00
     5570    jmp near 04236h                           ; e9 d5 00
    54085571    mov es, [bp-008h]                         ; 8e 46 f8
    54095572    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    54445607    mov word [bp+010h], ax                    ; 89 46 10
    54455608    cmp dl, 003h                              ; 80 fa 03
    5446     je short 04022h                           ; 74 1a
     5609    je short 041e5h                           ; 74 1a
    54475610    cmp dl, 002h                              ; 80 fa 02
    5448     je short 0401eh                           ; 74 11
     5611    je short 041e1h                           ; 74 11
    54495612    cmp dl, 001h                              ; 80 fa 01
    5450     jne short 04026h                          ; 75 14
     5613    jne short 041e9h                          ; 75 14
    54515614    mov ax, word [bp+010h]                    ; 8b 46 10
    54525615    xor al, al                                ; 30 c0
    54535616    or AL, strict byte 002h                   ; 0c 02
    54545617    mov word [bp+010h], ax                    ; 89 46 10
    5455     jmp short 04026h                          ; eb 08
     5618    jmp short 041e9h                          ; eb 08
    54565619    or AL, strict byte 004h                   ; 0c 04
    5457     jmp short 04019h                          ; eb f7
     5620    jmp short 041dch                          ; eb f7
    54585621    or AL, strict byte 005h                   ; 0c 05
    5459     jmp short 04019h                          ; eb f3
     5622    jmp short 041dch                          ; eb f3
    54605623    mov es, [bp-008h]                         ; 8e 46 f8
    54615624    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5462     jnc near 03d7bh                           ; 0f 83 49 fd
     5625    jnc near 03f3eh                           ; 0f 83 49 fd
    54635626    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    54645627    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5465     jmp near 03d7bh                           ; e9 3c fd
     5628    jmp near 03f3eh                           ; e9 3c fd
    54665629    or bh, 003h                               ; 80 cf 03
    54675630    mov word [bp+016h], bx                    ; 89 5e 16
    5468     jmp near 03d7fh                           ; e9 37 fd
    5469     mov bx, 00da2h                            ; bb a2 0d
     5631    jmp near 03f42h                           ; e9 37 fd
     5632    mov bx, 00da8h                            ; bb a8 0d
    54705633    mov cx, ds                                ; 8c d9
    54715634    mov ax, strict word 00004h                ; b8 04 00
    5472     call 01931h                               ; e8 de d8
     5635    call 01931h                               ; e8 1b d7
    54735636    mov ax, word [bp+016h]                    ; 8b 46 16
    54745637    shr ax, 008h                              ; c1 e8 08
     
    54775640    push 0038fh                               ; 68 8f 03
    54785641    push strict byte 00004h                   ; 6a 04
    5479     call 01972h                               ; e8 0d d9
     5642    call 01972h                               ; e8 4a d7
    54805643    add sp, strict byte 00008h                ; 83 c4 08
    54815644    mov ax, word [bp+016h]                    ; 8b 46 16
     
    54885651    mov dx, strict word 00074h                ; ba 74 00
    54895652    mov ax, strict word 00040h                ; b8 40 00
    5490     call 0165eh                               ; e8 da d5
     5653    call 0165eh                               ; e8 17 d4
    54915654    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5492     jmp near 03d8eh                           ; e9 03 fd
     5655    jmp near 03f51h                           ; e9 03 fd
    54935656    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5494     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 046h, 0a5h
    5495     db  043h, 091h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 0a5h, 043h, 029h
    5496     db  046h, 029h, 046h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0bbh, 041h, 0a5h
    5497     db  043h, 029h, 046h, 0c4h, 041h, 0d7h, 041h, 086h, 041h, 0d7h, 041h, 005h, 043h, 0bfh, 043h, 0d7h
    5498     db  041h, 0e6h, 043h, 0e2h, 045h, 0eah, 045h, 029h, 046h
    5499 _int13_cdrom:                                ; 0xf40e4 LB 0x562
     5657    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0ech, 047h, 068h
     5658    db  045h, 054h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 068h, 045h, 0ech
     5659    db  047h, 0ech, 047h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 07eh, 043h, 068h
     5660    db  045h, 0ech, 047h, 087h, 043h, 09ah, 043h, 049h, 043h, 09ah, 043h, 0c8h, 044h, 082h, 045h, 09ah
     5661    db  043h, 0a9h, 045h, 0a5h, 047h, 0adh, 047h, 0ech, 047h
     5662_int13_cdrom:                                ; 0xf42a7 LB 0x562
    55005663    push bp                                   ; 55
    55015664    mov bp, sp                                ; 89 e5
     
    55055668    mov dx, strict word 0000eh                ; ba 0e 00
    55065669    mov ax, strict word 00040h                ; b8 40 00
    5507     call 0166ch                               ; e8 77 d5
     5670    call 0166ch                               ; e8 b4 d3
    55085671    mov word [bp-01ah], ax                    ; 89 46 e6
    55095672    mov si, 00122h                            ; be 22 01
     
    55125675    mov dx, strict word 00074h                ; ba 74 00
    55135676    mov ax, strict word 00040h                ; b8 40 00
    5514     call 0165eh                               ; e8 55 d5
     5677    call 0165eh                               ; e8 92 d3
    55155678    mov ax, word [bp+010h]                    ; 8b 46 10
    55165679    xor ah, ah                                ; 30 e4
    55175680    cmp ax, 000e0h                            ; 3d e0 00
    5518     jc short 04118h                           ; 72 05
     5681    jc short 042dbh                           ; 72 05
    55195682    cmp ax, 000f0h                            ; 3d f0 00
    5520     jc short 04136h                           ; 72 1e
     5683    jc short 042f9h                           ; 72 1e
    55215684    mov ax, word [bp+010h]                    ; 8b 46 10
    55225685    xor ah, ah                                ; 30 e4
     
    55285691    push 003cbh                               ; 68 cb 03
    55295692    push strict byte 00004h                   ; 6a 04
    5530     call 01972h                               ; e8 42 d8
     5693    call 01972h                               ; e8 7f d6
    55315694    add sp, strict byte 0000ah                ; 83 c4 0a
    5532     jmp near 04606h                           ; e9 d0 04
     5695    jmp near 047c9h                           ; e9 d0 04
    55335696    mov ax, word [bp+010h]                    ; 8b 46 10
    55345697    xor ah, ah                                ; 30 e4
     
    55395702    mov byte [bp-008h], dl                    ; 88 56 f8
    55405703    cmp dl, 010h                              ; 80 fa 10
    5541     jc short 0415fh                           ; 72 10
     5704    jc short 04322h                           ; 72 10
    55425705    push ax                                   ; 50
    55435706    mov ax, word [bp+018h]                    ; 8b 46 18
     
    55465709    push 003bfh                               ; 68 bf 03
    55475710    push 003f6h                               ; 68 f6 03
    5548     jmp short 0412bh                          ; eb cc
     5711    jmp short 042eeh                          ; eb cc
    55495712    mov ax, word [bp+018h]                    ; 8b 46 18
    55505713    shr ax, 008h                              ; c1 e8 08
    55515714    cmp ax, strict word 00050h                ; 3d 50 00
    5552     jnbe near 04629h                          ; 0f 87 bd 04
     5715    jnbe near 047ech                          ; 0f 87 bd 04
    55535716    push CS                                   ; 0e
    55545717    pop ES                                    ; 07
    55555718    mov cx, strict word 0001eh                ; b9 1e 00
    5556     mov di, 0408bh                            ; bf 8b 40
     5719    mov di, 0424eh                            ; bf 4e 42
    55575720    repne scasb                               ; f2 ae
    55585721    sal cx, 1                                 ; d1 e1
    55595722    mov di, cx                                ; 89 cf
    5560     mov ax, word [cs:di+040a8h]               ; 2e 8b 85 a8 40
     5723    mov ax, word [cs:di+0426bh]               ; 2e 8b 85 6b 42
    55615724    mov bx, word [bp+018h]                    ; 8b 5e 18
    55625725    xor bh, bh                                ; 30 ff
     
    55655728    xor ah, ah                                ; 30 e4
    55665729    or ah, 003h                               ; 80 cc 03
    5567     jmp near 0460eh                           ; e9 7d 04
     5730    jmp near 047d1h                           ; e9 7d 04
    55685731    mov dx, strict word 00074h                ; ba 74 00
    55695732    mov ax, strict word 00040h                ; b8 40 00
    5570     call 01650h                               ; e8 b6 d4
     5733    call 01650h                               ; e8 f3 d2
    55715734    mov cl, al                                ; 88 c1
    55725735    movzx ax, cl                              ; 0f b6 c1
     
    55775740    mov dx, strict word 00074h                ; ba 74 00
    55785741    mov ax, strict word 00040h                ; b8 40 00
    5579     call 0165eh                               ; e8 ac d4
     5742    call 0165eh                               ; e8 e9 d2
    55805743    test cl, cl                               ; 84 c9
    5581     je near 043a9h                            ; 0f 84 f1 01
    5582     jmp near 04622h                           ; e9 67 04
     5744    je near 0456ch                            ; 0f 84 f1 01
     5745    jmp near 047e5h                           ; e9 67 04
    55835746    or bh, 002h                               ; 80 cf 02
    55845747    mov word [bp+018h], bx                    ; 89 5e 18
    5585     jmp near 04611h                           ; e9 4d 04
     5748    jmp near 047d4h                           ; e9 4d 04
    55865749    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    55875750    or bh, 030h                               ; 80 cf 30
    55885751    mov word [bp+018h], bx                    ; 89 5e 18
    55895752    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    5590     jmp near 043a9h                           ; e9 d2 01
     5753    jmp near 0456ch                           ; e9 d2 01
    55915754    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    55925755    mov es, [bp+006h]                         ; 8e 46 06
     
    56035766    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    56045767    or di, ax                                 ; 09 c7
    5605     je short 0421fh                           ; 74 18
     5768    je short 043e2h                           ; 74 18
    56065769    mov ax, word [bp+018h]                    ; 8b 46 18
    56075770    shr ax, 008h                              ; c1 e8 08
     
    56105773    push 00428h                               ; 68 28 04
    56115774    push strict byte 00007h                   ; 6a 07
    5612     call 01972h                               ; e8 59 d7
     5775    call 01972h                               ; e8 96 d5
    56135776    add sp, strict byte 00008h                ; 83 c4 08
    5614     jmp near 04606h                           ; e9 e7 03
     5777    jmp near 047c9h                           ; e9 e7 03
    56155778    les bx, [bp-014h]                         ; c4 5e ec
    56165779    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    56225785    mov word [bp-016h], ax                    ; 89 46 ea
    56235786    cmp ax, strict word 00044h                ; 3d 44 00
    5624     je near 043a5h                            ; 0f 84 66 01
     5787    je near 04568h                            ; 0f 84 66 01
    56255788    cmp ax, strict word 00047h                ; 3d 47 00
    5626     je near 043a5h                            ; 0f 84 5f 01
     5789    je near 04568h                            ; 0f 84 5f 01
    56275790    mov cx, strict word 0000ch                ; b9 0c 00
    56285791    xor bx, bx                                ; 31 db
    56295792    mov dx, ss                                ; 8c d2
    56305793    lea ax, [bp-02ch]                         ; 8d 46 d4
    5631     call 0959ah                               ; e8 47 53
     5794    call 0975ah                               ; e8 44 53
    56325795    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    56335796    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    56575820    sal ax, 1                                 ; d1 e0
    56585821    rcl bx, 1                                 ; d1 d3
    5659     loop 0429dh                               ; e2 fa
     5822    loop 04460h                               ; e2 fa
    56605823    push bx                                   ; 53
    56615824    push ax                                   ; 50
     
    56735836    shr di, 1                                 ; d1 ef
    56745837    rcr ax, 1                                 ; d1 d8
    5675     loop 042c7h                               ; e2 fa
     5838    loop 0448ah                               ; e2 fa
    56765839    les bx, [bp-014h]                         ; c4 5e ec
    56775840    mov word [es:bx+002h], ax                 ; 26 89 47 02
    56785841    test dl, dl                               ; 84 d2
    5679     je near 043a5h                            ; 0f 84 cb 00
    5680     mov bx, 00da2h                            ; bb a2 0d
     5842    je near 04568h                            ; 0f 84 cb 00
     5843    mov bx, 00da8h                            ; bb a8 0d
    56815844    mov cx, ds                                ; 8c d9
    56825845    mov ax, strict word 00004h                ; b8 04 00
    5683     call 01931h                               ; e8 4c d6
     5846    call 01931h                               ; e8 89 d4
    56845847    movzx ax, dl                              ; 0f b6 c2
    56855848    push ax                                   ; 50
     
    56885851    push 00451h                               ; 68 51 04
    56895852    push strict byte 00004h                   ; 6a 04
    5690     call 01972h                               ; e8 7b d6
     5853    call 01972h                               ; e8 b8 d4
    56915854    add sp, strict byte 0000ah                ; 83 c4 0a
    56925855    mov ax, word [bp+018h]                    ; 8b 46 18
    56935856    xor ah, ah                                ; 30 e4
    56945857    or ah, 00ch                               ; 80 cc 0c
    5695     jmp near 0460eh                           ; e9 09 03
     5858    jmp near 047d1h                           ; e9 09 03
    56965859    cmp bx, strict byte 00002h                ; 83 fb 02
    5697     jnbe near 04606h                          ; 0f 87 fa 02
     5860    jnbe near 047c9h                          ; 0f 87 fa 02
    56985861    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    56995862    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    57035866    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    57045867    cmp bx, strict byte 00002h                ; 83 fb 02
    5705     je short 04396h                           ; 74 73
     5868    je short 04559h                           ; 74 73
    57065869    cmp bx, strict byte 00001h                ; 83 fb 01
    5707     je short 04363h                           ; 74 3b
     5870    je short 04526h                           ; 74 3b
    57085871    test bx, bx                               ; 85 db
    5709     jne near 043a5h                           ; 0f 85 77 00
     5872    jne near 04568h                           ; 0f 85 77 00
    57105873    cmp AL, strict byte 0ffh                  ; 3c ff
    5711     jne short 04344h                          ; 75 12
     5874    jne short 04507h                          ; 75 12
    57125875    mov ax, word [bp+018h]                    ; 8b 46 18
    57135876    xor ah, ah                                ; 30 e4
     
    57165879    xor al, al                                ; 30 c0
    57175880    or AL, strict byte 001h                   ; 0c 01
    5718     jmp near 0460eh                           ; e9 ca 02
     5881    jmp near 047d1h                           ; e9 ca 02
    57195882    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    57205883    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    57285891    or AL, strict byte 001h                   ; 0c 01
    57295892    mov word [bp+018h], ax                    ; 89 46 18
    5730     jmp near 043a5h                           ; e9 42 00
     5893    jmp near 04568h                           ; e9 42 00
    57315894    test al, al                               ; 84 c0
    5732     jne short 04373h                          ; 75 0c
     5895    jne short 04536h                          ; 75 0c
    57335896    or bh, 0b0h                               ; 80 cf b0
    57345897    mov word [bp+018h], bx                    ; 89 5e 18
    57355898    mov byte [bp+018h], al                    ; 88 46 18
    5736     jmp near 04611h                           ; e9 9e 02
     5899    jmp near 047d4h                           ; e9 9e 02
    57375900    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    57385901    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    57495912    xor al, al                                ; 30 c0
    57505913    or ax, dx                                 ; 09 d0
    5751     jmp short 0435dh                          ; eb c7
     5914    jmp short 04520h                          ; eb c7
    57525915    test al, al                               ; 84 c0
    57535916    db  00fh, 095h, 0c0h
     
    57615924    mov dx, strict word 00074h                ; ba 74 00
    57625925    mov ax, strict word 00040h                ; b8 40 00
    5763     call 0165eh                               ; e8 aa d2
     5926    call 0165eh                               ; e8 e7 d0
    57645927    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    57655928    lea sp, [bp-004h]                         ; 8d 66 fc
     
    57745937    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    57755938    test al, al                               ; 84 c0
    5776     je short 043d9h                           ; 74 06
     5939    je short 0459ch                           ; 74 06
    57775940    or bh, 0b1h                               ; 80 cf b1
    5778     jmp near 041beh                           ; e9 e5 fd
    5779     je short 043a5h                           ; 74 ca
     5941    jmp near 04381h                           ; e9 e5 fd
     5942    je short 04568h                           ; 74 ca
    57805943    mov ax, word [bp+018h]                    ; 8b 46 18
    57815944    xor ah, ah                                ; 30 e4
    57825945    or ah, 0b1h                               ; 80 cc b1
    5783     jmp near 0460eh                           ; e9 28 02
     5946    jmp near 047d1h                           ; e9 28 02
    57845947    mov dx, word [bp+00ch]                    ; 8b 56 0c
    57855948    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    57915954    mov word [bp-00eh], ax                    ; 89 46 f2
    57925955    cmp ax, strict word 0001ah                ; 3d 1a 00
    5793     jc near 04606h                            ; 0f 82 04 02
    5794     jc short 04453h                           ; 72 4f
     5956    jc near 047c9h                            ; 0f 82 04 02
     5957    jc short 04616h                           ; 72 4f
    57955958    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    57965959    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    58155978    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    58165979    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    5817     jc near 0452ah                            ; 0f 82 cf 00
     5980    jc near 046edh                            ; 0f 82 cf 00
    58185981    mov es, [bp-00ah]                         ; 8e 46 f6
    58195982    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    58676030    xor cl, cl                                ; 30 c9
    58686031    xor ch, ch                                ; 30 ed
    5869     jmp short 0450dh                          ; eb 05
     6032    jmp short 046d0h                          ; eb 05
    58706033    cmp ch, 00fh                              ; 80 fd 0f
    5871     jnc short 04520h                          ; 73 13
     6034    jnc short 046e3h                          ; 73 13
    58726035    movzx dx, ch                              ; 0f b6 d5
    58736036    add dx, 00312h                            ; 81 c2 12 03
    58746037    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5875     call 01650h                               ; e8 36 d1
     6038    call 01650h                               ; e8 73 cf
    58766039    add cl, al                                ; 00 c1
    58776040    db  0feh, 0c5h
    58786041    ; inc ch                                    ; fe c5
    5879     jmp short 04508h                          ; eb e8
     6042    jmp short 046cbh                          ; eb e8
    58806043    neg cl                                    ; f6 d9
    58816044    mov es, [bp-00ch]                         ; 8e 46 f4
    58826045    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    58836046    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    5884     jc near 043a5h                            ; 0f 82 73 fe
     6047    jc near 04568h                            ; 0f 82 73 fe
    58856048    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    58866049    cwd                                       ; 99
     
    59006063    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    59016064    test al, al                               ; 84 c0
    5902     jne short 04573h                          ; 75 09
     6065    jne short 04736h                          ; 75 09
    59036066    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    59046067    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    59096072    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    59106073    test al, al                               ; 84 c0
    5911     jne short 0459fh                          ; 75 13
     6074    jne short 04762h                          ; 75 13
    59126075    mov word [es:bx+030h], dx                 ; 26 89 57 30
    59136076    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    59246087    xor al, al                                ; 30 c0
    59256088    mov AH, strict byte 01eh                  ; b4 1e
    5926     jmp short 045c7h                          ; eb 05
     6089    jmp short 0478ah                          ; eb 05
    59276090    cmp ah, 040h                              ; 80 fc 40
    5928     jnc short 045d6h                          ; 73 0f
     6091    jnc short 04799h                          ; 73 0f
    59296092    movzx si, ah                              ; 0f b6 f4
    59306093    mov es, [bp-00ah]                         ; 8e 46 f6
     
    59336096    db  0feh, 0c4h
    59346097    ; inc ah                                    ; fe c4
    5935     jmp short 045c2h                          ; eb ec
     6098    jmp short 04785h                          ; eb ec
    59366099    neg al                                    ; f6 d8
    59376100    mov es, [bp-00ah]                         ; 8e 46 f6
    59386101    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5939     jmp near 043a5h                           ; e9 c3 fd
     6102    jmp near 04568h                           ; e9 c3 fd
    59406103    or bh, 006h                               ; 80 cf 06
    59416104    mov word [bp+018h], bx                    ; 89 5e 18
    5942     jmp short 04622h                          ; eb 38
     6105    jmp short 047e5h                          ; eb 38
    59436106    cmp bx, strict byte 00006h                ; 83 fb 06
    5944     je near 043a5h                            ; 0f 84 b4 fd
     6107    je near 04568h                            ; 0f 84 b4 fd
    59456108    cmp bx, strict byte 00001h                ; 83 fb 01
    5946     jc short 04606h                           ; 72 10
    5947     jbe near 043a5h                           ; 0f 86 ab fd
     6109    jc short 047c9h                           ; 72 10
     6110    jbe near 04568h                           ; 0f 86 ab fd
    59486111    cmp bx, strict byte 00003h                ; 83 fb 03
    5949     jc short 04606h                           ; 72 07
     6112    jc short 047c9h                           ; 72 07
    59506113    cmp bx, strict byte 00004h                ; 83 fb 04
    5951     jbe near 043a5h                           ; 0f 86 9f fd
     6114    jbe near 04568h                           ; 0f 86 9f fd
    59526115    mov ax, word [bp+018h]                    ; 8b 46 18
    59536116    xor ah, ah                                ; 30 e4
     
    59596122    mov dx, strict word 00074h                ; ba 74 00
    59606123    mov ax, strict word 00040h                ; b8 40 00
    5961     call 0165eh                               ; e8 3c d0
     6124    call 0165eh                               ; e8 79 ce
    59626125    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    5963     jmp near 043b8h                           ; e9 8f fd
    5964     mov bx, 00da2h                            ; bb a2 0d
     6126    jmp near 0457bh                           ; e9 8f fd
     6127    mov bx, 00da8h                            ; bb a8 0d
    59656128    mov cx, ds                                ; 8c d9
    59666129    mov ax, strict word 00004h                ; b8 04 00
    5967     call 01931h                               ; e8 fd d2
     6130    call 01931h                               ; e8 3a d1
    59686131    mov ax, word [bp+018h]                    ; 8b 46 18
    59696132    shr ax, 008h                              ; c1 e8 08
     
    59726135    push 00313h                               ; 68 13 03
    59736136    push strict byte 00004h                   ; 6a 04
    5974     jmp near 04216h                           ; e9 d0 fb
    5975 print_boot_device_:                          ; 0xf4646 LB 0x4b
     6137    jmp near 043d9h                           ; e9 d0 fb
     6138print_boot_device_:                          ; 0xf4809 LB 0x4b
    59766139    push bp                                   ; 55
    59776140    mov bp, sp                                ; 89 e5
    59786141    push cx                                   ; 51
    59796142    test al, al                               ; 84 c0
    5980     je short 04653h                           ; 74 05
     6143    je short 04816h                           ; 74 05
    59816144    mov dx, strict word 00002h                ; ba 02 00
    5982     jmp short 0466dh                          ; eb 1a
     6145    jmp short 04830h                          ; eb 1a
    59836146    test dl, dl                               ; 84 d2
    5984     je short 0465ch                           ; 74 05
     6147    je short 0481fh                           ; 74 05
    59856148    mov dx, strict word 00003h                ; ba 03 00
    5986     jmp short 0466dh                          ; eb 11
     6149    jmp short 04830h                          ; eb 11
    59876150    test bl, 080h                             ; f6 c3 80
    5988     jne short 04665h                          ; 75 04
     6151    jne short 04828h                          ; 75 04
    59896152    xor dh, dh                                ; 30 f6
    5990     jmp short 0466dh                          ; eb 08
     6153    jmp short 04830h                          ; eb 08
    59916154    test bl, 080h                             ; f6 c3 80
    5992     je short 0468bh                           ; 74 21
     6155    je short 0484eh                           ; 74 21
    59936156    mov dx, strict word 00001h                ; ba 01 00
    5994     mov bx, 00da2h                            ; bb a2 0d
     6157    mov bx, 00da8h                            ; bb a8 0d
    59956158    mov cx, ds                                ; 8c d9
    59966159    mov ax, strict word 00004h                ; b8 04 00
    5997     call 01931h                               ; e8 b9 d2
     6160    call 01931h                               ; e8 f6 d0
    59986161    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5999     add dx, 00dc8h                            ; 81 c2 c8 0d
     6162    add dx, 00dceh                            ; 81 c2 ce 0d
    60006163    push dx                                   ; 52
    60016164    push 00474h                               ; 68 74 04
    60026165    push strict byte 00004h                   ; 6a 04
    6003     call 01972h                               ; e8 ea d2
     6166    call 01972h                               ; e8 27 d1
    60046167    add sp, strict byte 00006h                ; 83 c4 06
    60056168    lea sp, [bp-002h]                         ; 8d 66 fe
     
    60076170    pop bp                                    ; 5d
    60086171    retn                                      ; c3
    6009 print_boot_failure_:                         ; 0xf4691 LB 0x93
     6172print_boot_failure_:                         ; 0xf4854 LB 0x93
    60106173    push bp                                   ; 55
    60116174    mov bp, sp                                ; 89 e5
     
    60166179    movzx si, ah                              ; 0f b6 f4
    60176180    test al, al                               ; 84 c0
    6018     je short 046beh                           ; 74 1b
    6019     mov bx, 00da2h                            ; bb a2 0d
     6181    je short 04881h                           ; 74 1b
     6182    mov bx, 00da8h                            ; bb a8 0d
    60206183    mov cx, ds                                ; 8c d9
    60216184    mov ax, strict word 00004h                ; b8 04 00
    6022     call 01931h                               ; e8 83 d2
    6023     push 00ddch                               ; 68 dc 0d
     6185    call 01931h                               ; e8 c0 d0
     6186    push 00de2h                               ; 68 e2 0d
    60246187    push 00488h                               ; 68 88 04
    60256188    push strict byte 00004h                   ; 6a 04
    6026     call 01972h                               ; e8 b9 d2
     6189    call 01972h                               ; e8 f6 d0
    60276190    add sp, strict byte 00006h                ; 83 c4 06
    6028     jmp short 04702h                          ; eb 44
     6191    jmp short 048c5h                          ; eb 44
    60296192    test dl, dl                               ; 84 d2
    6030     je short 046d2h                           ; 74 10
    6031     mov bx, 00da2h                            ; bb a2 0d
     6193    je short 04895h                           ; 74 10
     6194    mov bx, 00da8h                            ; bb a8 0d
    60326195    mov cx, ds                                ; 8c d9
    60336196    mov ax, strict word 00004h                ; b8 04 00
    6034     call 01931h                               ; e8 64 d2
    6035     push 00de6h                               ; 68 e6 0d
    6036     jmp short 046b1h                          ; eb df
     6197    call 01931h                               ; e8 a1 d0
     6198    push 00dech                               ; 68 ec 0d
     6199    jmp short 04874h                          ; eb df
    60376200    test bl, 080h                             ; f6 c3 80
    6038     je short 046e8h                           ; 74 11
    6039     mov bx, 00da2h                            ; bb a2 0d
     6201    je short 048abh                           ; 74 11
     6202    mov bx, 00da8h                            ; bb a8 0d
    60406203    mov cx, ds                                ; 8c d9
    60416204    mov ax, strict word 00004h                ; b8 04 00
    6042     call 01931h                               ; e8 4f d2
     6205    call 01931h                               ; e8 8c d0
    60436206    push si                                   ; 56
    6044     push 00dd2h                               ; 68 d2 0d
    6045     jmp short 046f7h                          ; eb 0f
    6046     mov bx, 00da2h                            ; bb a2 0d
     6207    push 00dd8h                               ; 68 d8 0d
     6208    jmp short 048bah                          ; eb 0f
     6209    mov bx, 00da8h                            ; bb a8 0d
    60476210    mov cx, ds                                ; 8c d9
    60486211    mov ax, strict word 00004h                ; b8 04 00
    6049     call 01931h                               ; e8 3e d2
     6212    call 01931h                               ; e8 7b d0
    60506213    push si                                   ; 56
    6051     push 00dc8h                               ; 68 c8 0d
     6214    push 00dceh                               ; 68 ce 0d
    60526215    push 0049dh                               ; 68 9d 04
    60536216    push strict byte 00004h                   ; 6a 04
    6054     call 01972h                               ; e8 73 d2
     6217    call 01972h                               ; e8 b0 d0
    60556218    add sp, strict byte 00008h                ; 83 c4 08
    60566219    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6057     jne short 0471ch                          ; 75 14
     6220    jne short 048dfh                          ; 75 14
    60586221    test dh, dh                               ; 84 f6
    6059     jne short 04711h                          ; 75 05
     6222    jne short 048d4h                          ; 75 05
    60606223    push 004b5h                               ; 68 b5 04
    6061     jmp short 04714h                          ; eb 03
     6224    jmp short 048d7h                          ; eb 03
    60626225    push 004dfh                               ; 68 df 04
    60636226    push strict byte 00007h                   ; 6a 07
    6064     call 01972h                               ; e8 59 d2
     6227    call 01972h                               ; e8 96 d0
    60656228    add sp, strict byte 00004h                ; 83 c4 04
    60666229    lea sp, [bp-002h]                         ; 8d 66 fe
     
    60686231    pop bp                                    ; 5d
    60696232    retn 00002h                               ; c2 02 00
    6070 print_cdromboot_failure_:                    ; 0xf4724 LB 0x27
     6233print_cdromboot_failure_:                    ; 0xf48e7 LB 0x27
    60716234    push bp                                   ; 55
    60726235    mov bp, sp                                ; 89 e5
     
    60756238    push dx                                   ; 52
    60766239    mov dx, ax                                ; 89 c2
    6077     mov bx, 00da2h                            ; bb a2 0d
     6240    mov bx, 00da8h                            ; bb a8 0d
    60786241    mov cx, ds                                ; 8c d9
    60796242    mov ax, strict word 00004h                ; b8 04 00
    6080     call 01931h                               ; e8 fa d1
     6243    call 01931h                               ; e8 37 d0
    60816244    push dx                                   ; 52
    60826245    push 00514h                               ; 68 14 05
    60836246    push strict byte 00004h                   ; 6a 04
    6084     call 01972h                               ; e8 32 d2
     6247    call 01972h                               ; e8 6f d0
    60856248    add sp, strict byte 00006h                ; 83 c4 06
    60866249    lea sp, [bp-006h]                         ; 8d 66 fa
     
    60906253    pop bp                                    ; 5d
    60916254    retn                                      ; c3
    6092 _int19_function:                             ; 0xf474b LB 0x256
     6255_int19_function:                             ; 0xf490e LB 0x256
    60936256    push bp                                   ; 55
    60946257    mov bp, sp                                ; 89 e5
     
    60986261    mov dx, strict word 0000eh                ; ba 0e 00
    60996262    mov ax, strict word 00040h                ; b8 40 00
    6100     call 0166ch                               ; e8 10 cf
     6263    call 0166ch                               ; e8 4d cd
    61016264    mov bx, ax                                ; 89 c3
    61026265    mov word [bp-00eh], ax                    ; 89 46 f2
    61036266    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    61046267    mov ax, strict word 0003dh                ; b8 3d 00
    6105     call 016ach                               ; e8 41 cf
     6268    call 016ach                               ; e8 7e cd
    61066269    movzx si, al                              ; 0f b6 f0
    61076270    mov ax, strict word 00038h                ; b8 38 00
    6108     call 016ach                               ; e8 38 cf
     6271    call 016ach                               ; e8 75 cd
    61096272    and AL, strict byte 0f0h                  ; 24 f0
    61106273    xor ah, ah                                ; 30 e4
     
    61126275    or si, ax                                 ; 09 c6
    61136276    mov ax, strict word 0003ch                ; b8 3c 00
    6114     call 016ach                               ; e8 29 cf
     6277    call 016ach                               ; e8 66 cd
    61156278    and AL, strict byte 00fh                  ; 24 0f
    61166279    xor ah, ah                                ; 30 e4
     
    61196282    mov dx, 00339h                            ; ba 39 03
    61206283    mov ax, bx                                ; 89 d8
    6121     call 01650h                               ; e8 bc ce
     6284    call 01650h                               ; e8 f9 cc
    61226285    test al, al                               ; 84 c0
    6123     je short 047a3h                           ; 74 0b
     6286    je short 04966h                           ; 74 0b
    61246287    mov dx, 00339h                            ; ba 39 03
    61256288    mov ax, bx                                ; 89 d8
    6126     call 01650h                               ; e8 b0 ce
     6289    call 01650h                               ; e8 ed cc
    61276290    movzx si, al                              ; 0f b6 f0
    61286291    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6129     jne short 047b9h                          ; 75 10
     6292    jne short 0497ch                          ; 75 10
    61306293    mov ax, strict word 0003ch                ; b8 3c 00
    6131     call 016ach                               ; e8 fd ce
     6294    call 016ach                               ; e8 3a cd
    61326295    and AL, strict byte 0f0h                  ; 24 f0
    61336296    xor ah, ah                                ; 30 e4
    61346297    sar ax, 004h                              ; c1 f8 04
    6135     call 0765bh                               ; e8 a2 2e
     6298    call 0781eh                               ; e8 a2 2e
    61366299    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6137     jne short 047c2h                          ; 75 03
     6300    jne short 04985h                          ; 75 03
    61386301    shr si, 004h                              ; c1 ee 04
    61396302    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6140     jne short 047cbh                          ; 75 03
     6303    jne short 0498eh                          ; 75 03
    61416304    shr si, 008h                              ; c1 ee 08
    61426305    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6143     jne short 047d4h                          ; 75 03
     6306    jne short 04997h                          ; 75 03
    61446307    shr si, 00ch                              ; c1 ee 0c
    61456308    cmp si, strict byte 00010h                ; 83 fe 10
    6146     jnc short 047ddh                          ; 73 04
     6309    jnc short 049a0h                          ; 73 04
    61476310    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    61486311    xor al, al                                ; 30 c0
     
    61506313    mov byte [bp-00ah], al                    ; 88 46 f6
    61516314    mov byte [bp-00ch], al                    ; 88 46 f4
    6152     mov bx, 00da2h                            ; bb a2 0d
     6315    mov bx, 00da8h                            ; bb a8 0d
    61536316    mov cx, ds                                ; 8c d9
    61546317    mov ax, strict word 00004h                ; b8 04 00
    6155     call 01931h                               ; e8 3e d1
     6318    call 01931h                               ; e8 7b cf
    61566319    push si                                   ; 56
    61576320    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    61596322    push 00534h                               ; 68 34 05
    61606323    push strict byte 00004h                   ; 6a 04
    6161     call 01972h                               ; e8 71 d1
     6324    call 01972h                               ; e8 ae cf
    61626325    add sp, strict byte 00008h                ; 83 c4 08
    61636326    and si, strict byte 0000fh                ; 83 e6 0f
    61646327    cmp si, strict byte 00002h                ; 83 fe 02
    6165     jc short 0481ah                           ; 72 0e
    6166     jbe short 04829h                          ; 76 1b
     6328    jc short 049ddh                           ; 72 0e
     6329    jbe short 049ech                          ; 76 1b
    61676330    cmp si, strict byte 00004h                ; 83 fe 04
    6168     je short 04847h                           ; 74 34
     6331    je short 04a0ah                           ; 74 34
    61696332    cmp si, strict byte 00003h                ; 83 fe 03
    6170     je short 0483dh                           ; 74 25
    6171     jmp short 04874h                          ; eb 5a
     6333    je short 04a00h                           ; 74 25
     6334    jmp short 04a37h                          ; eb 5a
    61726335    cmp si, strict byte 00001h                ; 83 fe 01
    6173     jne short 04874h                          ; 75 55
     6336    jne short 04a37h                          ; 75 55
    61746337    xor al, al                                ; 30 c0
    61756338    mov byte [bp-006h], al                    ; 88 46 fa
    61766339    mov byte [bp-00ah], al                    ; 88 46 f6
    6177     jmp short 0488ch                          ; eb 63
     6340    jmp short 04a4fh                          ; eb 63
    61786341    mov dx, 00338h                            ; ba 38 03
    61796342    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6180     call 01650h                               ; e8 1e ce
     6343    call 01650h                               ; e8 5b cc
    61816344    add AL, strict byte 080h                  ; 04 80
    61826345    mov byte [bp-006h], al                    ; 88 46 fa
    61836346    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6184     jmp short 0488ch                          ; eb 4f
     6347    jmp short 04a4fh                          ; eb 4f
    61856348    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    61866349    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6187     jmp short 04851h                          ; eb 0a
     6350    jmp short 04a14h                          ; eb 0a
    61886351    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    61896352    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6190     je short 0488ch                           ; 74 3b
    6191     call 0389ah                               ; e8 46 f0
     6353    je short 04a4fh                           ; 74 3b
     6354    call 03a5dh                               ; e8 46 f0
    61926355    mov bx, ax                                ; 89 c3
    61936356    test AL, strict byte 0ffh                 ; a8 ff
    6194     je short 0487bh                           ; 74 21
    6195     call 04724h                               ; e8 c7 fe
     6357    je short 04a3eh                           ; 74 21
     6358    call 048e7h                               ; e8 c7 fe
    61966359    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    61976360    push ax                                   ; 50
     
    62006363    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    62016364    mov cx, strict word 00001h                ; b9 01 00
    6202     call 04691h                               ; e8 1d fe
     6365    call 04854h                               ; e8 1d fe
    62036366    xor ax, ax                                ; 31 c0
    62046367    xor dx, dx                                ; 31 d2
    6205     jmp near 0499ah                           ; e9 1f 01
     6368    jmp near 04b5dh                           ; e9 1f 01
    62066369    mov dx, 0032eh                            ; ba 2e 03
    62076370    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6208     call 0166ch                               ; e8 e8 cd
     6371    call 0166ch                               ; e8 25 cc
    62096372    mov di, ax                                ; 89 c7
    62106373    shr bx, 008h                              ; c1 eb 08
    62116374    mov byte [bp-006h], bl                    ; 88 5e fa
    62126375    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6213     jne near 04908h                           ; 0f 85 74 00
     6376    jne near 04acbh                           ; 0f 85 74 00
    62146377    xor si, si                                ; 31 f6
    62156378    mov ax, 0e200h                            ; b8 00 e2
    62166379    mov es, ax                                ; 8e c0
    62176380    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6218     jne short 0485dh                          ; 75 bb
     6381    jne short 04a20h                          ; 75 bb
    62196382    mov cx, ax                                ; 89 c1
    62206383    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    62216384    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6222     jne short 0485dh                          ; 75 ad
     6385    jne short 04a20h                          ; 75 ad
    62236386    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6224     jne short 0485dh                          ; 75 a6
     6387    jne short 04a20h                          ; 75 a6
    62256388    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    62266389    mov dx, word [es:di]                      ; 26 8b 15
    62276390    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    62286391    cmp ax, 06568h                            ; 3d 68 65
    6229     jne short 048e6h                          ; 75 1f
     6392    jne short 04aa9h                          ; 75 1f
    62306393    cmp dx, 07445h                            ; 81 fa 45 74
    6231     jne short 048e6h                          ; 75 19
     6394    jne short 04aa9h                          ; 75 19
    62326395    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    62336396    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    62346397    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6235     call 04646h                               ; e8 6a fd
     6398    call 04809h                               ; e8 6a fd
    62366399    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    62376400    mov word [bp-010h], cx                    ; 89 4e f0
    6238     jmp short 04902h                          ; eb 1c
     6401    jmp short 04ac5h                          ; eb 1c
    62396402    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    62406403    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    62416404    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6242     call 04646h                               ; e8 51 fd
     6405    call 04809h                               ; e8 51 fd
    62436406    sti                                       ; fb
    62446407    mov word [bp-010h], cx                    ; 89 4e f0
     
    62476410    mov word [bp-012h], ax                    ; 89 46 ee
    62486411    call far [bp-012h]                        ; ff 5e ee
    6249     jmp near 0485dh                           ; e9 55 ff
     6412    jmp near 04a20h                           ; e9 55 ff
    62506413    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6251     jne short 04934h                          ; 75 26
     6414    jne short 04af7h                          ; 75 26
    62526415    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6253     jne short 04934h                          ; 75 20
     6416    jne short 04af7h                          ; 75 20
    62546417    mov di, 007c0h                            ; bf c0 07
    62556418    mov es, di                                ; 8e c7
     
    62646427    sbb ax, strict byte 00000h                ; 83 d8 00
    62656428    test ax, ax                               ; 85 c0
    6266     jne near 0485dh                           ; 0f 85 29 ff
     6429    jne near 04a20h                           ; 0f 85 29 ff
    62676430    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    62686431    db  00fh, 094h, 0c1h
    62696432    ; sete cl                                   ; 0f 94 c1
    62706433    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6271     je short 04943h                           ; 74 02
     6434    je short 04b06h                           ; 74 02
    62726435    mov CL, strict byte 001h                  ; b1 01
    62736436    xor dx, dx                                ; 31 d2
    62746437    mov ax, di                                ; 89 f8
    6275     call 0166ch                               ; e8 22 cd
     6438    call 0166ch                               ; e8 5f cb
    62766439    mov bx, ax                                ; 89 c3
    62776440    mov dx, strict word 00002h                ; ba 02 00
    62786441    mov ax, di                                ; 89 f8
    6279     call 0166ch                               ; e8 18 cd
     6442    call 0166ch                               ; e8 55 cb
    62806443    cmp bx, ax                                ; 39 c3
    6281     je short 04969h                           ; 74 11
     6444    je short 04b2ch                           ; 74 11
    62826445    test cl, cl                               ; 84 c9
    6283     jne short 0497fh                          ; 75 23
     6446    jne short 04b42h                          ; 75 23
    62846447    mov dx, 001feh                            ; ba fe 01
    62856448    mov ax, di                                ; 89 f8
    6286     call 0166ch                               ; e8 08 cd
     6449    call 0166ch                               ; e8 45 cb
    62876450    cmp ax, 0aa55h                            ; 3d 55 aa
    6288     je short 0497fh                           ; 74 16
     6451    je short 04b42h                           ; 74 16
    62896452    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    62906453    push ax                                   ; 50
     
    62936456    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    62946457    xor cx, cx                                ; 31 c9
    6295     jmp near 04871h                           ; e9 f2 fe
     6458    jmp near 04a34h                           ; e9 f2 fe
    62966459    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    62976460    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    62986461    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6299     call 04646h                               ; e8 b8 fc
     6462    call 04809h                               ; e8 b8 fc
    63006463    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    63016464    xor dx, dx                                ; 31 d2
     
    63086471    pop bp                                    ; 5d
    63096472    retn                                      ; c3
    6310 keyboard_panic_:                             ; 0xf49a1 LB 0x13
     6473keyboard_panic_:                             ; 0xf4b64 LB 0x13
    63116474    push bp                                   ; 55
    63126475    mov bp, sp                                ; 89 e5
     
    63146477    push 00554h                               ; 68 54 05
    63156478    push strict byte 00007h                   ; 6a 07
    6316     call 01972h                               ; e8 c5 cf
     6479    call 01972h                               ; e8 02 ce
    63176480    add sp, strict byte 00006h                ; 83 c4 06
    63186481    mov sp, bp                                ; 89 ec
    63196482    pop bp                                    ; 5d
    63206483    retn                                      ; c3
    6321 _keyboard_init:                              ; 0xf49b4 LB 0x26a
     6484_keyboard_init:                              ; 0xf4b77 LB 0x26a
    63226485    push bp                                   ; 55
    63236486    mov bp, sp                                ; 89 e5
     
    63316494    ; sub ah, ah                                ; 2a e4
    63326495    test AL, strict byte 002h                 ; a8 02
    6333     je short 049d7h                           ; 74 0d
     6496    je short 04b9ah                           ; 74 0d
    63346497    dec bx                                    ; 4b
    63356498    test bx, bx                               ; 85 db
    6336     jbe short 049d7h                          ; 76 08
     6499    jbe short 04b9ah                          ; 76 08
    63376500    xor al, al                                ; 30 c0
    63386501    mov dx, 00080h                            ; ba 80 00
    63396502    out DX, AL                                ; ee
    6340     jmp short 049c0h                          ; eb e9
     6503    jmp short 04b83h                          ; eb e9
    63416504    test bx, bx                               ; 85 db
    6342     jne short 049e0h                          ; 75 05
     6505    jne short 04ba3h                          ; 75 05
    63436506    xor ax, ax                                ; 31 c0
    6344     call 049a1h                               ; e8 c1 ff
     6507    call 04b64h                               ; e8 c1 ff
    63456508    mov bx, strict word 0ffffh                ; bb ff ff
    63466509    mov dx, strict word 00064h                ; ba 64 00
     
    63496512    ; sub ah, ah                                ; 2a e4
    63506513    test AL, strict byte 001h                 ; a8 01
    6351     jne short 049fah                          ; 75 0d
     6514    jne short 04bbdh                          ; 75 0d
    63526515    dec bx                                    ; 4b
    63536516    test bx, bx                               ; 85 db
    6354     jbe short 049fah                          ; 76 08
     6517    jbe short 04bbdh                          ; 76 08
    63556518    mov AL, strict byte 001h                  ; b0 01
    63566519    mov dx, 00080h                            ; ba 80 00
    63576520    out DX, AL                                ; ee
    6358     jmp short 049e3h                          ; eb e9
     6521    jmp short 04ba6h                          ; eb e9
    63596522    test bx, bx                               ; 85 db
    6360     jne short 04a04h                          ; 75 06
     6523    jne short 04bc7h                          ; 75 06
    63616524    mov ax, strict word 00001h                ; b8 01 00
    6362     call 049a1h                               ; e8 9d ff
     6525    call 04b64h                               ; e8 9d ff
    63636526    mov dx, strict word 00060h                ; ba 60 00
    63646527    in AL, DX                                 ; ec
     
    63666529    ; sub ah, ah                                ; 2a e4
    63676530    cmp ax, strict word 00055h                ; 3d 55 00
    6368     je short 04a15h                           ; 74 06
     6531    je short 04bd8h                           ; 74 06
    63696532    mov ax, 003dfh                            ; b8 df 03
    6370     call 049a1h                               ; e8 8c ff
     6533    call 04b64h                               ; e8 8c ff
    63716534    mov AL, strict byte 0abh                  ; b0 ab
    63726535    mov dx, strict word 00064h                ; ba 64 00
     
    63786541    ; sub ah, ah                                ; 2a e4
    63796542    test AL, strict byte 002h                 ; a8 02
    6380     je short 04a35h                           ; 74 0d
     6543    je short 04bf8h                           ; 74 0d
    63816544    dec bx                                    ; 4b
    63826545    test bx, bx                               ; 85 db
    6383     jbe short 04a35h                          ; 76 08
     6546    jbe short 04bf8h                          ; 76 08
    63846547    mov AL, strict byte 010h                  ; b0 10
    63856548    mov dx, 00080h                            ; ba 80 00
    63866549    out DX, AL                                ; ee
    6387     jmp short 04a1eh                          ; eb e9
     6550    jmp short 04be1h                          ; eb e9
    63886551    test bx, bx                               ; 85 db
    6389     jne short 04a3fh                          ; 75 06
     6552    jne short 04c02h                          ; 75 06
    63906553    mov ax, strict word 0000ah                ; b8 0a 00
    6391     call 049a1h                               ; e8 62 ff
     6554    call 04b64h                               ; e8 62 ff
    63926555    mov bx, strict word 0ffffh                ; bb ff ff
    63936556    mov dx, strict word 00064h                ; ba 64 00
     
    63966559    ; sub ah, ah                                ; 2a e4
    63976560    test AL, strict byte 001h                 ; a8 01
    6398     jne short 04a59h                          ; 75 0d
     6561    jne short 04c1ch                          ; 75 0d
    63996562    dec bx                                    ; 4b
    64006563    test bx, bx                               ; 85 db
    6401     jbe short 04a59h                          ; 76 08
     6564    jbe short 04c1ch                          ; 76 08
    64026565    mov AL, strict byte 011h                  ; b0 11
    64036566    mov dx, 00080h                            ; ba 80 00
    64046567    out DX, AL                                ; ee
    6405     jmp short 04a42h                          ; eb e9
     6568    jmp short 04c05h                          ; eb e9
    64066569    test bx, bx                               ; 85 db
    6407     jne short 04a63h                          ; 75 06
     6570    jne short 04c26h                          ; 75 06
    64086571    mov ax, strict word 0000bh                ; b8 0b 00
    6409     call 049a1h                               ; e8 3e ff
     6572    call 04b64h                               ; e8 3e ff
    64106573    mov dx, strict word 00060h                ; ba 60 00
    64116574    in AL, DX                                 ; ec
     
    64136576    ; sub ah, ah                                ; 2a e4
    64146577    test ax, ax                               ; 85 c0
    6415     je short 04a73h                           ; 74 06
     6578    je short 04c36h                           ; 74 06
    64166579    mov ax, 003e0h                            ; b8 e0 03
    6417     call 049a1h                               ; e8 2e ff
     6580    call 04b64h                               ; e8 2e ff
    64186581    mov AL, strict byte 0ffh                  ; b0 ff
    64196582    mov dx, strict word 00060h                ; ba 60 00
     
    64256588    ; sub ah, ah                                ; 2a e4
    64266589    test AL, strict byte 002h                 ; a8 02
    6427     je short 04a93h                           ; 74 0d
     6590    je short 04c56h                           ; 74 0d
    64286591    dec bx                                    ; 4b
    64296592    test bx, bx                               ; 85 db
    6430     jbe short 04a93h                          ; 76 08
     6593    jbe short 04c56h                          ; 76 08
    64316594    mov AL, strict byte 020h                  ; b0 20
    64326595    mov dx, 00080h                            ; ba 80 00
    64336596    out DX, AL                                ; ee
    6434     jmp short 04a7ch                          ; eb e9
     6597    jmp short 04c3fh                          ; eb e9
    64356598    test bx, bx                               ; 85 db
    6436     jne short 04a9dh                          ; 75 06
     6599    jne short 04c60h                          ; 75 06
    64376600    mov ax, strict word 00014h                ; b8 14 00
    6438     call 049a1h                               ; e8 04 ff
     6601    call 04b64h                               ; e8 04 ff
    64396602    mov bx, strict word 0ffffh                ; bb ff ff
    64406603    mov dx, strict word 00064h                ; ba 64 00
     
    64436606    ; sub ah, ah                                ; 2a e4
    64446607    test AL, strict byte 001h                 ; a8 01
    6445     jne short 04ab7h                          ; 75 0d
     6608    jne short 04c7ah                          ; 75 0d
    64466609    dec bx                                    ; 4b
    64476610    test bx, bx                               ; 85 db
    6448     jbe short 04ab7h                          ; 76 08
     6611    jbe short 04c7ah                          ; 76 08
    64496612    mov AL, strict byte 021h                  ; b0 21
    64506613    mov dx, 00080h                            ; ba 80 00
    64516614    out DX, AL                                ; ee
    6452     jmp short 04aa0h                          ; eb e9
     6615    jmp short 04c63h                          ; eb e9
    64536616    test bx, bx                               ; 85 db
    6454     jne short 04ac1h                          ; 75 06
     6617    jne short 04c84h                          ; 75 06
    64556618    mov ax, strict word 00015h                ; b8 15 00
    6456     call 049a1h                               ; e8 e0 fe
     6619    call 04b64h                               ; e8 e0 fe
    64576620    mov dx, strict word 00060h                ; ba 60 00
    64586621    in AL, DX                                 ; ec
     
    64606623    ; sub ah, ah                                ; 2a e4
    64616624    cmp ax, 000fah                            ; 3d fa 00
    6462     je short 04ad2h                           ; 74 06
     6625    je short 04c95h                           ; 74 06
    64636626    mov ax, 003e1h                            ; b8 e1 03
    6464     call 049a1h                               ; e8 cf fe
     6627    call 04b64h                               ; e8 cf fe
    64656628    mov dx, strict word 00064h                ; ba 64 00
    64666629    in AL, DX                                 ; ec
     
    64686631    ; sub ah, ah                                ; 2a e4
    64696632    test AL, strict byte 001h                 ; a8 01
    6470     jne short 04ae4h                          ; 75 08
     6633    jne short 04ca7h                          ; 75 08
    64716634    mov AL, strict byte 031h                  ; b0 31
    64726635    mov dx, 00080h                            ; ba 80 00
    64736636    out DX, AL                                ; ee
    6474     jmp short 04ad2h                          ; eb ee
     6637    jmp short 04c95h                          ; eb ee
    64756638    mov dx, strict word 00060h                ; ba 60 00
    64766639    in AL, DX                                 ; ec
     
    64786641    ; sub ah, ah                                ; 2a e4
    64796642    cmp ax, 000aah                            ; 3d aa 00
    6480     je short 04afdh                           ; 74 0e
     6643    je short 04cc0h                           ; 74 0e
    64816644    in AL, DX                                 ; ec
    64826645    db  02ah, 0e4h
    64836646    ; sub ah, ah                                ; 2a e4
    64846647    cmp ax, 000aah                            ; 3d aa 00
    6485     je short 04afdh                           ; 74 06
     6648    je short 04cc0h                           ; 74 06
    64866649    mov ax, 003e2h                            ; b8 e2 03
    6487     call 049a1h                               ; e8 a4 fe
     6650    call 04b64h                               ; e8 a4 fe
    64886651    mov AL, strict byte 0f5h                  ; b0 f5
    64896652    mov dx, strict word 00060h                ; ba 60 00
     
    64956658    ; sub ah, ah                                ; 2a e4
    64966659    test AL, strict byte 002h                 ; a8 02
    6497     je short 04b1dh                           ; 74 0d
     6660    je short 04ce0h                           ; 74 0d
    64986661    dec bx                                    ; 4b
    64996662    test bx, bx                               ; 85 db
    6500     jbe short 04b1dh                          ; 76 08
     6663    jbe short 04ce0h                          ; 76 08
    65016664    mov AL, strict byte 040h                  ; b0 40
    65026665    mov dx, 00080h                            ; ba 80 00
    65036666    out DX, AL                                ; ee
    6504     jmp short 04b06h                          ; eb e9
     6667    jmp short 04cc9h                          ; eb e9
    65056668    test bx, bx                               ; 85 db
    6506     jne short 04b27h                          ; 75 06
     6669    jne short 04ceah                          ; 75 06
    65076670    mov ax, strict word 00028h                ; b8 28 00
    6508     call 049a1h                               ; e8 7a fe
     6671    call 04b64h                               ; e8 7a fe
    65096672    mov bx, strict word 0ffffh                ; bb ff ff
    65106673    mov dx, strict word 00064h                ; ba 64 00
     
    65136676    ; sub ah, ah                                ; 2a e4
    65146677    test AL, strict byte 001h                 ; a8 01
    6515     jne short 04b41h                          ; 75 0d
     6678    jne short 04d04h                          ; 75 0d
    65166679    dec bx                                    ; 4b
    65176680    test bx, bx                               ; 85 db
    6518     jbe short 04b41h                          ; 76 08
     6681    jbe short 04d04h                          ; 76 08
    65196682    mov AL, strict byte 041h                  ; b0 41
    65206683    mov dx, 00080h                            ; ba 80 00
    65216684    out DX, AL                                ; ee
    6522     jmp short 04b2ah                          ; eb e9
     6685    jmp short 04cedh                          ; eb e9
    65236686    test bx, bx                               ; 85 db
    6524     jne short 04b4bh                          ; 75 06
     6687    jne short 04d0eh                          ; 75 06
    65256688    mov ax, strict word 00029h                ; b8 29 00
    6526     call 049a1h                               ; e8 56 fe
     6689    call 04b64h                               ; e8 56 fe
    65276690    mov dx, strict word 00060h                ; ba 60 00
    65286691    in AL, DX                                 ; ec
     
    65306693    ; sub ah, ah                                ; 2a e4
    65316694    cmp ax, 000fah                            ; 3d fa 00
    6532     je short 04b5ch                           ; 74 06
     6695    je short 04d1fh                           ; 74 06
    65336696    mov ax, 003e3h                            ; b8 e3 03
    6534     call 049a1h                               ; e8 45 fe
     6697    call 04b64h                               ; e8 45 fe
    65356698    mov AL, strict byte 060h                  ; b0 60
    65366699    mov dx, strict word 00064h                ; ba 64 00
     
    65426705    ; sub ah, ah                                ; 2a e4
    65436706    test AL, strict byte 002h                 ; a8 02
    6544     je short 04b7ch                           ; 74 0d
     6707    je short 04d3fh                           ; 74 0d
    65456708    dec bx                                    ; 4b
    65466709    test bx, bx                               ; 85 db
    6547     jbe short 04b7ch                          ; 76 08
     6710    jbe short 04d3fh                          ; 76 08
    65486711    mov AL, strict byte 050h                  ; b0 50
    65496712    mov dx, 00080h                            ; ba 80 00
    65506713    out DX, AL                                ; ee
    6551     jmp short 04b65h                          ; eb e9
     6714    jmp short 04d28h                          ; eb e9
    65526715    test bx, bx                               ; 85 db
    6553     jne short 04b86h                          ; 75 06
     6716    jne short 04d49h                          ; 75 06
    65546717    mov ax, strict word 00032h                ; b8 32 00
    6555     call 049a1h                               ; e8 1b fe
     6718    call 04b64h                               ; e8 1b fe
    65566719    mov AL, strict byte 065h                  ; b0 65
    65576720    mov dx, strict word 00060h                ; ba 60 00
     
    65636726    ; sub ah, ah                                ; 2a e4
    65646727    test AL, strict byte 002h                 ; a8 02
    6565     je short 04ba6h                           ; 74 0d
     6728    je short 04d69h                           ; 74 0d
    65666729    dec bx                                    ; 4b
    65676730    test bx, bx                               ; 85 db
    6568     jbe short 04ba6h                          ; 76 08
     6731    jbe short 04d69h                          ; 76 08
    65696732    mov AL, strict byte 060h                  ; b0 60
    65706733    mov dx, 00080h                            ; ba 80 00
    65716734    out DX, AL                                ; ee
    6572     jmp short 04b8fh                          ; eb e9
     6735    jmp short 04d52h                          ; eb e9
    65736736    test bx, bx                               ; 85 db
    6574     jne short 04bb0h                          ; 75 06
     6737    jne short 04d73h                          ; 75 06
    65756738    mov ax, strict word 0003ch                ; b8 3c 00
    6576     call 049a1h                               ; e8 f1 fd
     6739    call 04b64h                               ; e8 f1 fd
    65776740    mov AL, strict byte 0f4h                  ; b0 f4
    65786741    mov dx, strict word 00060h                ; ba 60 00
     
    65846747    ; sub ah, ah                                ; 2a e4
    65856748    test AL, strict byte 002h                 ; a8 02
    6586     je short 04bd0h                           ; 74 0d
     6749    je short 04d93h                           ; 74 0d
    65876750    dec bx                                    ; 4b
    65886751    test bx, bx                               ; 85 db
    6589     jbe short 04bd0h                          ; 76 08
     6752    jbe short 04d93h                          ; 76 08
    65906753    mov AL, strict byte 070h                  ; b0 70
    65916754    mov dx, 00080h                            ; ba 80 00
    65926755    out DX, AL                                ; ee
    6593     jmp short 04bb9h                          ; eb e9
     6756    jmp short 04d7ch                          ; eb e9
    65946757    test bx, bx                               ; 85 db
    6595     jne short 04bdah                          ; 75 06
     6758    jne short 04d9dh                          ; 75 06
    65966759    mov ax, strict word 00046h                ; b8 46 00
    6597     call 049a1h                               ; e8 c7 fd
     6760    call 04b64h                               ; e8 c7 fd
    65986761    mov bx, strict word 0ffffh                ; bb ff ff
    65996762    mov dx, strict word 00064h                ; ba 64 00
     
    66026765    ; sub ah, ah                                ; 2a e4
    66036766    test AL, strict byte 001h                 ; a8 01
    6604     jne short 04bf4h                          ; 75 0d
     6767    jne short 04db7h                          ; 75 0d
    66056768    dec bx                                    ; 4b
    66066769    test bx, bx                               ; 85 db
    6607     jbe short 04bf4h                          ; 76 08
     6770    jbe short 04db7h                          ; 76 08
    66086771    mov AL, strict byte 071h                  ; b0 71
    66096772    mov dx, 00080h                            ; ba 80 00
    66106773    out DX, AL                                ; ee
    6611     jmp short 04bddh                          ; eb e9
     6774    jmp short 04da0h                          ; eb e9
    66126775    test bx, bx                               ; 85 db
    6613     jne short 04bfeh                          ; 75 06
     6776    jne short 04dc1h                          ; 75 06
    66146777    mov ax, strict word 00046h                ; b8 46 00
    6615     call 049a1h                               ; e8 a3 fd
     6778    call 04b64h                               ; e8 a3 fd
    66166779    mov dx, strict word 00060h                ; ba 60 00
    66176780    in AL, DX                                 ; ec
     
    66196782    ; sub ah, ah                                ; 2a e4
    66206783    cmp ax, 000fah                            ; 3d fa 00
    6621     je short 04c0fh                           ; 74 06
     6784    je short 04dd2h                           ; 74 06
    66226785    mov ax, 003e4h                            ; b8 e4 03
    6623     call 049a1h                               ; e8 92 fd
     6786    call 04b64h                               ; e8 92 fd
    66246787    mov AL, strict byte 0a8h                  ; b0 a8
    66256788    mov dx, strict word 00064h                ; ba 64 00
    66266789    out DX, AL                                ; ee
    66276790    xor ax, ax                                ; 31 c0
    6628     call 05ef3h                               ; e8 d9 12
     6791    call 060b6h                               ; e8 d9 12
    66296792    mov sp, bp                                ; 89 ec
    66306793    pop bp                                    ; 5d
    66316794    retn                                      ; c3
    6632 enqueue_key_:                                ; 0xf4c1e LB 0x93
     6795enqueue_key_:                                ; 0xf4de1 LB 0x93
    66336796    push bp                                   ; 55
    66346797    mov bp, sp                                ; 89 e5
     
    66426805    mov dx, strict word 0001ah                ; ba 1a 00
    66436806    mov ax, strict word 00040h                ; b8 40 00
    6644     call 0166ch                               ; e8 38 ca
     6807    call 0166ch                               ; e8 75 c8
    66456808    mov di, ax                                ; 89 c7
    66466809    mov dx, strict word 0001ch                ; ba 1c 00
    66476810    mov ax, strict word 00040h                ; b8 40 00
    6648     call 0166ch                               ; e8 2d ca
     6811    call 0166ch                               ; e8 6a c8
    66496812    mov si, ax                                ; 89 c6
    66506813    lea cx, [si+002h]                         ; 8d 4c 02
    66516814    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6652     jc short 04c4ch                           ; 72 03
     6815    jc short 04e0fh                           ; 72 03
    66536816    mov cx, strict word 0001eh                ; b9 1e 00
    66546817    cmp cx, di                                ; 39 f9
    6655     jne short 04c54h                          ; 75 04
     6818    jne short 04e17h                          ; 75 04
    66566819    xor ax, ax                                ; 31 c0
    6657     jmp short 04c79h                          ; eb 25
     6820    jmp short 04e3ch                          ; eb 25
    66586821    xor bh, bh                                ; 30 ff
    66596822    mov dx, si                                ; 89 f2
    66606823    mov ax, strict word 00040h                ; b8 40 00
    6661     call 0165eh                               ; e8 00 ca
     6824    call 0165eh                               ; e8 3d c8
    66626825    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    66636826    lea dx, [si+001h]                         ; 8d 54 01
    66646827    mov ax, strict word 00040h                ; b8 40 00
    6665     call 0165eh                               ; e8 f3 c9
     6828    call 0165eh                               ; e8 30 c8
    66666829    mov bx, cx                                ; 89 cb
    66676830    mov dx, strict word 0001ch                ; ba 1c 00
    66686831    mov ax, strict word 00040h                ; b8 40 00
    6669     call 0167ah                               ; e8 04 ca
     6832    call 0167ah                               ; e8 41 c8
    66706833    mov ax, strict word 00001h                ; b8 01 00
    66716834    lea sp, [bp-008h]                         ; 8d 66 f8
     
    66856848    cmp bh, byte [bx+si]                      ; 3a 38
    66866849    sub bl, byte [ss:di]                      ; 36 2a 1d
    6687     sbb AL, strict byte 04fh                  ; 1c 4f
    6688     db  082h, 04dh, 04ah, 04dh
    6689     ; or byte [di+04ah], 04dh                   ; 82 4d 4a 4d
    6690     dec dx                                    ; 4a
    6691     dec bp                                    ; 4d
    6692     adc byte [bp+020h], cl                    ; 10 4e 20
    6693     dec bp                                    ; 4d
    6694     mov cs, [bp-020h]                         ; 8e 4e e0
     6850    fist word [bx+si+045h]                    ; df 50 45
     6851    dec di                                    ; 4f
     6852    or ax, 00d4fh                             ; 0d 4f 0d
     6853    dec di                                    ; 4f
     6854    ror word [bx-01dh], CL                    ; d3 4f e3
    66956855    dec si                                    ; 4e
    6696     add cl, byte [bx-037h]                    ; 02 4f c9
    6697     dec bp                                    ; 4d
    6698     dec dx                                    ; 4a
    6699     dec bp                                    ; 4d
    6700     dec dx                                    ; 4a
    6701     dec bp                                    ; 4d
     6856    push cx                                   ; 51
     6857    push ax                                   ; 50
     6858    mov word [0c550h], ax                     ; a3 50 c5
     6859    push ax                                   ; 50
     6860    mov [bx+00dh], cs                         ; 8c 4f 0d
    67026861    dec di                                    ; 4f
    6703     dec si                                    ; 4e
    6704     cmp AL, strict byte 04dh                  ; 3c 4d
    6705     ror word [bp-005h], 04eh                  ; c1 4e fb 4e
    6706 _int09_function:                             ; 0xf4cb1 LB 0x3c7
     6862    or ax, 0124fh                             ; 0d 4f 12
     6863    push ax                                   ; 50
     6864    dec word [bp-07ch]                        ; ff 4e 84
     6865    push ax                                   ; 50
     6866    db  0beh
     6867    push ax                                   ; 50
     6868_int09_function:                             ; 0xf4e74 LB 0x3c7
    67076869    push bp                                   ; 55
    67086870    mov bp, sp                                ; 89 e5
     
    67126874    mov byte [bp-008h], al                    ; 88 46 f8
    67136875    test al, al                               ; 84 c0
    6714     jne short 04cdbh                          ; 75 19
    6715     mov bx, 00da2h                            ; bb a2 0d
     6876    jne short 04e9eh                          ; 75 19
     6877    mov bx, 00da8h                            ; bb a8 0d
    67166878    mov cx, ds                                ; 8c d9
    67176879    mov ax, strict word 00004h                ; b8 04 00
    6718     call 01931h                               ; e8 64 cc
     6880    call 01931h                               ; e8 a1 ca
    67196881    push 00567h                               ; 68 67 05
    67206882    push strict byte 00004h                   ; 6a 04
    6721     call 01972h                               ; e8 9d cc
     6883    call 01972h                               ; e8 da ca
    67226884    add sp, strict byte 00004h                ; 83 c4 04
    6723     jmp near 05072h                           ; e9 97 03
     6885    jmp near 05235h                           ; e9 97 03
    67246886    mov dx, strict word 00017h                ; ba 17 00
    67256887    mov ax, strict word 00040h                ; b8 40 00
    6726     call 01650h                               ; e8 6c c9
     6888    call 01650h                               ; e8 a9 c7
    67276889    mov byte [bp-010h], al                    ; 88 46 f0
    67286890    mov byte [bp-00ah], al                    ; 88 46 f6
    67296891    mov dx, strict word 00018h                ; ba 18 00
    67306892    mov ax, strict word 00040h                ; b8 40 00
    6731     call 01650h                               ; e8 5d c9
     6893    call 01650h                               ; e8 9a c7
    67326894    mov byte [bp-00eh], al                    ; 88 46 f2
    67336895    mov byte [bp-004h], al                    ; 88 46 fc
    67346896    mov dx, 00096h                            ; ba 96 00
    67356897    mov ax, strict word 00040h                ; b8 40 00
    6736     call 01650h                               ; e8 4e c9
     6898    call 01650h                               ; e8 8b c7
    67376899    mov byte [bp-006h], al                    ; 88 46 fa
    67386900    mov byte [bp-00ch], al                    ; 88 46 f4
     
    67416903    pop ES                                    ; 07
    67426904    mov cx, strict word 00010h                ; b9 10 00
    6743     mov di, 04c82h                            ; bf 82 4c
     6905    mov di, 04e45h                            ; bf 45 4e
    67446906    repne scasb                               ; f2 ae
    67456907    sal cx, 1                                 ; d1 e1
    67466908    mov di, cx                                ; 89 cf
    6747     mov ax, word [cs:di+04c91h]               ; 2e 8b 85 91 4c
     6909    mov ax, word [cs:di+04e54h]               ; 2e 8b 85 54 4e
    67486910    jmp ax                                    ; ff e0
    67496911    xor byte [bp-00ah], 040h                  ; 80 76 f6 40
     
    67516913    mov dx, strict word 00017h                ; ba 17 00
    67526914    mov ax, strict word 00040h                ; b8 40 00
    6753     call 0165eh                               ; e8 2d c9
     6915    call 0165eh                               ; e8 6a c7
    67546916    or byte [bp-004h], 040h                   ; 80 4e fc 40
    67556917    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    6756     jmp near 04ed4h                           ; e9 98 01
     6918    jmp near 05097h                           ; e9 98 01
    67576919    mov al, byte [bp-00eh]                    ; 8a 46 f2
    67586920    and AL, strict byte 0bfh                  ; 24 bf
    67596921    mov byte [bp-004h], al                    ; 88 46 fc
    67606922    movzx bx, al                              ; 0f b6 d8
    6761     jmp near 04ed4h                           ; e9 8a 01
     6923    jmp near 05097h                           ; e9 8a 01
    67626924    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    6763     jne near 05054h                           ; 0f 85 02 03
     6925    jne near 05217h                           ; 0f 85 02 03
    67646926    mov al, byte [bp-008h]                    ; 8a 46 f8
    67656927    and AL, strict byte 07fh                  ; 24 7f
     
    67706932    inc dx                                    ; 42
    67716933    test byte [bp-008h], 080h                 ; f6 46 f8 80
    6772     je short 04d6fh                           ; 74 09
     6934    je short 04f32h                           ; 74 09
    67736935    mov al, dl                                ; 88 d0
    67746936    not al                                    ; f6 d0
    67756937    and byte [bp-00ah], al                    ; 20 46 f6
    6776     jmp short 04d72h                          ; eb 03
     6938    jmp short 04f35h                          ; eb 03
    67776939    or byte [bp-00ah], dl                     ; 08 56 f6
    67786940    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    67796941    mov dx, strict word 00017h                ; ba 17 00
    67806942    mov ax, strict word 00040h                ; b8 40 00
    6781     call 0165eh                               ; e8 df c8
    6782     jmp near 05054h                           ; e9 d2 02
     6943    call 0165eh                               ; e8 1c c7
     6944    jmp near 05217h                           ; e9 d2 02
    67836945    test byte [bp-006h], 001h                 ; f6 46 fa 01
    6784     jne near 05054h                           ; 0f 85 ca 02
     6946    jne near 05217h                           ; 0f 85 ca 02
    67856947    mov al, byte [bp-010h]                    ; 8a 46 f0
    67866948    or AL, strict byte 004h                   ; 0c 04
     
    67896951    mov dx, strict word 00017h                ; ba 17 00
    67906952    mov ax, strict word 00040h                ; b8 40 00
    6791     call 0165eh                               ; e8 c0 c8
     6953    call 0165eh                               ; e8 fd c6
    67926954    mov al, byte [bp-006h]                    ; 8a 46 fa
    67936955    test AL, strict byte 002h                 ; a8 02
    6794     je short 04db2h                           ; 74 0d
     6956    je short 04f75h                           ; 74 0d
    67956957    or AL, strict byte 004h                   ; 0c 04
    67966958    mov byte [bp-00ch], al                    ; 88 46 f4
    67976959    movzx bx, al                              ; 0f b6 d8
    67986960    mov dx, 00096h                            ; ba 96 00
    6799     jmp short 04dc0h                          ; eb 0e
     6961    jmp short 04f83h                          ; eb 0e
    68006962    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68016963    or AL, strict byte 001h                   ; 0c 01
     
    68046966    mov dx, strict word 00018h                ; ba 18 00
    68056967    mov ax, strict word 00040h                ; b8 40 00
    6806     call 0165eh                               ; e8 98 c8
    6807     jmp near 05054h                           ; e9 8b 02
     6968    call 0165eh                               ; e8 d5 c6
     6969    jmp near 05217h                           ; e9 8b 02
    68086970    test byte [bp-006h], 001h                 ; f6 46 fa 01
    6809     jne near 05054h                           ; 0f 85 83 02
     6971    jne near 05217h                           ; 0f 85 83 02
    68106972    mov al, byte [bp-010h]                    ; 8a 46 f0
    68116973    and AL, strict byte 0fbh                  ; 24 fb
     
    68146976    mov dx, strict word 00017h                ; ba 17 00
    68156977    mov ax, strict word 00040h                ; b8 40 00
    6816     call 0165eh                               ; e8 79 c8
     6978    call 0165eh                               ; e8 b6 c6
    68176979    mov al, byte [bp-006h]                    ; 8a 46 fa
    68186980    test AL, strict byte 002h                 ; a8 02
    6819     je short 04df9h                           ; 74 0d
     6981    je short 04fbch                           ; 74 0d
    68206982    and AL, strict byte 0fbh                  ; 24 fb
    68216983    mov byte [bp-00ch], al                    ; 88 46 f4
    68226984    movzx bx, al                              ; 0f b6 d8
    68236985    mov dx, 00096h                            ; ba 96 00
    6824     jmp short 04e07h                          ; eb 0e
     6986    jmp short 04fcah                          ; eb 0e
    68256987    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68266988    and AL, strict byte 0feh                  ; 24 fe
     
    68296991    mov dx, strict word 00018h                ; ba 18 00
    68306992    mov ax, strict word 00040h                ; b8 40 00
    6831     call 0165eh                               ; e8 51 c8
    6832     jmp near 05054h                           ; e9 44 02
     6993    call 0165eh                               ; e8 8e c6
     6994    jmp near 05217h                           ; e9 44 02
    68336995    mov al, byte [bp-010h]                    ; 8a 46 f0
    68346996    or AL, strict byte 008h                   ; 0c 08
     
    68376999    mov dx, strict word 00017h                ; ba 17 00
    68387000    mov ax, strict word 00040h                ; b8 40 00
    6839     call 0165eh                               ; e8 3a c8
     7001    call 0165eh                               ; e8 77 c6
    68407002    mov al, byte [bp-006h]                    ; 8a 46 fa
    68417003    test AL, strict byte 002h                 ; a8 02
    6842     je short 04e38h                           ; 74 0d
     7004    je short 04ffbh                           ; 74 0d
    68437005    or AL, strict byte 008h                   ; 0c 08
    68447006    mov byte [bp-00ch], al                    ; 88 46 f4
    68457007    movzx bx, al                              ; 0f b6 d8
    68467008    mov dx, 00096h                            ; ba 96 00
    6847     jmp short 04e46h                          ; eb 0e
     7009    jmp short 05009h                          ; eb 0e
    68487010    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68497011    or AL, strict byte 002h                   ; 0c 02
     
    68527014    mov dx, strict word 00018h                ; ba 18 00
    68537015    mov ax, strict word 00040h                ; b8 40 00
    6854     call 0165eh                               ; e8 12 c8
    6855     jmp near 05054h                           ; e9 05 02
     7016    call 0165eh                               ; e8 4f c6
     7017    jmp near 05217h                           ; e9 05 02
    68567018    mov al, byte [bp-010h]                    ; 8a 46 f0
    68577019    and AL, strict byte 0f7h                  ; 24 f7
     
    68607022    mov dx, strict word 00017h                ; ba 17 00
    68617023    mov ax, strict word 00040h                ; b8 40 00
    6862     call 0165eh                               ; e8 fb c7
     7024    call 0165eh                               ; e8 38 c6
    68637025    mov al, byte [bp-006h]                    ; 8a 46 fa
    68647026    test AL, strict byte 002h                 ; a8 02
    6865     je short 04e77h                           ; 74 0d
     7027    je short 0503ah                           ; 74 0d
    68667028    and AL, strict byte 0f7h                  ; 24 f7
    68677029    mov byte [bp-00ch], al                    ; 88 46 f4
    68687030    movzx bx, al                              ; 0f b6 d8
    68697031    mov dx, 00096h                            ; ba 96 00
    6870     jmp short 04e85h                          ; eb 0e
     7032    jmp short 05048h                          ; eb 0e
    68717033    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68727034    and AL, strict byte 0fdh                  ; 24 fd
     
    68757037    mov dx, strict word 00018h                ; ba 18 00
    68767038    mov ax, strict word 00040h                ; b8 40 00
    6877     call 0165eh                               ; e8 d3 c7
    6878     jmp near 05054h                           ; e9 c6 01
     7039    call 0165eh                               ; e8 10 c6
     7040    jmp near 05217h                           ; e9 c6 01
    68797041    test byte [bp-006h], 003h                 ; f6 46 fa 03
    6880     jne near 05054h                           ; 0f 85 be 01
     7042    jne near 05217h                           ; 0f 85 be 01
    68817043    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68827044    or AL, strict byte 020h                   ; 0c 20
     
    68857047    mov dx, strict word 00018h                ; ba 18 00
    68867048    mov ax, strict word 00040h                ; b8 40 00
    6887     call 0165eh                               ; e8 b4 c7
     7049    call 0165eh                               ; e8 f1 c5
    68887050    mov al, byte [bp-010h]                    ; 8a 46 f0
    68897051    xor AL, strict byte 020h                  ; 34 20
     
    68927054    mov dx, strict word 00017h                ; ba 17 00
    68937055    mov ax, strict word 00040h                ; b8 40 00
    6894     call 0165eh                               ; e8 a0 c7
    6895     jmp near 05054h                           ; e9 93 01
     7056    call 0165eh                               ; e8 dd c5
     7057    jmp near 05217h                           ; e9 93 01
    68967058    test byte [bp-006h], 003h                 ; f6 46 fa 03
    6897     jne near 05054h                           ; 0f 85 8b 01
     7059    jne near 05217h                           ; 0f 85 8b 01
    68987060    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68997061    and AL, strict byte 0dfh                  ; 24 df
     
    69027064    mov dx, strict word 00018h                ; ba 18 00
    69037065    mov ax, strict word 00040h                ; b8 40 00
    6904     call 0165eh                               ; e8 81 c7
    6905     jmp near 05054h                           ; e9 74 01
     7066    call 0165eh                               ; e8 be c5
     7067    jmp near 05217h                           ; e9 74 01
    69067068    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69077069    or AL, strict byte 010h                   ; 0c 10
     
    69107072    mov dx, strict word 00018h                ; ba 18 00
    69117073    mov ax, strict word 00040h                ; b8 40 00
    6912     call 0165eh                               ; e8 6a c7
     7074    call 0165eh                               ; e8 a7 c5
    69137075    mov al, byte [bp-010h]                    ; 8a 46 f0
    69147076    xor AL, strict byte 010h                  ; 34 10
    6915     jmp short 04eafh                          ; eb b4
     7077    jmp short 05072h                          ; eb b4
    69167078    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69177079    and AL, strict byte 0efh                  ; 24 ef
    6918     jmp short 04eceh                          ; eb cc
     7080    jmp short 05091h                          ; eb cc
    69197081    mov al, byte [bp-010h]                    ; 8a 46 f0
    69207082    and AL, strict byte 00ch                  ; 24 0c
    69217083    cmp AL, strict byte 00ch                  ; 3c 0c
    6922     jne short 04f1ch                          ; 75 11
     7084    jne short 050dfh                          ; 75 11
    69237085    mov bx, 01234h                            ; bb 34 12
    69247086    mov dx, strict word 00072h                ; ba 72 00
    69257087    mov ax, strict word 00040h                ; b8 40 00
    6926     call 0167ah                               ; e8 63 c7
     7088    call 0167ah                               ; e8 a0 c5
    69277089    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    69287090    mov al, byte [bp-008h]                    ; 8a 46 f8
    69297091    test AL, strict byte 080h                 ; a8 80
    6930     je short 04f5ah                           ; 74 37
     7092    je short 0511dh                           ; 74 37
    69317093    cmp AL, strict byte 0fah                  ; 3c fa
    6932     jne short 04f37h                          ; 75 10
     7094    jne short 050fah                          ; 75 10
    69337095    mov dx, 00097h                            ; ba 97 00
    69347096    mov ax, strict word 00040h                ; b8 40 00
    6935     call 01650h                               ; e8 20 c7
     7097    call 01650h                               ; e8 5d c5
    69367098    mov dl, al                                ; 88 c2
    69377099    or dl, 010h                               ; 80 ca 10
    6938     jmp short 04f4bh                          ; eb 14
     7100    jmp short 0510eh                          ; eb 14
    69397101    cmp AL, strict byte 0feh                  ; 3c fe
    6940     jne near 05054h                           ; 0f 85 17 01
     7102    jne near 05217h                           ; 0f 85 17 01
    69417103    mov dx, 00097h                            ; ba 97 00
    69427104    mov ax, strict word 00040h                ; b8 40 00
    6943     call 01650h                               ; e8 0a c7
     7105    call 01650h                               ; e8 47 c5
    69447106    mov dl, al                                ; 88 c2
    69457107    or dl, 020h                               ; 80 ca 20
     
    69477109    mov dx, 00097h                            ; ba 97 00
    69487110    mov ax, strict word 00040h                ; b8 40 00
    6949     call 0165eh                               ; e8 07 c7
    6950     jmp near 05054h                           ; e9 fa 00
     7111    call 0165eh                               ; e8 44 c5
     7112    jmp near 05217h                           ; e9 fa 00
    69517113    cmp byte [bp-008h], 058h                  ; 80 7e f8 58
    6952     jbe short 04f7eh                          ; 76 1e
    6953     mov bx, 00da2h                            ; bb a2 0d
     7114    jbe short 05141h                          ; 76 1e
     7115    mov bx, 00da8h                            ; bb a8 0d
    69547116    mov cx, ds                                ; 8c d9
    69557117    mov ax, strict word 00004h                ; b8 04 00
    6956     call 01931h                               ; e8 c6 c9
     7118    call 01931h                               ; e8 03 c8
    69577119    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    69587120    push ax                                   ; 50
    69597121    push 00581h                               ; 68 81 05
    69607122    push strict byte 00004h                   ; 6a 04
    6961     call 01972h                               ; e8 fa c9
     7123    call 01972h                               ; e8 37 c8
    69627124    add sp, strict byte 00006h                ; 83 c4 06
    6963     jmp near 05072h                           ; e9 f4 00
     7125    jmp near 05235h                           ; e9 f4 00
    69647126    mov al, byte [bp-00ah]                    ; 8a 46 f6
    69657127    test AL, strict byte 008h                 ; a8 08
    6966     je short 04f97h                           ; 74 12
     7128    je short 0515ah                           ; 74 12
    69677129    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    69687130    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    6969     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    6970     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    6971     jmp near 05025h                           ; e9 8e 00
     7131    mov dl, byte [bx+00dfch]                  ; 8a 97 fc 0d
     7132    mov ax, word [bx+00dfch]                  ; 8b 87 fc 0d
     7133    jmp near 051e8h                           ; e9 8e 00
    69727134    test AL, strict byte 004h                 ; a8 04
    6973     je short 04fadh                           ; 74 12
     7135    je short 05170h                           ; 74 12
    69747136    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    69757137    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    6976     mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    6977     mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    6978     jmp near 05025h                           ; e9 78 00
     7138    mov dl, byte [bx+00dfah]                  ; 8a 97 fa 0d
     7139    mov ax, word [bx+00dfah]                  ; 8b 87 fa 0d
     7140    jmp near 051e8h                           ; e9 78 00
    69797141    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69807142    and AL, strict byte 002h                  ; 24 02
    69817143    test al, al                               ; 84 c0
    6982     jbe short 04fcbh                          ; 76 15
     7144    jbe short 0518eh                          ; 76 15
    69837145    mov al, byte [bp-008h]                    ; 8a 46 f8
    69847146    cmp AL, strict byte 047h                  ; 3c 47
    6985     jc short 04fcbh                           ; 72 0e
     7147    jc short 0518eh                           ; 72 0e
    69867148    cmp AL, strict byte 053h                  ; 3c 53
    6987     jnbe short 04fcbh                         ; 77 0a
     7149    jnbe short 0518eh                         ; 77 0a
    69887150    mov DL, strict byte 0e0h                  ; b2 e0
    69897151    movzx bx, al                              ; 0f b6 d8
    69907152    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    6991     jmp short 05021h                          ; eb 56
     7153    jmp short 051e4h                          ; eb 56
    69927154    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    6993     je short 04fffh                           ; 74 2e
     7155    je short 051c2h                           ; 74 2e
    69947156    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    69957157    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    6996     movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
     7158    movzx ax, byte [bx+00dfeh]                ; 0f b6 87 fe 0d
    69977159    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    69987160    test dx, ax                               ; 85 c2
    6999     je short 04fefh                           ; 74 0a
    7000     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    7001     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7002     jmp short 04ff7h                          ; eb 08
    7003     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7004     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7161    je short 051b2h                           ; 74 0a
     7162    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7163    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
     7164    jmp short 051bah                          ; eb 08
     7165    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
     7166    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
    70057167    shr ax, 008h                              ; c1 e8 08
    70067168    mov byte [bp-008h], al                    ; 88 46 f8
    7007     jmp short 0502bh                          ; eb 2c
     7169    jmp short 051eeh                          ; eb 2c
    70087170    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    70097171    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7010     movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
     7172    movzx ax, byte [bx+00dfeh]                ; 0f b6 87 fe 0d
    70117173    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    70127174    test dx, ax                               ; 85 c2
    7013     je short 0501dh                           ; 74 0a
    7014     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7015     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7016     jmp short 05025h                          ; eb 08
    7017     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    7018     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     7175    je short 051e0h                           ; 74 0a
     7176    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
     7177    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
     7178    jmp short 051e8h                          ; eb 08
     7179    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7180    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    70197181    shr ax, 008h                              ; c1 e8 08
    70207182    mov byte [bp-008h], al                    ; 88 46 f8
    70217183    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7022     jne short 0504bh                          ; 75 1a
     7184    jne short 0520eh                          ; 75 1a
    70237185    test dl, dl                               ; 84 d2
    7024     jne short 0504bh                          ; 75 16
    7025     mov bx, 00da2h                            ; bb a2 0d
     7186    jne short 0520eh                          ; 75 16
     7187    mov bx, 00da8h                            ; bb a8 0d
    70267188    mov cx, ds                                ; 8c d9
    70277189    mov ax, strict word 00004h                ; b8 04 00
    7028     call 01931h                               ; e8 f1 c8
     7190    call 01931h                               ; e8 2e c7
    70297191    push 005b8h                               ; 68 b8 05
    70307192    push strict byte 00004h                   ; 6a 04
    7031     call 01972h                               ; e8 2a c9
     7193    call 01972h                               ; e8 67 c7
    70327194    add sp, strict byte 00004h                ; 83 c4 04
    70337195    xor dh, dh                                ; 30 f6
    70347196    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    7035     call 04c1eh                               ; e8 ca fb
     7197    call 04de1h                               ; e8 ca fb
    70367198    mov al, byte [bp-008h]                    ; 8a 46 f8
    70377199    and AL, strict byte 07fh                  ; 24 7f
    70387200    cmp AL, strict byte 01dh                  ; 3c 1d
    7039     je short 05061h                           ; 74 04
     7201    je short 05224h                           ; 74 04
    70407202    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    70417203    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    70437205    mov dx, 00096h                            ; ba 96 00
    70447206    mov ax, strict word 00040h                ; b8 40 00
    7045     call 0165eh                               ; e8 ec c5
     7207    call 0165eh                               ; e8 29 c4
    70467208    lea sp, [bp-002h]                         ; 8d 66 fe
    70477209    pop di                                    ; 5f
    70487210    pop bp                                    ; 5d
    70497211    retn                                      ; c3
    7050 dequeue_key_:                                ; 0xf5078 LB 0x94
     7212dequeue_key_:                                ; 0xf523b LB 0x94
    70517213    push bp                                   ; 55
    70527214    mov bp, sp                                ; 89 e5
     
    70617223    mov dx, strict word 0001ah                ; ba 1a 00
    70627224    mov ax, strict word 00040h                ; b8 40 00
    7063     call 0166ch                               ; e8 da c5
     7225    call 0166ch                               ; e8 17 c4
    70647226    mov bx, ax                                ; 89 c3
    70657227    mov dx, strict word 0001ch                ; ba 1c 00
    70667228    mov ax, strict word 00040h                ; b8 40 00
    7067     call 0166ch                               ; e8 cf c5
     7229    call 0166ch                               ; e8 0c c4
    70687230    cmp bx, ax                                ; 39 c3
    7069     je short 050deh                           ; 74 3d
     7231    je short 052a1h                           ; 74 3d
    70707232    mov dx, bx                                ; 89 da
    70717233    mov ax, strict word 00040h                ; b8 40 00
    7072     call 01650h                               ; e8 a7 c5
     7234    call 01650h                               ; e8 e4 c3
    70737235    mov cl, al                                ; 88 c1
    70747236    lea dx, [bx+001h]                         ; 8d 57 01
    70757237    mov ax, strict word 00040h                ; b8 40 00
    7076     call 01650h                               ; e8 9c c5
     7238    call 01650h                               ; e8 d9 c3
    70777239    mov es, [bp-008h]                         ; 8e 46 f8
    70787240    mov byte [es:si], cl                      ; 26 88 0c
     
    70807242    mov byte [es:di], al                      ; 26 88 05
    70817243    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7082     je short 050d9h                           ; 74 13
     7244    je short 0529ch                           ; 74 13
    70837245    inc bx                                    ; 43
    70847246    inc bx                                    ; 43
    70857247    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7086     jc short 050d0h                           ; 72 03
     7248    jc short 05293h                           ; 72 03
    70877249    mov bx, strict word 0001eh                ; bb 1e 00
    70887250    mov dx, strict word 0001ah                ; ba 1a 00
    70897251    mov ax, strict word 00040h                ; b8 40 00
    7090     call 0167ah                               ; e8 a1 c5
     7252    call 0167ah                               ; e8 de c3
    70917253    mov ax, strict word 00001h                ; b8 01 00
    7092     jmp short 050e0h                          ; eb 02
     7254    jmp short 052a3h                          ; eb 02
    70937255    xor ax, ax                                ; 31 c0
    70947256    lea sp, [bp-004h]                         ; 8d 66 fc
     
    71017263    or cl, byte [bx+di]                       ; 0a 09
    71027264    add ax, 00102h                            ; 05 02 01
    7103     add byte [bp+si-03fadh], ch               ; 00 aa 53 c0
    7104     push cx                                   ; 51
    7105     pop ES                                    ; 07
    7106     push dx                                   ; 52
    7107     push bx                                   ; 53
    7108     push dx                                   ; 52
    7109     arpl word [bp+si-073h], dx                ; 63 52 8d
    7110     push dx                                   ; 52
    7111     xchg si, ax                               ; 96
    7112     push dx                                   ; 52
    7113     pop ES                                    ; 07
    7114     push bx                                   ; 53
    7115     cmp byte [bp+di+065h], dl                 ; 38 53 65
    7116     push bx                                   ; 53
    7117     lahf                                      ; 9f
    7118     push bx                                   ; 53
    7119     in ax, DX                                 ; ed
    7120     push bx                                   ; 53
    7121 _int16_function:                             ; 0xf510c LB 0x2e7
     7265    add byte [di+055h], ch                    ; 00 6d 55
     7266    adc word [bp+di-036h], strict byte 00053h ; 83 53 ca 53
     7267    push SS                                   ; 16
     7268    push sp                                   ; 54
     7269    db  026h, 054h
     7270    ; es push sp                                ; 26 54
     7271    push ax                                   ; 50
     7272    push sp                                   ; 54
     7273    pop cx                                    ; 59
     7274    push sp                                   ; 54
     7275    retf 0fb54h                               ; ca 54 fb
     7276    push sp                                   ; 54
     7277    sub byte [di+062h], dl                    ; 28 55 62
     7278    push bp                                   ; 55
     7279    mov AL, strict byte 055h                  ; b0 55
     7280_int16_function:                             ; 0xf52cf LB 0x2e7
    71227281    push bp                                   ; 55
    71237282    mov bp, sp                                ; 89 e5
     
    71267285    mov dx, strict word 00017h                ; ba 17 00
    71277286    mov ax, strict word 00040h                ; b8 40 00
    7128     call 01650h                               ; e8 34 c5
     7287    call 01650h                               ; e8 71 c3
    71297288    mov cl, al                                ; 88 c1
    71307289    mov bh, al                                ; 88 c7
    71317290    mov dx, 00097h                            ; ba 97 00
    71327291    mov ax, strict word 00040h                ; b8 40 00
    7133     call 01650h                               ; e8 27 c5
     7292    call 01650h                               ; e8 64 c3
    71347293    mov bl, al                                ; 88 c3
    71357294    movzx dx, cl                              ; 0f b6 d1
     
    71407299    xor al, dl                                ; 30 d0
    71417300    test ax, ax                               ; 85 c0
    7142     je short 0519eh                           ; 74 60
     7301    je short 05361h                           ; 74 60
    71437302    cli                                       ; fa
    71447303    mov AL, strict byte 0edh                  ; b0 ed
     
    71507309    ; sub ah, ah                                ; 2a e4
    71517310    test AL, strict byte 001h                 ; a8 01
    7152     jne short 05157h                          ; 75 08
     7311    jne short 0531ah                          ; 75 08
    71537312    mov AL, strict byte 021h                  ; b0 21
    71547313    mov dx, 00080h                            ; ba 80 00
    71557314    out DX, AL                                ; ee
    7156     jmp short 05145h                          ; eb ee
     7315    jmp short 05308h                          ; eb ee
    71577316    mov dx, strict word 00060h                ; ba 60 00
    71587317    in AL, DX                                 ; ec
     
    71607319    ; sub ah, ah                                ; 2a e4
    71617320    cmp ax, 000fah                            ; 3d fa 00
    7162     jne short 0519dh                          ; 75 3b
     7321    jne short 05360h                          ; 75 3b
    71637322    and bl, 0c8h                              ; 80 e3 c8
    71647323    movzx ax, bh                              ; 0f b6 c7
     
    71767335    ; sub ah, ah                                ; 2a e4
    71777336    test AL, strict byte 001h                 ; a8 01
    7178     jne short 0518ch                          ; 75 08
     7337    jne short 0534fh                          ; 75 08
    71797338    mov AL, strict byte 021h                  ; b0 21
    71807339    mov dx, 00080h                            ; ba 80 00
    71817340    out DX, AL                                ; ee
    7182     jmp short 0517ah                          ; eb ee
     7341    jmp short 0533dh                          ; eb ee
    71837342    mov dx, strict word 00060h                ; ba 60 00
    71847343    in AL, DX                                 ; ec
     
    71887347    mov dx, 00097h                            ; ba 97 00
    71897348    mov ax, strict word 00040h                ; b8 40 00
    7190     call 0165eh                               ; e8 c1 c4
     7349    call 0165eh                               ; e8 fe c2
    71917350    sti                                       ; fb
    71927351    mov ax, word [bp+012h]                    ; 8b 46 12
    71937352    shr ax, 008h                              ; c1 e8 08
    71947353    cmp ax, 000a2h                            ; 3d a2 00
    7195     jnbe near 053aah                          ; 0f 87 ff 01
     7354    jnbe near 0556dh                          ; 0f 87 ff 01
    71967355    push CS                                   ; 0e
    71977356    pop ES                                    ; 07
    71987357    mov cx, strict word 0000ch                ; b9 0c 00
    7199     mov di, 050e9h                            ; bf e9 50
     7358    mov di, 052ach                            ; bf ac 52
    72007359    repne scasb                               ; f2 ae
    72017360    sal cx, 1                                 ; d1 e1
    72027361    mov di, cx                                ; 89 cf
    7203     mov ax, word [cs:di+050f4h]               ; 2e 8b 85 f4 50
     7362    mov ax, word [cs:di+052b7h]               ; 2e 8b 85 b7 52
    72047363    jmp ax                                    ; ff e0
    72057364    push strict byte 00001h                   ; 6a 01
     
    72087367    mov dx, ss                                ; 8c d2
    72097368    lea ax, [bp-006h]                         ; 8d 46 fa
    7210     call 05078h                               ; e8 a9 fe
     7369    call 0523bh                               ; e8 a9 fe
    72117370    test ax, ax                               ; 85 c0
    7212     jne short 051deh                          ; 75 0b
     7371    jne short 053a1h                          ; 75 0b
    72137372    push 005efh                               ; 68 ef 05
    72147373    push strict byte 00007h                   ; 6a 07
    7215     call 01972h                               ; e8 97 c7
     7374    call 01972h                               ; e8 d4 c5
    72167375    add sp, strict byte 00004h                ; 83 c4 04
    72177376    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7218     je short 051eah                           ; 74 06
     7377    je short 053adh                           ; 74 06
    72197378    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7220     je short 051f0h                           ; 74 06
     7379    je short 053b3h                           ; 74 06
    72217380    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7222     jne short 051f4h                          ; 75 04
     7381    jne short 053b7h                          ; 75 04
    72237382    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    72247383    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    72277386    or dx, ax                                 ; 09 c2
    72287387    mov word [bp+012h], dx                    ; 89 56 12
    7229     jmp near 053edh                           ; e9 e6 01
     7388    jmp near 055b0h                           ; e9 e6 01
    72307389    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    72317390    push strict byte 00000h                   ; 6a 00
     
    72347393    mov dx, ss                                ; 8c d2
    72357394    lea ax, [bp-006h]                         ; 8d 46 fa
    7236     call 05078h                               ; e8 5d fe
     7395    call 0523bh                               ; e8 5d fe
    72377396    test ax, ax                               ; 85 c0
    7238     jne short 05226h                          ; 75 07
     7397    jne short 053e9h                          ; 75 07
    72397398    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7240     jmp near 053edh                           ; e9 c7 01
     7399    jmp near 055b0h                           ; e9 c7 01
    72417400    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7242     je short 05232h                           ; 74 06
     7401    je short 053f5h                           ; 74 06
    72437402    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7244     je short 05238h                           ; 74 06
     7403    je short 053fbh                           ; 74 06
    72457404    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7246     jne short 0523ch                          ; 75 04
     7405    jne short 053ffh                          ; 75 04
    72477406    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    72487407    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    72527411    mov word [bp+012h], dx                    ; 89 56 12
    72537412    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7254     jmp near 053edh                           ; e9 9a 01
     7413    jmp near 055b0h                           ; e9 9a 01
    72557414    mov dx, strict word 00017h                ; ba 17 00
    72567415    mov ax, strict word 00040h                ; b8 40 00
    7257     call 01650h                               ; e8 f4 c3
     7416    call 01650h                               ; e8 31 c2
    72587417    mov dx, word [bp+012h]                    ; 8b 56 12
    72597418    mov dl, al                                ; 88 c2
    7260     jmp short 05201h                          ; eb 9e
     7419    jmp short 053c4h                          ; eb 9e
    72617420    mov al, byte [bp+010h]                    ; 8a 46 10
    72627421    movzx dx, al                              ; 0f b6 d0
     
    72647423    shr ax, 008h                              ; c1 e8 08
    72657424    xor ah, ah                                ; 30 e4
    7266     call 04c1eh                               ; e8 aa f9
     7425    call 04de1h                               ; e8 aa f9
    72677426    test ax, ax                               ; 85 c0
    7268     jne short 05285h                          ; 75 0d
     7427    jne short 05448h                          ; 75 0d
    72697428    mov ax, word [bp+012h]                    ; 8b 46 12
    72707429    xor al, al                                ; 30 c0
    72717430    or AL, strict byte 001h                   ; 0c 01
    72727431    mov word [bp+012h], ax                    ; 89 46 12
    7273     jmp near 053edh                           ; e9 68 01
     7432    jmp near 055b0h                           ; e9 68 01
    72747433    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7275     jmp near 053edh                           ; e9 60 01
     7434    jmp near 055b0h                           ; e9 60 01
    72767435    mov ax, word [bp+012h]                    ; 8b 46 12
    72777436    xor al, al                                ; 30 c0
    72787437    or AL, strict byte 030h                   ; 0c 30
    7279     jmp short 0527fh                          ; eb e9
     7438    jmp short 05442h                          ; eb e9
    72807439    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    72817440    xor cx, cx                                ; 31 c9
     
    72907449    ; sub ah, ah                                ; 2a e4
    72917450    test AL, strict byte 001h                 ; a8 01
    7292     jne short 052bdh                          ; 75 0d
     7451    jne short 05480h                          ; 75 0d
    72937452    dec bx                                    ; 4b
    72947453    test bx, bx                               ; 85 db
    7295     jbe short 052bdh                          ; 76 08
     7454    jbe short 05480h                          ; 76 08
    72967455    mov dx, 00080h                            ; ba 80 00
    72977456    in AL, DX                                 ; ec
    72987457    db  02ah, 0e4h
    72997458    ; sub ah, ah                                ; 2a e4
    7300     jmp short 052a6h                          ; eb e9
     7459    jmp short 05469h                          ; eb e9
    73017460    test bx, bx                               ; 85 db
    7302     jbe short 05301h                          ; 76 40
     7461    jbe short 054c4h                          ; 76 40
    73037462    mov dx, strict word 00060h                ; ba 60 00
    73047463    in AL, DX                                 ; ec
     
    73067465    ; sub ah, ah                                ; 2a e4
    73077466    cmp ax, 000fah                            ; 3d fa 00
    7308     jne short 05301h                          ; 75 35
     7467    jne short 054c4h                          ; 75 35
    73097468    mov bx, strict word 0ffffh                ; bb ff ff
    73107469    mov dx, strict word 00064h                ; ba 64 00
     
    73137472    ; sub ah, ah                                ; 2a e4
    73147473    test AL, strict byte 001h                 ; a8 01
    7315     jne short 052e6h                          ; 75 0d
     7474    jne short 054a9h                          ; 75 0d
    73167475    dec bx                                    ; 4b
    73177476    test bx, bx                               ; 85 db
    7318     jbe short 052e6h                          ; 76 08
     7477    jbe short 054a9h                          ; 76 08
    73197478    mov dx, 00080h                            ; ba 80 00
    73207479    in AL, DX                                 ; ec
    73217480    db  02ah, 0e4h
    73227481    ; sub ah, ah                                ; 2a e4
    7323     jmp short 052cfh                          ; eb e9
     7482    jmp short 05492h                          ; eb e9
    73247483    test bx, bx                               ; 85 db
    7325     jbe short 052f8h                          ; 76 0e
     7484    jbe short 054bbh                          ; 76 0e
    73267485    shr cx, 008h                              ; c1 e9 08
    73277486    mov dx, strict word 00060h                ; ba 60 00
     
    73337492    dec byte [bp-004h]                        ; fe 4e fc
    73347493    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7335     jnbe short 052cch                         ; 77 cb
     7494    jnbe short 0548fh                         ; 77 cb
    73367495    mov word [bp+00ch], cx                    ; 89 4e 0c
    7337     jmp near 053edh                           ; e9 e6 00
     7496    jmp near 055b0h                           ; e9 e6 00
    73387497    push strict byte 00001h                   ; 6a 01
    73397498    mov cx, ss                                ; 8c d1
     
    73417500    mov dx, ss                                ; 8c d2
    73427501    lea ax, [bp-006h]                         ; 8d 46 fa
    7343     call 05078h                               ; e8 62 fd
     7502    call 0523bh                               ; e8 62 fd
    73447503    test ax, ax                               ; 85 c0
    7345     jne short 05325h                          ; 75 0b
     7504    jne short 054e8h                          ; 75 0b
    73467505    push 005efh                               ; 68 ef 05
    73477506    push strict byte 00007h                   ; 6a 07
    7348     call 01972h                               ; e8 50 c6
     7507    call 01972h                               ; e8 8d c4
    73497508    add sp, strict byte 00004h                ; 83 c4 04
    73507509    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7351     je near 051f4h                            ; 0f 84 c7 fe
     7510    je near 053b7h                            ; 0f 84 c7 fe
    73527511    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7353     je near 051f0h                            ; 0f 84 bb fe
    7354     jmp near 051f4h                           ; e9 bc fe
     7512    je near 053b3h                            ; 0f 84 bb fe
     7513    jmp near 053b7h                           ; e9 bc fe
    73557514    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    73567515    push strict byte 00000h                   ; 6a 00
     
    73597518    mov dx, ss                                ; 8c d2
    73607519    lea ax, [bp-006h]                         ; 8d 46 fa
    7361     call 05078h                               ; e8 2c fd
     7520    call 0523bh                               ; e8 2c fd
    73627521    test ax, ax                               ; 85 c0
    7363     je near 0521fh                            ; 0f 84 cd fe
     7522    je near 053e2h                            ; 0f 84 cd fe
    73647523    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7365     je near 0523ch                            ; 0f 84 e2 fe
     7524    je near 053ffh                            ; 0f 84 e2 fe
    73667525    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7367     je near 05238h                            ; 0f 84 d6 fe
    7368     jmp near 0523ch                           ; e9 d7 fe
     7526    je near 053fbh                            ; 0f 84 d6 fe
     7527    jmp near 053ffh                           ; e9 d7 fe
    73697528    mov dx, strict word 00017h                ; ba 17 00
    73707529    mov ax, strict word 00040h                ; b8 40 00
    7371     call 01650h                               ; e8 e2 c2
     7530    call 01650h                               ; e8 1f c1
    73727531    mov dx, word [bp+012h]                    ; 8b 56 12
    73737532    mov dl, al                                ; 88 c2
     
    73757534    mov dx, strict word 00018h                ; ba 18 00
    73767535    mov ax, strict word 00040h                ; b8 40 00
    7377     call 01650h                               ; e8 d1 c2
     7536    call 01650h                               ; e8 0e c1
    73787537    mov bh, al                                ; 88 c7
    73797538    and bh, 073h                              ; 80 e7 73
    73807539    mov dx, 00096h                            ; ba 96 00
    73817540    mov ax, strict word 00040h                ; b8 40 00
    7382     call 01650h                               ; e8 c3 c2
     7541    call 01650h                               ; e8 00 c1
    73837542    and AL, strict byte 00ch                  ; 24 0c
    73847543    or bh, al                                 ; 08 c7
     
    73877546    movzx ax, bh                              ; 0f b6 c7
    73887547    sal ax, 008h                              ; c1 e0 08
    7389     jmp near 051ffh                           ; e9 60 fe
     7548    jmp near 053c2h                           ; e9 60 fe
    73907549    mov ax, word [bp+012h]                    ; 8b 46 12
    73917550    xor ah, ah                                ; 30 e4
    73927551    or ah, 080h                               ; 80 cc 80
    7393     jmp near 0527fh                           ; e9 d5 fe
    7394     mov bx, 00da2h                            ; bb a2 0d
     7552    jmp near 05442h                           ; e9 d5 fe
     7553    mov bx, 00da8h                            ; bb a8 0d
    73957554    mov cx, ds                                ; 8c d9
    73967555    mov ax, strict word 00004h                ; b8 04 00
    7397     call 01931h                               ; e8 7c c5
     7556    call 01931h                               ; e8 b9 c3
    73987557    mov ax, word [bp+012h]                    ; 8b 46 12
    73997558    shr ax, 008h                              ; c1 e8 08
     
    74017560    push 00613h                               ; 68 13 06
    74027561    push strict byte 00004h                   ; 6a 04
    7403     call 01972h                               ; e8 ae c5
     7562    call 01972h                               ; e8 eb c3
    74047563    add sp, strict byte 00006h                ; 83 c4 06
    7405     mov bx, 00da2h                            ; bb a2 0d
     7564    mov bx, 00da8h                            ; bb a8 0d
    74067565    mov cx, ds                                ; 8c d9
    74077566    mov ax, strict word 00004h                ; b8 04 00
    7408     call 01931h                               ; e8 5f c5
     7567    call 01931h                               ; e8 9c c3
    74097568    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74107569    push ax                                   ; 50
     
    74177576    push 0063bh                               ; 68 3b 06
    74187577    push strict byte 00004h                   ; 6a 04
    7419     call 01972h                               ; e8 88 c5
     7578    call 01972h                               ; e8 c5 c3
    74207579    add sp, strict byte 0000ch                ; 83 c4 0c
    74217580    lea sp, [bp-002h]                         ; 8d 66 fe
     
    74237582    pop bp                                    ; 5d
    74247583    retn                                      ; c3
    7425 set_geom_lba_:                               ; 0xf53f3 LB 0x9e
     7584set_geom_lba_:                               ; 0xf55b6 LB 0x9e
    74267585    push si                                   ; 56
    74277586    push di                                   ; 57
     
    74357594    mov di, 000ffh                            ; bf ff 00
    74367595    xor bx, bx                                ; 31 db
    7437     jmp short 05414h                          ; eb 05
     7596    jmp short 055d7h                          ; eb 05
    74387597    cmp bx, strict byte 00004h                ; 83 fb 04
    7439     jnl short 0542ah                          ; 7d 16
     7598    jnl short 055edh                          ; 7d 16
    74407599    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7441     jnbe short 05420h                         ; 77 07
    7442     jne short 05423h                          ; 75 08
     7600    jnbe short 055e3h                         ; 77 07
     7601    jne short 055e6h                          ; 75 08
    74437602    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7444     jc short 05423h                           ; 72 03
     7603    jc short 055e6h                           ; 72 03
    74457604    inc di                                    ; 47
    74467605    shr di, 1                                 ; d1 ef
     
    74487607    rcr ax, 1                                 ; d1 d8
    74497608    inc bx                                    ; 43
    7450     jmp short 0540fh                          ; eb e5
     7609    jmp short 055d2h                          ; eb e5
    74517610    mov ax, di                                ; 89 f8
    74527611    xor dx, dx                                ; 31 d2
    74537612    mov bx, strict word 0003fh                ; bb 3f 00
    74547613    xor cx, cx                                ; 31 c9
    7455     call 09569h                               ; e8 33 41
     7614    call 09729h                               ; e8 30 41
    74567615    mov bx, ax                                ; 89 c3
    74577616    mov cx, dx                                ; 89 d1
    74587617    mov ax, word [bp-004h]                    ; 8b 46 fc
    74597618    mov dx, word [bp-002h]                    ; 8b 56 fe
    7460     call 09530h                               ; e8 ed 40
     7619    call 096f0h                               ; e8 ea 40
    74617620    mov word [es:si+002h], ax                 ; 26 89 44 02
    74627621    cmp ax, 00400h                            ; 3d 00 04
    7463     jbe short 05452h                          ; 76 06
     7622    jbe short 05615h                          ; 76 06
    74647623    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    74657624    mov word [es:si], di                      ; 26 89 3c
     
    74697628    pop si                                    ; 5e
    74707629    retn                                      ; c3
    7471     sbb dx, word [di+041h]                    ; 1b 55 41
    7472     push bp                                   ; 55
    7473     outsb                                     ; 6e
    7474     push bp                                   ; 55
    7475     outsb                                     ; 6e
    7476     push bp                                   ; 55
    7477     outsb                                     ; 6e
    7478     push bp                                   ; 55
    7479     inc si                                    ; 46
     7630    ficom word [bp+004h]                      ; de 56 04
    74807631    push di                                   ; 57
    7481     je short 054c5h                           ; 74 58
    7482     je short 054c7h                           ; 74 58
    7483     pop di                                    ; 5f
     7632    xor word [bx+031h], dx                    ; 31 57 31
    74847633    push di                                   ; 57
    7485     push cx                                   ; 51
    7486     pop ax                                    ; 58
    7487     je short 054cdh                           ; 74 58
    7488     je short 054cfh                           ; 74 58
    7489     push cx                                   ; 51
    7490     pop ax                                    ; 58
    7491     push cx                                   ; 51
    7492     pop ax                                    ; 58
    7493     je short 054d5h                           ; 74 58
    7494     je short 054d7h                           ; 74 58
    7495     aad 057h                                  ; d5 57
    7496     push cx                                   ; 51
    7497     pop ax                                    ; 58
    7498     je short 054ddh                           ; 74 58
    7499     je short 054dfh                           ; 74 58
    7500     push cx                                   ; 51
    7501     pop ax                                    ; 58
    7502     add ax, 07458h                            ; 05 58 74
    7503     pop ax                                    ; 58
    7504     je short 054e7h                           ; 74 58
    7505     je short 054e9h                           ; 74 58
    7506 _int13_harddisk:                             ; 0xf5491 LB 0x441
     7634    xor word [bx+009h], dx                    ; 31 57 09
     7635    pop cx                                    ; 59
     7636    aaa                                       ; 37
     7637    pop dx                                    ; 5a
     7638    aaa                                       ; 37
     7639    pop dx                                    ; 5a
     7640    and bl, byte [bx+di+014h]                 ; 22 59 14
     7641    pop dx                                    ; 5a
     7642    aaa                                       ; 37
     7643    pop dx                                    ; 5a
     7644    aaa                                       ; 37
     7645    pop dx                                    ; 5a
     7646    adc AL, strict byte 05ah                  ; 14 5a
     7647    adc AL, strict byte 05ah                  ; 14 5a
     7648    aaa                                       ; 37
     7649    pop dx                                    ; 5a
     7650    aaa                                       ; 37
     7651    pop dx                                    ; 5a
     7652    cbw                                       ; 98
     7653    pop cx                                    ; 59
     7654    adc AL, strict byte 05ah                  ; 14 5a
     7655    aaa                                       ; 37
     7656    pop dx                                    ; 5a
     7657    aaa                                       ; 37
     7658    pop dx                                    ; 5a
     7659    adc AL, strict byte 05ah                  ; 14 5a
     7660    enter 03759h, 05ah                        ; c8 59 37 5a
     7661    aaa                                       ; 37
     7662    pop dx                                    ; 5a
     7663    aaa                                       ; 37
     7664    pop dx                                    ; 5a
     7665_int13_harddisk:                             ; 0xf5654 LB 0x441
    75077666    push bp                                   ; 55
    75087667    mov bp, sp                                ; 89 e5
     
    75107669    mov dx, strict word 0000eh                ; ba 0e 00
    75117670    mov ax, strict word 00040h                ; b8 40 00
    7512     call 0166ch                               ; e8 cc c1
     7671    call 0166ch                               ; e8 09 c0
    75137672    mov si, 00122h                            ; be 22 01
    75147673    mov word [bp-004h], ax                    ; 89 46 fc
     
    75167675    mov dx, 0008eh                            ; ba 8e 00
    75177676    mov ax, strict word 00040h                ; b8 40 00
    7518     call 0165eh                               ; e8 ad c1
     7677    call 0165eh                               ; e8 ea bf
    75197678    mov ax, word [bp+00eh]                    ; 8b 46 0e
    75207679    xor ah, ah                                ; 30 e4
    75217680    cmp ax, 00080h                            ; 3d 80 00
    7522     jc short 054c0h                           ; 72 05
     7681    jc short 05683h                           ; 72 05
    75237682    cmp ax, 00090h                            ; 3d 90 00
    7524     jc short 054deh                           ; 72 1e
     7683    jc short 056a1h                           ; 72 1e
    75257684    mov ax, word [bp+00eh]                    ; 8b 46 0e
    75267685    xor ah, ah                                ; 30 e4
     
    75327691    push 0066dh                               ; 68 6d 06
    75337692    push strict byte 00004h                   ; 6a 04
    7534     call 01972h                               ; e8 9a c4
     7693    call 01972h                               ; e8 d7 c2
    75357694    add sp, strict byte 0000ah                ; 83 c4 0a
    7536     jmp near 0588fh                           ; e9 b1 03
     7695    jmp near 05a52h                           ; e9 b1 03
    75377696    mov ax, word [bp+00eh]                    ; 8b 46 0e
    75387697    xor ah, ah                                ; 30 e4
     
    75437702    mov byte [bp-002h], dl                    ; 88 56 fe
    75447703    cmp dl, 010h                              ; 80 fa 10
    7545     jc short 05507h                           ; 72 10
     7704    jc short 056cah                           ; 72 10
    75467705    push ax                                   ; 50
    75477706    mov ax, word [bp+016h]                    ; 8b 46 16
     
    75507709    push 0065eh                               ; 68 5e 06
    75517710    push 00698h                               ; 68 98 06
    7552     jmp short 054d3h                          ; eb cc
     7711    jmp short 05696h                          ; eb cc
    75537712    mov bx, word [bp+016h]                    ; 8b 5e 16
    75547713    shr bx, 008h                              ; c1 eb 08
    75557714    cmp bx, strict byte 00018h                ; 83 fb 18
    7556     jnbe near 05874h                          ; 0f 87 60 03
     7715    jnbe near 05a37h                          ; 0f 87 60 03
    75577716    add bx, bx                                ; 01 db
    7558     jmp word [cs:bx+0545fh]                   ; 2e ff a7 5f 54
     7717    jmp word [cs:bx+05622h]                   ; 2e ff a7 22 56
    75597718    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7560     jnc near 0552ah                           ; 0f 83 07 00
     7719    jnc near 056edh                           ; 0f 83 07 00
    75617720    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7562     call 01c71h                               ; e8 47 c7
     7721    call 01c71h                               ; e8 84 c5
    75637722    mov byte [bp+017h], 000h                  ; c6 46 17 00
    75647723    xor bx, bx                                ; 31 db
    75657724    mov dx, strict word 00074h                ; ba 74 00
    75667725    mov ax, strict word 00040h                ; b8 40 00
    7567     call 0165eh                               ; e8 25 c1
     7726    call 0165eh                               ; e8 62 bf
    75687727    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    75697728    mov sp, bp                                ; 89 ec
     
    75727731    mov dx, strict word 00074h                ; ba 74 00
    75737732    mov ax, strict word 00040h                ; b8 40 00
    7574     call 01650h                               ; e8 06 c1
     7733    call 01650h                               ; e8 43 bf
    75757734    mov cl, al                                ; 88 c1
    75767735    mov dx, word [bp+016h]                    ; 8b 56 16
     
    75837742    mov dx, strict word 00074h                ; ba 74 00
    75847743    mov ax, strict word 00040h                ; b8 40 00
    7585     call 0165eh                               ; e8 f7 c0
     7744    call 0165eh                               ; e8 34 bf
    75867745    test cl, cl                               ; 84 c9
    7587     je short 0552eh                           ; 74 c3
    7588     jmp near 058abh                           ; e9 3d 03
     7746    je short 056f1h                           ; 74 c3
     7747    jmp near 05a6eh                           ; e9 3d 03
    75897748    mov ax, word [bp+016h]                    ; 8b 46 16
    75907749    xor ah, ah                                ; 30 e4
     
    76067765    mov ax, word [bp-00ch]                    ; 8b 46 f4
    76077766    cmp ax, 00080h                            ; 3d 80 00
    7608     jnbe short 055a9h                         ; 77 04
     7767    jnbe short 0576ch                         ; 77 04
    76097768    test ax, ax                               ; 85 c0
    7610     jne short 055cch                          ; 75 23
    7611     mov bx, 00da2h                            ; bb a2 0d
     7769    jne short 0578fh                          ; 75 23
     7770    mov bx, 00da8h                            ; bb a8 0d
    76127771    mov cx, ds                                ; 8c d9
    76137772    mov ax, strict word 00004h                ; b8 04 00
    7614     call 01931h                               ; e8 7d c3
     7773    call 01931h                               ; e8 ba c1
    76157774    mov ax, word [bp+016h]                    ; 8b 46 16
    76167775    shr ax, 008h                              ; c1 e8 08
     
    76197778    push 006cah                               ; 68 ca 06
    76207779    push strict byte 00004h                   ; 6a 04
    7621     call 01972h                               ; e8 ac c3
     7780    call 01972h                               ; e8 e9 c1
    76227781    add sp, strict byte 00008h                ; 83 c4 08
    7623     jmp near 0588fh                           ; e9 c3 02
     7782    jmp near 05a52h                           ; e9 c3 02
    76247783    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76257784    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76327791    mov word [bp-00ah], dx                    ; 89 56 f6
    76337792    cmp di, ax                                ; 39 c7
    7634     jnc short 055f9h                          ; 73 0c
     7793    jnc short 057bch                          ; 73 0c
    76357794    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7636     jbe short 055f9h                          ; 76 07
     7795    jbe short 057bch                          ; 76 07
    76377796    mov ax, word [bp-006h]                    ; 8b 46 fa
    76387797    cmp ax, dx                                ; 39 d0
    7639     jbe short 05627h                          ; 76 2e
    7640     mov bx, 00da2h                            ; bb a2 0d
     7798    jbe short 057eah                          ; 76 2e
     7799    mov bx, 00da8h                            ; bb a8 0d
    76417800    mov cx, ds                                ; 8c d9
    76427801    mov ax, strict word 00004h                ; b8 04 00
    7643     call 01931h                               ; e8 2d c3
     7802    call 01931h                               ; e8 6a c1
    76447803    push dword [bp-008h]                      ; 66 ff 76 f8
    76457804    push di                                   ; 57
     
    76537812    push 006f2h                               ; 68 f2 06
    76547813    push strict byte 00004h                   ; 6a 04
    7655     call 01972h                               ; e8 51 c3
     7814    call 01972h                               ; e8 8e c1
    76567815    add sp, strict byte 00010h                ; 83 c4 10
    7657     jmp near 0588fh                           ; e9 68 02
     7816    jmp near 05a52h                           ; e9 68 02
    76587817    mov ax, word [bp+016h]                    ; 8b 46 16
    76597818    shr ax, 008h                              ; c1 e8 08
    76607819    cmp ax, strict word 00004h                ; 3d 04 00
    7661     jne short 05635h                          ; 75 03
    7662     jmp near 0552ah                           ; e9 f5 fe
     7820    jne short 057f8h                          ; 75 03
     7821    jmp near 056edh                           ; e9 f5 fe
    76637822    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    76647823    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    76667825    add bx, si                                ; 01 f3
    76677826    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7668     jne short 05656h                          ; 75 0f
     7827    jne short 05819h                          ; 75 0f
    76697828    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    76707829    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7671     jne short 05656h                          ; 75 06
     7830    jne short 05819h                          ; 75 06
    76727831    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7673     jc short 05686h                           ; 72 30
     7832    jc short 05849h                           ; 72 30
    76747833    mov ax, di                                ; 89 f8
    76757834    xor dx, dx                                ; 31 d2
    76767835    mov bx, cx                                ; 89 cb
    76777836    xor cx, cx                                ; 31 c9
    7678     call 09569h                               ; e8 08 3f
     7837    call 09729h                               ; e8 05 3f
    76797838    xor bx, bx                                ; 31 db
    76807839    add ax, word [bp-008h]                    ; 03 46 f8
     
    76827841    mov bx, word [bp-00ah]                    ; 8b 5e f6
    76837842    xor cx, cx                                ; 31 c9
    7684     call 09569h                               ; e8 f9 3e
     7843    call 09729h                               ; e8 f6 3e
    76857844    xor bx, bx                                ; 31 db
    76867845    add ax, word [bp-006h]                    ; 03 46 fa
     
    77357894    mov word [bp+016h], bx                    ; 89 5e 16
    77367895    test dl, dl                               ; 84 d2
    7737     je near 0552ah                            ; 0f 84 13 fe
    7738     mov bx, 00da2h                            ; bb a2 0d
     7896    je near 056edh                            ; 0f 84 13 fe
     7897    mov bx, 00da8h                            ; bb a8 0d
    77397898    mov cx, ds                                ; 8c d9
    77407899    mov ax, strict word 00004h                ; b8 04 00
    7741     call 01931h                               ; e8 0f c2
     7900    call 01931h                               ; e8 4c c0
    77427901    movzx ax, dl                              ; 0f b6 c2
    77437902    push ax                                   ; 50
     
    77487907    push 00739h                               ; 68 39 07
    77497908    push strict byte 00004h                   ; 6a 04
    7750     call 01972h                               ; e8 3a c2
     7909    call 01972h                               ; e8 77 c0
    77517910    add sp, strict byte 0000ah                ; 83 c4 0a
    77527911    mov ax, word [bp+016h]                    ; 8b 46 16
    77537912    xor ah, ah                                ; 30 e4
    77547913    or ah, 00ch                               ; 80 cc 0c
    7755     jmp near 05897h                           ; e9 51 01
    7756     mov bx, 00da2h                            ; bb a2 0d
     7914    jmp near 05a5ah                           ; e9 51 01
     7915    mov bx, 00da8h                            ; bb a8 0d
    77577916    mov cx, ds                                ; 8c d9
    77587917    mov ax, strict word 00004h                ; b8 04 00
    7759     call 01931h                               ; e8 e0 c1
     7918    call 01931h                               ; e8 1d c0
    77607919    push 0075ah                               ; 68 5a 07
    77617920    push strict byte 00004h                   ; 6a 04
    7762     call 01972h                               ; e8 19 c2
     7921    call 01972h                               ; e8 56 c0
    77637922    add sp, strict byte 00004h                ; 83 c4 04
    7764     jmp near 0552ah                           ; e9 cb fd
     7923    jmp near 056edh                           ; e9 cb fd
    77657924    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77667925    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    78057964    or dx, ax                                 ; 09 c2
    78067965    mov word [bp+012h], dx                    ; 89 56 12
    7807     jmp near 0552ah                           ; e9 55 fd
     7966    jmp near 056edh                           ; e9 55 fd
    78087967    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    78097968    cwd                                       ; 99
     
    78217980    and AL, strict byte 0c0h                  ; 24 c0
    78227981    cmp AL, strict byte 040h                  ; 3c 40
    7823     jne short 057fah                          ; 75 03
    7824     jmp near 0552ah                           ; e9 30 fd
     7982    jne short 059bdh                          ; 75 03
     7983    jmp near 056edh                           ; e9 30 fd
    78257984    mov ax, word [bp+016h]                    ; 8b 46 16
    78267985    xor ah, ah                                ; 30 e4
    78277986    or ah, 0aah                               ; 80 cc aa
    7828     jmp near 05897h                           ; e9 92 00
     7987    jmp near 05a5ah                           ; e9 92 00
    78297988    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    78307989    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    78407999    mov bx, word [bp-008h]                    ; 8b 5e f8
    78418000    xor cx, cx                                ; 31 c9
    7842     call 09569h                               ; e8 3a 3d
     8001    call 09729h                               ; e8 37 3d
    78438002    mov bx, word [bp-006h]                    ; 8b 5e fa
    78448003    xor cx, cx                                ; 31 c9
    7845     call 09569h                               ; e8 32 3d
     8004    call 09729h                               ; e8 2f 3d
    78468005    mov word [bp-010h], ax                    ; 89 46 f0
    78478006    mov word [bp-00eh], dx                    ; 89 56 f2
     
    78528011    or ah, 003h                               ; 80 cc 03
    78538012    mov word [bp+016h], ax                    ; 89 46 16
    7854     jmp near 0552eh                           ; e9 dd fc
    7855     mov bx, 00da2h                            ; bb a2 0d
     8013    jmp near 056f1h                           ; e9 dd fc
     8014    mov bx, 00da8h                            ; bb a8 0d
    78568015    mov cx, ds                                ; 8c d9
    78578016    mov ax, strict word 00004h                ; b8 04 00
    7858     call 01931h                               ; e8 d5 c0
     8017    call 01931h                               ; e8 12 bf
    78598018    mov ax, word [bp+016h]                    ; 8b 46 16
    78608019    shr ax, 008h                              ; c1 e8 08
     
    78638022    push 00774h                               ; 68 74 07
    78648023    push strict byte 00004h                   ; 6a 04
    7865     call 01972h                               ; e8 04 c1
     8024    call 01972h                               ; e8 41 bf
    78668025    add sp, strict byte 00008h                ; 83 c4 08
    7867     jmp near 0552ah                           ; e9 b6 fc
    7868     mov bx, 00da2h                            ; bb a2 0d
     8026    jmp near 056edh                           ; e9 b6 fc
     8027    mov bx, 00da8h                            ; bb a8 0d
    78698028    mov cx, ds                                ; 8c d9
    78708029    mov ax, strict word 00004h                ; b8 04 00
    7871     call 01931h                               ; e8 b2 c0
     8030    call 01931h                               ; e8 ef be
    78728031    mov ax, word [bp+016h]                    ; 8b 46 16
    78738032    shr ax, 008h                              ; c1 e8 08
     
    78758034    push 0065eh                               ; 68 5e 06
    78768035    push 007a7h                               ; 68 a7 07
    7877     jmp near 055c1h                           ; e9 32 fd
     8036    jmp near 05784h                           ; e9 32 fd
    78788037    mov ax, word [bp+016h]                    ; 8b 46 16
    78798038    xor ah, ah                                ; 30 e4
     
    78858044    mov dx, strict word 00074h                ; ba 74 00
    78868045    mov ax, strict word 00040h                ; b8 40 00
    7887     call 0165eh                               ; e8 b3 bd
     8046    call 0165eh                               ; e8 f0 bb
    78888047    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7889     jmp near 0553dh                           ; e9 8b fc
    7890     insw                                      ; 6d
    7891     pop cx                                    ; 59
    7892     test word [bx+di-07bh], bx                ; 85 59 85
    7893     pop cx                                    ; 59
    7894     test word [bx+di+034h], bx                ; 85 59 34
    7895     pop bp                                    ; 5d
    7896     enter 0855ah, 059h                        ; c8 5a 85 59
    7897     into                                      ; ce
    7898     pop dx                                    ; 5a
    7899     xor AL, strict byte 05dh                  ; 34 5d
    7900     sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
    7901     sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
    7902     dec bx                                    ; 4b
    7903     pop bp                                    ; 5d
    7904     sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
    7905 _int13_harddisk_ext:                         ; 0xf58d2 LB 0x4cc
     8048    jmp near 05700h                           ; e9 8b fc
     8049    xor byte [bp+di+048h], bl                 ; 30 5b 48
     8050    pop bx                                    ; 5b
     8051    dec ax                                    ; 48
     8052    pop bx                                    ; 5b
     8053    dec ax                                    ; 48
     8054    pop bx                                    ; 5b
     8055    neg word [bp-075h]                        ; f7 5e 8b
     8056    pop sp                                    ; 5c
     8057    dec ax                                    ; 48
     8058    pop bx                                    ; 5b
     8059    xchg cx, ax                               ; 91
     8060    pop sp                                    ; 5c
     8061    neg word [bp+046h]                        ; f7 5e 46
     8062    pop di                                    ; 5f
     8063    inc si                                    ; 46
     8064    pop di                                    ; 5f
     8065    inc si                                    ; 46
     8066    pop di                                    ; 5f
     8067    inc si                                    ; 46
     8068    pop di                                    ; 5f
     8069    push CS                                   ; 0e
     8070    pop di                                    ; 5f
     8071    inc si                                    ; 46
     8072    pop di                                    ; 5f
     8073    inc si                                    ; 46
     8074    pop di                                    ; 5f
     8075_int13_harddisk_ext:                         ; 0xf5a95 LB 0x4cc
    79068076    push bp                                   ; 55
    79078077    mov bp, sp                                ; 89 e5
     
    79098079    mov dx, strict word 0000eh                ; ba 0e 00
    79108080    mov ax, strict word 00040h                ; b8 40 00
    7911     call 0166ch                               ; e8 8b bd
     8081    call 0166ch                               ; e8 c8 bb
    79128082    mov word [bp-014h], ax                    ; 89 46 ec
    79138083    mov dx, strict word 0000eh                ; ba 0e 00
    79148084    mov ax, strict word 00040h                ; b8 40 00
    7915     call 0166ch                               ; e8 7f bd
     8085    call 0166ch                               ; e8 bc bb
    79168086    mov si, 00122h                            ; be 22 01
    79178087    mov word [bp-026h], ax                    ; 89 46 da
     
    79198089    mov dx, 0008eh                            ; ba 8e 00
    79208090    mov ax, strict word 00040h                ; b8 40 00
    7921     call 0165eh                               ; e8 60 bd
     8091    call 0165eh                               ; e8 9d bb
    79228092    mov ax, word [bp+00eh]                    ; 8b 46 0e
    79238093    xor ah, ah                                ; 30 e4
    79248094    cmp ax, 00080h                            ; 3d 80 00
    7925     jc short 0590dh                           ; 72 05
     8095    jc short 05ad0h                           ; 72 05
    79268096    cmp ax, 00090h                            ; 3d 90 00
    7927     jc short 0592bh                           ; 72 1e
     8097    jc short 05aeeh                           ; 72 1e
    79288098    mov ax, word [bp+00eh]                    ; 8b 46 0e
    79298099    xor ah, ah                                ; 30 e4
     
    79358105    push 0066dh                               ; 68 6d 06
    79368106    push strict byte 00004h                   ; 6a 04
    7937     call 01972h                               ; e8 4d c0
     8107    call 01972h                               ; e8 8a be
    79388108    add sp, strict byte 0000ah                ; 83 c4 0a
    7939     jmp near 05d61h                           ; e9 36 04
     8109    jmp near 05f24h                           ; e9 36 04
    79408110    mov ax, word [bp+00eh]                    ; 8b 46 0e
    79418111    xor ah, ah                                ; 30 e4
     
    79458115    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    79468116    cmp cl, 010h                              ; 80 f9 10
    7947     jc short 05951h                           ; 72 10
     8117    jc short 05b14h                           ; 72 10
    79488118    push ax                                   ; 50
    79498119    mov ax, word [bp+016h]                    ; 8b 46 16
     
    79528122    push 007d5h                               ; 68 d5 07
    79538123    push 00698h                               ; 68 98 06
    7954     jmp short 05920h                          ; eb cf
     8124    jmp short 05ae3h                          ; eb cf
    79558125    mov bx, word [bp+016h]                    ; 8b 5e 16
    79568126    shr bx, 008h                              ; c1 eb 08
    79578127    sub bx, strict byte 00041h                ; 83 eb 41
    79588128    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7959     jnbe near 05d83h                          ; 0f 87 22 04
     8129    jnbe near 05f46h                          ; 0f 87 22 04
    79608130    add bx, bx                                ; 01 db
    79618131    mov ax, word [bp+016h]                    ; 8b 46 16
    79628132    xor ah, ah                                ; 30 e4
    7963     jmp word [cs:bx+058b2h]                   ; 2e ff a7 b2 58
     8133    jmp word [cs:bx+05a75h]                   ; 2e ff a7 75 5a
    79648134    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    79658135    mov ax, word [bp+016h]                    ; 8b 46 16
     
    79688138    mov word [bp+016h], ax                    ; 89 46 16
    79698139    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7970     jmp near 05d38h                           ; e9 b3 03
     8140    jmp near 05efbh                           ; e9 b3 03
    79718141    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79728142    mov es, [bp+004h]                         ; 8e 46 04
     
    79838153    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    79848154    or ax, word [bp-00ah]                     ; 0b 46 f6
    7985     je short 059c6h                           ; 74 11
     8155    je short 05b89h                           ; 74 11
    79868156    mov ax, word [bp+016h]                    ; 8b 46 16
    79878157    shr ax, 008h                              ; c1 e8 08
     
    79908160    push 007e8h                               ; 68 e8 07
    79918161    push strict byte 00007h                   ; 6a 07
    7992     jmp short 05a10h                          ; eb 4a
     8162    jmp short 05bd3h                          ; eb 4a
    79938163    mov es, [bp-010h]                         ; 8e 46 f0
    79948164    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    80028172    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    80038173    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    8004     jnbe short 059f6h                         ; 77 0b
    8005     jne short 05a19h                          ; 75 2c
     8174    jnbe short 05bb9h                         ; 77 0b
     8175    jne short 05bdch                          ; 75 2c
    80068176    mov dx, word [bp-00ah]                    ; 8b 56 f6
    80078177    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    8008     jc short 05a19h                           ; 72 23
    8009     mov bx, 00da2h                            ; bb a2 0d
     8178    jc short 05bdch                           ; 72 23
     8179    mov bx, 00da8h                            ; bb a8 0d
    80108180    mov cx, ds                                ; 8c d9
    80118181    mov ax, strict word 00004h                ; b8 04 00
    8012     call 01931h                               ; e8 30 bf
     8182    call 01931h                               ; e8 6d bd
    80138183    mov ax, word [bp+016h]                    ; 8b 46 16
    80148184    shr ax, 008h                              ; c1 e8 08
     
    80178187    push 00811h                               ; 68 11 08
    80188188    push strict byte 00004h                   ; 6a 04
    8019     call 01972h                               ; e8 5f bf
     8189    call 01972h                               ; e8 9c bd
    80208190    add sp, strict byte 00008h                ; 83 c4 08
    8021     jmp near 05d61h                           ; e9 48 03
     8191    jmp near 05f24h                           ; e9 48 03
    80228192    mov dx, word [bp+016h]                    ; 8b 56 16
    80238193    shr dx, 008h                              ; c1 ea 08
    80248194    mov word [bp-00ch], dx                    ; 89 56 f4
    80258195    cmp dx, strict byte 00044h                ; 83 fa 44
    8026     je near 05d34h                            ; 0f 84 0b 03
     8196    je near 05ef7h                            ; 0f 84 0b 03
    80278197    cmp dx, strict byte 00047h                ; 83 fa 47
    8028     je near 05d34h                            ; 0f 84 04 03
     8198    je near 05ef7h                            ; 0f 84 04 03
    80298199    mov es, [bp-026h]                         ; 8e 46 da
    80308200    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    80588228    mov word [es:di+002h], ax                 ; 26 89 45 02
    80598229    test dl, dl                               ; 84 d2
    8060     je near 05d34h                            ; 0f 84 97 02
    8061     mov bx, 00da2h                            ; bb a2 0d
     8230    je near 05ef7h                            ; 0f 84 97 02
     8231    mov bx, 00da8h                            ; bb a8 0d
    80628232    mov cx, ds                                ; 8c d9
    80638233    mov ax, strict word 00004h                ; b8 04 00
    8064     call 01931h                               ; e8 89 be
     8234    call 01931h                               ; e8 c6 bc
    80658235    movzx ax, dl                              ; 0f b6 c2
    80668236    push ax                                   ; 50
     
    80698239    push 00739h                               ; 68 39 07
    80708240    push strict byte 00004h                   ; 6a 04
    8071     call 01972h                               ; e8 b8 be
     8241    call 01972h                               ; e8 f5 bc
    80728242    add sp, strict byte 0000ah                ; 83 c4 0a
    80738243    mov ax, word [bp+016h]                    ; 8b 46 16
    80748244    xor ah, ah                                ; 30 e4
    80758245    or ah, 00ch                               ; 80 cc 0c
    8076     jmp near 05d69h                           ; e9 a1 02
     8246    jmp near 05f2ch                           ; e9 a1 02
    80778247    or ah, 0b2h                               ; 80 cc b2
    8078     jmp near 05d69h                           ; e9 9b 02
     8248    jmp near 05f2ch                           ; e9 9b 02
    80798249    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    80808250    mov ax, word [bp+004h]                    ; 8b 46 04
     
    80868256    mov word [bp-00eh], ax                    ; 89 46 f2
    80878257    cmp ax, strict word 0001ah                ; 3d 1a 00
    8088     jc near 05d61h                            ; 0f 82 76 02
    8089     jc near 05b72h                            ; 0f 82 83 00
     8258    jc near 05f24h                            ; 0f 82 76 02
     8259    jc near 05d35h                            ; 0f 82 83 00
    80908260    movzx ax, cl                              ; 0f b6 c1
    80918261    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    81258295    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    81268296    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8127     jc near 05c7eh                            ; 0f 82 04 01
     8297    jc near 05e41h                            ; 0f 82 04 01
    81288298    mov es, [bp-004h]                         ; 8e 46 fc
    81298299    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    81518321    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    81528322    test al, al                               ; 84 c0
    8153     jne short 05bd0h                          ; 75 04
     8323    jne short 05d93h                          ; 75 04
    81548324    xor dx, dx                                ; 31 d2
    8155     jmp short 05bd3h                          ; eb 03
     8325    jmp short 05d96h                          ; eb 03
    81568326    mov dx, strict word 00008h                ; ba 08 00
    81578327    or dl, 010h                               ; 80 ca 10
     
    81688338    or word [bp-008h], dx                     ; 09 56 f8
    81698339    cmp AL, strict byte 003h                  ; 3c 03
    8170     jne short 05bf9h                          ; 75 05
     8340    jne short 05dbch                          ; 75 05
    81718341    mov ax, strict word 00003h                ; b8 03 00
    8172     jmp short 05bfbh                          ; eb 02
     8342    jmp short 05dbeh                          ; eb 02
    81738343    xor ax, ax                                ; 31 c0
    81748344    or word [bp-008h], ax                     ; 09 46 f8
     
    81958365    xor ch, ch                                ; 30 ed
    81968366    mov byte [bp-002h], ch                    ; 88 6e fe
    8197     jmp short 05c5fh                          ; eb 06
     8367    jmp short 05e22h                          ; eb 06
    81988368    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8199     jnc short 05c74h                          ; 73 15
     8369    jnc short 05e37h                          ; 73 15
    82008370    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    82018371    add dx, 00312h                            ; 81 c2 12 03
    82028372    mov ax, word [bp-014h]                    ; 8b 46 ec
    8203     call 01650h                               ; e8 e3 b9
     8373    call 01650h                               ; e8 20 b8
    82048374    add ch, al                                ; 00 c5
    82058375    inc byte [bp-002h]                        ; fe 46 fe
    8206     jmp short 05c59h                          ; eb e5
     8376    jmp short 05e1ch                          ; eb e5
    82078377    neg ch                                    ; f6 dd
    82088378    mov es, [bp-026h]                         ; 8e 46 da
    82098379    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    82108380    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8211     jc near 05d34h                            ; 0f 82 ae 00
     8381    jc near 05ef7h                            ; 0f 82 ae 00
    82128382    movzx ax, cl                              ; 0f b6 c1
    82138383    cwd                                       ; 99
     
    82278397    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    82288398    test al, al                               ; 84 c0
    8229     jne short 05cc6h                          ; 75 09
     8399    jne short 05e89h                          ; 75 09
    82308400    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    82318401    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    82368406    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    82378407    test al, al                               ; 84 c0
    8238     jne short 05cf2h                          ; 75 13
     8408    jne short 05eb5h                          ; 75 13
    82398409    mov word [es:bx+030h], dx                 ; 26 89 57 30
    82408410    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    82518421    xor cl, cl                                ; 30 c9
    82528422    mov CH, strict byte 01eh                  ; b5 1e
    8253     jmp short 05d19h                          ; eb 05
     8423    jmp short 05edch                          ; eb 05
    82548424    cmp ch, 040h                              ; 80 fd 40
    8255     jnc short 05d2bh                          ; 73 12
     8425    jnc short 05eeeh                          ; 73 12
    82568426    movzx dx, ch                              ; 0f b6 d5
    82578427    add dx, word [bp+00ah]                    ; 03 56 0a
    82588428    mov ax, word [bp+004h]                    ; 8b 46 04
    8259     call 01650h                               ; e8 2b b9
     8429    call 01650h                               ; e8 68 b7
    82608430    add cl, al                                ; 00 c1
    82618431    db  0feh, 0c5h
    82628432    ; inc ch                                    ; fe c5
    8263     jmp short 05d14h                          ; eb e9
     8433    jmp short 05ed7h                          ; eb e9
    82648434    neg cl                                    ; f6 d9
    82658435    mov es, [bp-004h]                         ; 8e 46 fc
     
    82698439    mov dx, strict word 00074h                ; ba 74 00
    82708440    mov ax, strict word 00040h                ; b8 40 00
    8271     call 0165eh                               ; e8 1b b9
     8441    call 0165eh                               ; e8 58 b7
    82728442    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    82738443    mov sp, bp                                ; 89 ec
     
    82758445    retn                                      ; c3
    82768446    cmp ax, strict word 00006h                ; 3d 06 00
    8277     je short 05d34h                           ; 74 e4
     8447    je short 05ef7h                           ; 74 e4
    82788448    cmp ax, strict word 00001h                ; 3d 01 00
    8279     jc short 05d61h                           ; 72 0c
    8280     jbe short 05d34h                          ; 76 dd
     8449    jc short 05f24h                           ; 72 0c
     8450    jbe short 05ef7h                          ; 76 dd
    82818451    cmp ax, strict word 00003h                ; 3d 03 00
    8282     jc short 05d61h                           ; 72 05
     8452    jc short 05f24h                           ; 72 05
    82838453    cmp ax, strict word 00004h                ; 3d 04 00
    8284     jbe short 05d34h                          ; 76 d3
     8454    jbe short 05ef7h                          ; 76 d3
    82858455    mov ax, word [bp+016h]                    ; 8b 46 16
    82868456    xor ah, ah                                ; 30 e4
     
    82928462    mov dx, strict word 00074h                ; ba 74 00
    82938463    mov ax, strict word 00040h                ; b8 40 00
    8294     call 0165eh                               ; e8 e1 b8
     8464    call 0165eh                               ; e8 1e b7
    82958465    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8296     jmp short 05d47h                          ; eb c4
    8297     mov bx, 00da2h                            ; bb a2 0d
     8466    jmp short 05f0ah                          ; eb c4
     8467    mov bx, 00da8h                            ; bb a8 0d
    82988468    mov cx, ds                                ; 8c d9
    82998469    mov ax, strict word 00004h                ; b8 04 00
    8300     call 01931h                               ; e8 a3 bb
     8470    call 01931h                               ; e8 e0 b9
    83018471    mov ax, word [bp+016h]                    ; 8b 46 16
    83028472    shr ax, 008h                              ; c1 e8 08
     
    83048474    push 007d5h                               ; 68 d5 07
    83058475    push 007a7h                               ; 68 a7 07
    8306     jmp near 05a0eh                           ; e9 70 fc
    8307 _int14_function:                             ; 0xf5d9e LB 0x155
     8476    jmp near 05bd1h                           ; e9 70 fc
     8477_int14_function:                             ; 0xf5f61 LB 0x155
    83088478    push bp                                   ; 55
    83098479    mov bp, sp                                ; 89 e5
     
    83138483    add dx, dx                                ; 01 d2
    83148484    mov ax, strict word 00040h                ; b8 40 00
    8315     call 0166ch                               ; e8 be b8
     8485    call 0166ch                               ; e8 fb b6
    83168486    mov si, ax                                ; 89 c6
    83178487    mov bx, ax                                ; 89 c3
     
    83198489    add dx, strict byte 0007ch                ; 83 c2 7c
    83208490    mov ax, strict word 00040h                ; b8 40 00
    8321     call 01650h                               ; e8 92 b8
     8491    call 01650h                               ; e8 cf b6
    83228492    mov cl, al                                ; 88 c1
    83238493    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8324     jnc near 05ee9h                           ; 0f 83 21 01
     8494    jnc near 060ach                           ; 0f 83 21 01
    83258495    test si, si                               ; 85 f6
    8326     jbe near 05ee9h                           ; 0f 86 1b 01
     8496    jbe near 060ach                           ; 0f 86 1b 01
    83278497    mov al, byte [bp+013h]                    ; 8a 46 13
    83288498    cmp AL, strict byte 001h                  ; 3c 01
    8329     jc short 05de6h                           ; 72 11
    8330     jbe short 05e3ah                          ; 76 63
     8499    jc short 05fa9h                           ; 72 11
     8500    jbe short 05ffdh                          ; 76 63
    83318501    cmp AL, strict byte 003h                  ; 3c 03
    8332     je near 05ed2h                            ; 0f 84 f5 00
     8502    je near 06095h                            ; 0f 84 f5 00
    83338503    cmp AL, strict byte 002h                  ; 3c 02
    8334     je near 05e88h                            ; 0f 84 a5 00
    8335     jmp near 05ee3h                           ; e9 fd 00
     8504    je near 0604bh                            ; 0f 84 a5 00
     8505    jmp near 060a6h                           ; e9 fd 00
    83368506    test al, al                               ; 84 c0
    8337     jne near 05ee3h                           ; 0f 85 f7 00
     8507    jne near 060a6h                           ; 0f 85 f7 00
    83388508    lea dx, [bx+003h]                         ; 8d 57 03
    83398509    in AL, DX                                 ; ec
     
    83678537    ; sub ah, ah                                ; 2a e4
    83688538    mov byte [bp+012h], al                    ; 88 46 12
    8369     jmp near 05ec4h                           ; e9 97 00
     8539    jmp near 06087h                           ; e9 97 00
    83708540    mov AL, strict byte 017h                  ; b0 17
    83718541    mov dx, bx                                ; 89 da
     
    83748544    mov AL, strict byte 004h                  ; b0 04
    83758545    out DX, AL                                ; ee
    8376     jmp short 05e0fh                          ; eb d5
     8546    jmp short 05fd2h                          ; eb d5
    83778547    mov dx, strict word 0006ch                ; ba 6c 00
    83788548    mov ax, strict word 00040h                ; b8 40 00
    8379     call 0166ch                               ; e8 29 b8
     8549    call 0166ch                               ; e8 66 b6
    83808550    mov si, ax                                ; 89 c6
    83818551    lea dx, [bx+005h]                         ; 8d 57 05
     
    83858555    and ax, strict word 00060h                ; 25 60 00
    83868556    cmp ax, strict word 00060h                ; 3d 60 00
    8387     je short 05e6ah                           ; 74 17
     8557    je short 0602dh                           ; 74 17
    83888558    test cl, cl                               ; 84 c9
    8389     je short 05e6ah                           ; 74 13
     8559    je short 0602dh                           ; 74 13
    83908560    mov dx, strict word 0006ch                ; ba 6c 00
    83918561    mov ax, strict word 00040h                ; b8 40 00
    8392     call 0166ch                               ; e8 0c b8
     8562    call 0166ch                               ; e8 49 b6
    83938563    cmp ax, si                                ; 39 f0
    8394     je short 05e45h                           ; 74 e1
     8564    je short 06008h                           ; 74 e1
    83958565    mov si, ax                                ; 89 c6
    83968566    db  0feh, 0c9h
    83978567    ; dec cl                                    ; fe c9
    8398     jmp short 05e45h                          ; eb db
     8568    jmp short 06008h                          ; eb db
    83998569    test cl, cl                               ; 84 c9
    8400     je short 05e74h                           ; 74 06
     8570    je short 06037h                           ; 74 06
    84018571    mov al, byte [bp+012h]                    ; 8a 46 12
    84028572    mov dx, bx                                ; 89 da
     
    84088578    mov byte [bp+013h], al                    ; 88 46 13
    84098579    test cl, cl                               ; 84 c9
    8410     jne short 05ec4h                          ; 75 43
     8580    jne short 06087h                          ; 75 43
    84118581    or AL, strict byte 080h                   ; 0c 80
    84128582    mov byte [bp+013h], al                    ; 88 46 13
    8413     jmp short 05ec4h                          ; eb 3c
     8583    jmp short 06087h                          ; eb 3c
    84148584    mov dx, strict word 0006ch                ; ba 6c 00
    84158585    mov ax, strict word 00040h                ; b8 40 00
    8416     call 0166ch                               ; e8 db b7
     8586    call 0166ch                               ; e8 18 b6
    84178587    mov si, ax                                ; 89 c6
    84188588    lea dx, [bx+005h]                         ; 8d 57 05
     
    84218591    ; sub ah, ah                                ; 2a e4
    84228592    test AL, strict byte 001h                 ; a8 01
    8423     jne short 05eb4h                          ; 75 17
     8593    jne short 06077h                          ; 75 17
    84248594    test cl, cl                               ; 84 c9
    8425     je short 05eb4h                           ; 74 13
     8595    je short 06077h                           ; 74 13
    84268596    mov dx, strict word 0006ch                ; ba 6c 00
    84278597    mov ax, strict word 00040h                ; b8 40 00
    8428     call 0166ch                               ; e8 c2 b7
     8598    call 0166ch                               ; e8 ff b5
    84298599    cmp ax, si                                ; 39 f0
    8430     je short 05e93h                           ; 74 e5
     8600    je short 06056h                           ; 74 e5
    84318601    mov si, ax                                ; 89 c6
    84328602    db  0feh, 0c9h
    84338603    ; dec cl                                    ; fe c9
    8434     jmp short 05e93h                          ; eb df
     8604    jmp short 06056h                          ; eb df
    84358605    test cl, cl                               ; 84 c9
    8436     je short 05ecah                           ; 74 12
     8606    je short 0608dh                           ; 74 12
    84378607    mov byte [bp+013h], 000h                  ; c6 46 13 00
    84388608    mov dx, bx                                ; 89 da
     
    84428612    mov byte [bp+012h], al                    ; 88 46 12
    84438613    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8444     jmp short 05eedh                          ; eb 23
     8614    jmp short 060b0h                          ; eb 23
    84458615    lea dx, [bx+005h]                         ; 8d 57 05
    84468616    in AL, DX                                 ; ec
    84478617    db  02ah, 0e4h
    84488618    ; sub ah, ah                                ; 2a e4
    8449     jmp short 05e83h                          ; eb b1
     8619    jmp short 06046h                          ; eb b1
    84508620    lea dx, [si+005h]                         ; 8d 54 05
    84518621    in AL, DX                                 ; ec
     
    84578627    db  02ah, 0e4h
    84588628    ; sub ah, ah                                ; 2a e4
    8459     jmp short 05ec1h                          ; eb de
     8629    jmp short 06084h                          ; eb de
    84608630    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8461     jmp short 05eedh                          ; eb 04
     8631    jmp short 060b0h                          ; eb 04
    84628632    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    84638633    lea sp, [bp-002h]                         ; 8d 66 fe
     
    84658635    pop bp                                    ; 5d
    84668636    retn                                      ; c3
    8467 set_enable_a20_:                             ; 0xf5ef3 LB 0x2c
     8637set_enable_a20_:                             ; 0xf60b6 LB 0x2c
    84688638    push bp                                   ; 55
    84698639    mov bp, sp                                ; 89 e5
     
    84788648    mov cl, al                                ; 88 c1
    84798649    test bx, bx                               ; 85 db
    8480     je short 05f0ch                           ; 74 05
     8650    je short 060cfh                           ; 74 05
    84818651    or AL, strict byte 002h                   ; 0c 02
    84828652    out DX, AL                                ; ee
    8483     jmp short 05f0fh                          ; eb 03
     8653    jmp short 060d2h                          ; eb 03
    84848654    and AL, strict byte 0fdh                  ; 24 fd
    84858655    out DX, AL                                ; ee
     
    84948664    pop bp                                    ; 5d
    84958665    retn                                      ; c3
    8496 set_e820_range_:                             ; 0xf5f1f LB 0x8c
     8666set_e820_range_:                             ; 0xf60e2 LB 0x8c
    84978667    push si                                   ; 56
    84988668    push bp                                   ; 55
     
    85238693    retn 0000ah                               ; c2 0a 00
    85248694    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    8525     db  000h, 04ah, 064h, 0eah, 05fh, 0fdh, 05fh, 092h, 060h, 098h, 060h, 09dh, 060h, 0a2h, 060h, 044h
    8526     db  061h, 0e1h, 062h, 007h, 063h, 08bh, 060h, 08bh, 060h, 0d4h, 063h, 0fch, 063h, 00fh, 064h, 01eh
    8527     db  064h, 092h, 060h, 025h, 064h
    8528 _int15_function:                             ; 0xf5fab LB 0x4cd
     8695    db  000h, 00dh, 066h, 0adh, 061h, 0c0h, 061h, 055h, 062h, 05bh, 062h, 060h, 062h, 065h, 062h, 007h
     8696    db  063h, 0a4h, 064h, 0cah, 064h, 04eh, 062h, 04eh, 062h, 097h, 065h, 0bfh, 065h, 0d2h, 065h, 0e1h
     8697    db  065h, 055h, 062h, 0e8h, 065h
     8698_int15_function:                             ; 0xf616e LB 0x4cd
    85298699    push bp                                   ; 55
    85308700    mov bp, sp                                ; 89 e5
     
    85368706    shr ax, 008h                              ; c1 e8 08
    85378707    cmp ax, 000ech                            ; 3d ec 00
    8538     jnbe near 0644ah                          ; 0f 87 8b 04
     8708    jnbe near 0660dh                          ; 0f 87 8b 04
    85398709    push CS                                   ; 0e
    85408710    pop ES                                    ; 07
    85418711    mov cx, strict word 00012h                ; b9 12 00
    8542     mov di, 05f76h                            ; bf 76 5f
     8712    mov di, 06139h                            ; bf 39 61
    85438713    repne scasb                               ; f2 ae
    85448714    sal cx, 1                                 ; d1 e1
    85458715    mov di, cx                                ; 89 cf
    8546     mov si, word [cs:di+05f87h]               ; 2e 8b b5 87 5f
     8716    mov si, word [cs:di+0614ah]               ; 2e 8b b5 4a 61
    85478717    mov ax, word [bp+012h]                    ; 8b 46 12
    85488718    xor ah, ah                                ; 30 e4
     
    85578727    xor ah, ah                                ; 30 e4
    85588728    cmp ax, 000c0h                            ; 3d c0 00
    8559     jne near 0644ah                           ; 0f 85 54 04
     8729    jne near 0660dh                           ; 0f 85 54 04
    85608730    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8561     jmp near 063f3h                           ; e9 f6 03
     8731    jmp near 065b6h                           ; e9 f6 03
    85628732    mov dx, ax                                ; 89 c2
    85638733    cmp ax, strict word 00001h                ; 3d 01 00
    8564     jc short 06012h                           ; 72 0e
    8565     jbe short 06026h                          ; 76 20
     8734    jc short 061d5h                           ; 72 0e
     8735    jbe short 061e9h                          ; 76 20
    85668736    cmp ax, strict word 00003h                ; 3d 03 00
    8567     je short 06053h                           ; 74 48
     8737    je short 06216h                           ; 74 48
    85688738    cmp ax, strict word 00002h                ; 3d 02 00
    8569     je short 06036h                           ; 74 26
    8570     jmp short 06060h                          ; eb 4e
     8739    je short 061f9h                           ; 74 26
     8740    jmp short 06223h                          ; eb 4e
    85718741    test ax, ax                               ; 85 c0
    8572     jne short 06060h                          ; 75 4a
     8742    jne short 06223h                          ; 75 4a
    85738743    xor ax, ax                                ; 31 c0
    8574     call 05ef3h                               ; e8 d8 fe
     8744    call 060b6h                               ; e8 d8 fe
    85758745    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85768746    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8577     jmp near 0608bh                           ; e9 65 00
     8747    jmp near 0624eh                           ; e9 65 00
    85788748    mov ax, strict word 00001h                ; b8 01 00
    8579     call 05ef3h                               ; e8 c7 fe
     8749    call 060b6h                               ; e8 c7 fe
    85808750    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85818751    mov byte [bp+013h], dh                    ; 88 76 13
    8582     jmp near 0608bh                           ; e9 55 00
     8752    jmp near 0624eh                           ; e9 55 00
    85838753    mov dx, 00092h                            ; ba 92 00
    85848754    in AL, DX                                 ; ec
     
    85928762    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85938763    mov byte [bp+013h], ah                    ; 88 66 13
    8594     jmp near 0608bh                           ; e9 38 00
     8764    jmp near 0624eh                           ; e9 38 00
    85958765    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85968766    mov byte [bp+013h], ah                    ; 88 66 13
    85978767    mov word [bp+00ch], ax                    ; 89 46 0c
    8598     jmp near 0608bh                           ; e9 2b 00
    8599     mov bx, 00da2h                            ; bb a2 0d
     8768    jmp near 0624eh                           ; e9 2b 00
     8769    mov bx, 00da8h                            ; bb a8 0d
    86008770    mov cx, ds                                ; 8c d9
    86018771    mov ax, strict word 00004h                ; b8 04 00
    8602     call 01931h                               ; e8 c6 b8
     8772    call 01931h                               ; e8 03 b7
    86038773    mov ax, word [bp+012h]                    ; 8b 46 12
    86048774    xor ah, ah                                ; 30 e4
     
    86068776    push 00836h                               ; 68 36 08
    86078777    push strict byte 00004h                   ; 6a 04
    8608     call 01972h                               ; e8 f9 b8
     8778    call 01972h                               ; e8 36 b7
    86098779    add sp, strict byte 00006h                ; 83 c4 06
    86108780    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    86198789    retn                                      ; c3
    86208790    mov word [bp+018h], bx                    ; 89 5e 18
    8621     jmp near 0613eh                           ; e9 a6 00
     8791    jmp near 06301h                           ; e9 a6 00
    86228792    mov word [bp+018h], bx                    ; 89 5e 18
    8623     jmp short 0608bh                          ; eb ee
     8793    jmp short 0624eh                          ; eb ee
    86248794    mov word [bp+018h], cx                    ; 89 4e 18
    8625     jmp short 06088h                          ; eb e6
     8795    jmp short 0624bh                          ; eb e6
    86268796    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8627     je short 06114h                           ; 74 6c
     8797    je short 062d7h                           ; 74 6c
    86288798    mov dx, 000a0h                            ; ba a0 00
    86298799    mov ax, strict word 00040h                ; b8 40 00
    8630     call 01650h                               ; e8 9f b5
     8800    call 01650h                               ; e8 dc b3
    86318801    test AL, strict byte 001h                 ; a8 01
    8632     jne near 063eah                           ; 0f 85 33 03
     8802    jne near 065adh                           ; 0f 85 33 03
    86338803    mov bx, strict word 00001h                ; bb 01 00
    86348804    mov dx, 000a0h                            ; ba a0 00
    86358805    mov ax, strict word 00040h                ; b8 40 00
    8636     call 0165eh                               ; e8 9b b5
     8806    call 0165eh                               ; e8 d8 b3
    86378807    mov bx, word [bp+014h]                    ; 8b 5e 14
    86388808    mov dx, 00098h                            ; ba 98 00
    86398809    mov ax, strict word 00040h                ; b8 40 00
    8640     call 0167ah                               ; e8 ab b5
     8810    call 0167ah                               ; e8 e8 b3
    86418811    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    86428812    mov dx, 0009ah                            ; ba 9a 00
    86438813    mov ax, strict word 00040h                ; b8 40 00
    8644     call 0167ah                               ; e8 9f b5
     8814    call 0167ah                               ; e8 dc b3
    86458815    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    86468816    mov dx, 0009ch                            ; ba 9c 00
    86478817    mov ax, strict word 00040h                ; b8 40 00
    8648     call 0167ah                               ; e8 93 b5
     8818    call 0167ah                               ; e8 d0 b3
    86498819    mov bx, word [bp+010h]                    ; 8b 5e 10
    86508820    mov dx, 0009eh                            ; ba 9e 00
    86518821    mov ax, strict word 00040h                ; b8 40 00
    8652     call 0167ah                               ; e8 87 b5
     8822    call 0167ah                               ; e8 c4 b3
    86538823    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    86548824    mov dx, 000a1h                            ; ba a1 00
     
    86598829    out DX, AL                                ; ee
    86608830    mov ax, strict word 0000bh                ; b8 0b 00
    8661     call 016ach                               ; e8 a6 b5
     8831    call 016ach                               ; e8 e3 b3
    86628832    or AL, strict byte 040h                   ; 0c 40
    86638833    movzx dx, al                              ; 0f b6 d0
    86648834    mov ax, strict word 0000bh                ; b8 0b 00
    8665     call 016c9h                               ; e8 b8 b5
    8666     jmp near 0608bh                           ; e9 77 ff
     8835    call 016c9h                               ; e8 f5 b3
     8836    jmp near 0624eh                           ; e9 77 ff
    86678837    cmp ax, strict word 00001h                ; 3d 01 00
    8668     jne short 06132h                          ; 75 19
     8838    jne short 062f5h                          ; 75 19
    86698839    xor bx, bx                                ; 31 db
    86708840    mov dx, 000a0h                            ; ba a0 00
    86718841    mov ax, strict word 00040h                ; b8 40 00
    8672     call 0165eh                               ; e8 3a b5
     8842    call 0165eh                               ; e8 77 b3
    86738843    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    86748844    mov ax, strict word 0000bh                ; b8 0b 00
    8675     call 016ach                               ; e8 7e b5
     8845    call 016ach                               ; e8 bb b3
    86768846    and AL, strict byte 0bfh                  ; 24 bf
    8677     jmp short 06108h                          ; eb d6
     8847    jmp short 062cbh                          ; eb d6
    86788848    mov word [bp+018h], bx                    ; 89 5e 18
    86798849    mov ax, dx                                ; 89 d0
     
    86838853    or dx, ax                                 ; 09 c2
    86848854    mov word [bp+012h], dx                    ; 89 56 12
    8685     jmp near 0608bh                           ; e9 47 ff
     8855    jmp near 0624eh                           ; e9 47 ff
    86868856    cli                                       ; fa
    86878857    mov ax, strict word 00001h                ; b8 01 00
    8688     call 05ef3h                               ; e8 a8 fd
     8858    call 060b6h                               ; e8 a8 fd
    86898859    mov di, ax                                ; 89 c7
    86908860    mov ax, word [bp+014h]                    ; 8b 46 14
     
    86968866    mov byte [bp-006h], dl                    ; 88 56 fa
    86978867    cmp cx, ax                                ; 39 c1
    8698     jnc short 0616ah                          ; 73 05
     8868    jnc short 0632dh                          ; 73 05
    86998869    db  0feh, 0c2h
    87008870    ; inc dl                                    ; fe c2
     
    87048874    mov ax, word [bp+014h]                    ; 8b 46 14
    87058875    mov bx, strict word 0002fh                ; bb 2f 00
    8706     call 0167ah                               ; e8 01 b5
     8876    call 0167ah                               ; e8 3e b3
    87078877    mov dx, word [bp+006h]                    ; 8b 56 06
    87088878    add dx, strict byte 0000ah                ; 83 c2 0a
    87098879    mov ax, word [bp+014h]                    ; 8b 46 14
    87108880    mov bx, cx                                ; 89 cb
    8711     call 0167ah                               ; e8 f3 b4
     8881    call 0167ah                               ; e8 30 b3
    87128882    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    87138883    mov dx, word [bp+006h]                    ; 8b 56 06
    87148884    add dx, strict byte 0000ch                ; 83 c2 0c
    87158885    mov ax, word [bp+014h]                    ; 8b 46 14
    8716     call 0165eh                               ; e8 c7 b4
     8886    call 0165eh                               ; e8 04 b3
    87178887    mov dx, word [bp+006h]                    ; 8b 56 06
    87188888    add dx, strict byte 0000dh                ; 83 c2 0d
    87198889    mov ax, word [bp+014h]                    ; 8b 46 14
    87208890    mov bx, 00093h                            ; bb 93 00
    8721     call 0165eh                               ; e8 b8 b4
     8891    call 0165eh                               ; e8 f5 b2
    87228892    mov dx, word [bp+006h]                    ; 8b 56 06
    87238893    add dx, strict byte 0000eh                ; 83 c2 0e
    87248894    mov ax, word [bp+014h]                    ; 8b 46 14
    87258895    xor bx, bx                                ; 31 db
    8726     call 0167ah                               ; e8 c6 b4
     8896    call 0167ah                               ; e8 03 b3
    87278897    mov dx, word [bp+006h]                    ; 8b 56 06
    87288898    add dx, strict byte 00020h                ; 83 c2 20
    87298899    mov ax, word [bp+014h]                    ; 8b 46 14
    87308900    mov bx, strict word 0ffffh                ; bb ff ff
    8731     call 0167ah                               ; e8 b7 b4
     8901    call 0167ah                               ; e8 f4 b2
    87328902    mov dx, word [bp+006h]                    ; 8b 56 06
    87338903    add dx, strict byte 00022h                ; 83 c2 22
    87348904    mov ax, word [bp+014h]                    ; 8b 46 14
    87358905    xor bx, bx                                ; 31 db
    8736     call 0167ah                               ; e8 a9 b4
     8906    call 0167ah                               ; e8 e6 b2
    87378907    mov dx, word [bp+006h]                    ; 8b 56 06
    87388908    add dx, strict byte 00024h                ; 83 c2 24
    87398909    mov ax, word [bp+014h]                    ; 8b 46 14
    87408910    mov bx, strict word 0000fh                ; bb 0f 00
    8741     call 0165eh                               ; e8 7e b4
     8911    call 0165eh                               ; e8 bb b2
    87428912    mov dx, word [bp+006h]                    ; 8b 56 06
    87438913    add dx, strict byte 00025h                ; 83 c2 25
    87448914    mov ax, word [bp+014h]                    ; 8b 46 14
    87458915    mov bx, 0009bh                            ; bb 9b 00
    8746     call 0165eh                               ; e8 6f b4
     8916    call 0165eh                               ; e8 ac b2
    87478917    mov dx, word [bp+006h]                    ; 8b 56 06
    87488918    add dx, strict byte 00026h                ; 83 c2 26
    87498919    mov ax, word [bp+014h]                    ; 8b 46 14
    87508920    xor bx, bx                                ; 31 db
    8751     call 0167ah                               ; e8 7d b4
     8921    call 0167ah                               ; e8 ba b2
    87528922    mov ax, ss                                ; 8c d0
    87538923    mov cx, ax                                ; 89 c1
     
    87598929    mov ax, word [bp+014h]                    ; 8b 46 14
    87608930    mov bx, strict word 0ffffh                ; bb ff ff
    8761     call 0167ah                               ; e8 61 b4
     8931    call 0167ah                               ; e8 9e b2
    87628932    mov dx, word [bp+006h]                    ; 8b 56 06
    87638933    add dx, strict byte 0002ah                ; 83 c2 2a
    87648934    mov ax, word [bp+014h]                    ; 8b 46 14
    87658935    mov bx, cx                                ; 89 cb
    8766     call 0167ah                               ; e8 53 b4
     8936    call 0167ah                               ; e8 90 b2
    87678937    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    87688938    mov dx, word [bp+006h]                    ; 8b 56 06
    87698939    add dx, strict byte 0002ch                ; 83 c2 2c
    87708940    mov ax, word [bp+014h]                    ; 8b 46 14
    8771     call 0165eh                               ; e8 27 b4
     8941    call 0165eh                               ; e8 64 b2
    87728942    mov dx, word [bp+006h]                    ; 8b 56 06
    87738943    add dx, strict byte 0002dh                ; 83 c2 2d
    87748944    mov ax, word [bp+014h]                    ; 8b 46 14
    87758945    mov bx, 00093h                            ; bb 93 00
    8776     call 0165eh                               ; e8 18 b4
     8946    call 0165eh                               ; e8 55 b2
    87778947    mov dx, word [bp+006h]                    ; 8b 56 06
    87788948    add dx, strict byte 0002eh                ; 83 c2 2e
    87798949    mov ax, word [bp+014h]                    ; 8b 46 14
    87808950    xor bx, bx                                ; 31 db
    8781     call 0167ah                               ; e8 26 b4
     8951    call 0167ah                               ; e8 63 b2
    87828952    mov si, word [bp+006h]                    ; 8b 76 06
    87838953    mov es, [bp+014h]                         ; 8e 46 14
     
    87908960    mov word [00467h], sp                     ; 89 26 67 04
    87918961    mov [00469h], ss                          ; 8c 16 69 04
    8792     call 06270h                               ; e8 00 00
     8962    call 06433h                               ; e8 00 00
    87938963    pop di                                    ; 5f
    87948964    add di, strict byte 0001bh                ; 83 c7 1b
     
    88138983    cld                                       ; fc
    88148984    rep movsw                                 ; f3 a5
    8815     call 062a4h                               ; e8 00 00
     8985    call 06467h                               ; e8 00 00
    88168986    pop ax                                    ; 58
    88178987    push 0f000h                               ; 68 00 f0
     
    88349004    pop DS                                    ; 1f
    88359005    mov ax, di                                ; 89 f8
    8836     call 05ef3h                               ; e8 1e fc
     9006    call 060b6h                               ; e8 1e fc
    88379007    sti                                       ; fb
    88389008    mov byte [bp+013h], 000h                  ; c6 46 13 00
    88399009    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    8840     jmp near 0608bh                           ; e9 aa fd
     9010    jmp near 0624eh                           ; e9 aa fd
    88419011    mov ax, strict word 00031h                ; b8 31 00
    8842     call 016ach                               ; e8 c5 b3
     9012    call 016ach                               ; e8 02 b2
    88439013    xor ah, ah                                ; 30 e4
    88449014    mov dx, ax                                ; 89 c2
    88459015    sal dx, 008h                              ; c1 e2 08
    88469016    mov ax, strict word 00030h                ; b8 30 00
    8847     call 016ach                               ; e8 b8 b3
     9017    call 016ach                               ; e8 f5 b1
    88489018    xor ah, ah                                ; 30 e4
    88499019    or dx, ax                                 ; 09 c2
    88509020    mov word [bp+012h], dx                    ; 89 56 12
    88519021    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8852     jbe short 062dah                          ; 76 da
     9022    jbe short 0649dh                          ; 76 da
    88539023    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    8854     jmp short 062dah                          ; eb d3
     9024    jmp short 0649dh                          ; eb d3
    88559025    cli                                       ; fa
    88569026    mov ax, strict word 00001h                ; b8 01 00
    8857     call 05ef3h                               ; e8 e5 fb
     9027    call 060b6h                               ; e8 e5 fb
    88589028    mov dx, word [bp+006h]                    ; 8b 56 06
    88599029    add dx, strict byte 00038h                ; 83 c2 38
    88609030    mov ax, word [bp+014h]                    ; 8b 46 14
    88619031    mov bx, strict word 0ffffh                ; bb ff ff
    8862     call 0167ah                               ; e8 5d b3
     9032    call 0167ah                               ; e8 9a b1
    88639033    mov dx, word [bp+006h]                    ; 8b 56 06
    88649034    add dx, strict byte 0003ah                ; 83 c2 3a
    88659035    mov ax, word [bp+014h]                    ; 8b 46 14
    88669036    xor bx, bx                                ; 31 db
    8867     call 0167ah                               ; e8 4f b3
     9037    call 0167ah                               ; e8 8c b1
    88689038    mov dx, word [bp+006h]                    ; 8b 56 06
    88699039    add dx, strict byte 0003ch                ; 83 c2 3c
    88709040    mov ax, word [bp+014h]                    ; 8b 46 14
    88719041    mov bx, strict word 0000fh                ; bb 0f 00
    8872     call 0165eh                               ; e8 24 b3
     9042    call 0165eh                               ; e8 61 b1
    88739043    mov dx, word [bp+006h]                    ; 8b 56 06
    88749044    add dx, strict byte 0003dh                ; 83 c2 3d
    88759045    mov ax, word [bp+014h]                    ; 8b 46 14
    88769046    mov bx, 0009bh                            ; bb 9b 00
    8877     call 0165eh                               ; e8 15 b3
     9047    call 0165eh                               ; e8 52 b1
    88789048    mov dx, word [bp+006h]                    ; 8b 56 06
    88799049    add dx, strict byte 0003eh                ; 83 c2 3e
    88809050    mov ax, word [bp+014h]                    ; 8b 46 14
    88819051    xor bx, bx                                ; 31 db
    8882     call 0167ah                               ; e8 23 b3
     9052    call 0167ah                               ; e8 60 b1
    88839053    mov AL, strict byte 011h                  ; b0 11
    88849054    mov dx, strict word 00020h                ; ba 20 00
     
    89109080    out DX, AL                                ; ee
    89119081    mov si, word [bp+006h]                    ; 8b 76 06
    8912     call 06398h                               ; e8 00 00
     9082    call 0655bh                               ; e8 00 00
    89139083    pop di                                    ; 5f
    89149084    add di, strict byte 00018h                ; 83 c7 18
     
    89389108    push cx                                   ; 51
    89399109    retf                                      ; cb
    8940     jmp near 0608bh                           ; e9 b7 fc
    8941     mov bx, 00da2h                            ; bb a2 0d
     9110    jmp near 0624eh                           ; e9 b7 fc
     9111    mov bx, 00da8h                            ; bb a8 0d
    89429112    mov cx, ds                                ; 8c d9
    89439113    mov ax, strict word 00004h                ; b8 04 00
    8944     call 01931h                               ; e8 52 b5
     9114    call 01931h                               ; e8 8f b3
    89459115    push 00876h                               ; 68 76 08
    89469116    push strict byte 00004h                   ; 6a 04
    8947     call 01972h                               ; e8 8b b5
     9117    call 01972h                               ; e8 c8 b3
    89489118    add sp, strict byte 00004h                ; 83 c4 04
    89499119    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    89529122    or ah, 086h                               ; 80 cc 86
    89539123    mov word [bp+012h], ax                    ; 89 46 12
    8954     jmp near 0608bh                           ; e9 8f fc
     9124    jmp near 0624eh                           ; e9 8f fc
    89559125    mov word [bp+018h], cx                    ; 89 4e 18
    89569126    mov word [bp+012h], ax                    ; 89 46 12
    89579127    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    89589128    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    8959     jmp near 0608bh                           ; e9 7c fc
     9129    jmp near 0624eh                           ; e9 7c fc
    89609130    mov dx, strict word 0000eh                ; ba 0e 00
    89619131    mov ax, strict word 00040h                ; b8 40 00
    8962     call 0166ch                               ; e8 54 b2
     9132    call 0166ch                               ; e8 91 b0
    89639133    mov word [bp+014h], ax                    ; 89 46 14
    8964     jmp near 062dah                           ; e9 bc fe
     9134    jmp near 0649dh                           ; e9 bc fe
    89659135    push 008a5h                               ; 68 a5 08
    89669136    push strict byte 00008h                   ; 6a 08
    8967     jmp short 063e4h                          ; eb bf
     9137    jmp short 065a7h                          ; eb bf
    89689138    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8969     jne short 0644ah                          ; 75 1f
     9139    jne short 0660dh                          ; 75 1f
    89709140    mov word [bp+012h], ax                    ; 89 46 12
    89719141    mov ax, word [bp+00ch]                    ; 8b 46 0c
    89729142    xor ah, ah                                ; 30 e4
    89739143    cmp ax, strict word 00001h                ; 3d 01 00
    8974     jc short 06443h                           ; 72 0b
     9144    jc short 06606h                           ; 72 0b
    89759145    cmp ax, strict word 00003h                ; 3d 03 00
    8976     jnbe short 06443h                         ; 77 06
     9146    jnbe short 06606h                         ; 77 06
    89779147    mov word [bp+018h], cx                    ; 89 4e 18
    8978     jmp near 0608bh                           ; e9 48 fc
     9148    jmp near 0624eh                           ; e9 48 fc
    89799149    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8980     jmp near 0608bh                           ; e9 41 fc
    8981     mov bx, 00da2h                            ; bb a2 0d
     9150    jmp near 0624eh                           ; e9 41 fc
     9151    mov bx, 00da8h                            ; bb a8 0d
    89829152    mov cx, ds                                ; 8c d9
    89839153    mov ax, strict word 00004h                ; b8 04 00
    8984     call 01931h                               ; e8 dc b4
     9154    call 01931h                               ; e8 19 b3
    89859155    push word [bp+00ch]                       ; ff 76 0c
    89869156    push word [bp+012h]                       ; ff 76 12
    89879157    push 008bch                               ; 68 bc 08
    89889158    push strict byte 00004h                   ; 6a 04
    8989     call 01972h                               ; e8 0f b5
     9159    call 01972h                               ; e8 4c b3
    89909160    add sp, strict byte 00008h                ; 83 c4 08
    8991     jmp short 063eah                          ; eb 82
    8992     db  021h, 066h, 043h, 066h, 066h, 066h, 088h, 066h, 0a8h, 066h, 0c9h, 066h, 008h, 067h, 034h, 067h
    8993 _int15_function32:                           ; 0xf6478 LB 0x37e
     9161    jmp short 065adh                          ; eb 82
     9162    in AL, strict byte 067h                   ; e4 67
     9163    push ES                                   ; 06
     9164    push 06829h                               ; 68 29 68
     9165    dec bx                                    ; 4b
     9166    push 0686bh                               ; 68 6b 68
     9167    mov [bx+si-035h], gs                      ; 8c 68 cb
     9168    push 068f7h                               ; 68 f7 68
     9169_int15_function32:                           ; 0xf663b LB 0x37e
    89949170    push bp                                   ; 55
    89959171    mov bp, sp                                ; 89 e5
     
    90039179    xor ah, ah                                ; 30 e4
    90049180    cmp dx, 000e8h                            ; 81 fa e8 00
    9005     je near 06545h                            ; 0f 84 ad 00
     9181    je near 06708h                            ; 0f 84 ad 00
    90069182    cmp dx, 000d0h                            ; 81 fa d0 00
    9007     je short 064e0h                           ; 74 42
     9183    je short 066a3h                           ; 74 42
    90089184    cmp dx, 00086h                            ; 81 fa 86 00
    9009     jne near 067c6h                           ; 0f 85 20 03
     9185    jne near 06989h                           ; 0f 85 20 03
    90109186    sti                                       ; fb
    90119187    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    90269202    db  066h, 00bh, 0c9h
    90279203    ; or ecx, ecx                               ; 66 0b c9
    9028     je near 064ddh                            ; 0f 84 0e 00
     9204    je near 066a0h                            ; 0f 84 0e 00
    90299205    in AL, strict byte 061h                   ; e4 61
    90309206    and AL, strict byte 010h                  ; 24 10
    90319207    db  03ah, 0c4h
    90329208    ; cmp al, ah                                ; 3a c4
    9033     je short 064cfh                           ; 74 f8
     9209    je short 06692h                           ; 74 f8
    90349210    db  08ah, 0e0h
    90359211    ; mov ah, al                                ; 8a e0
    90369212    dec ecx                                   ; 66 49
    9037     jne short 064cfh                          ; 75 f2
    9038     jmp near 067f0h                           ; e9 10 03
     9213    jne short 06692h                          ; 75 f2
     9214    jmp near 069b3h                           ; e9 10 03
    90399215    cmp ax, strict word 0004fh                ; 3d 4f 00
    9040     jne near 067c6h                           ; 0f 85 df 02
     9216    jne near 06989h                           ; 0f 85 df 02
    90419217    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9042     jne near 067c6h                           ; 0f 85 d6 02
     9218    jne near 06989h                           ; 0f 85 d6 02
    90439219    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9044     jne near 067c6h                           ; 0f 85 cd 02
     9220    jne near 06989h                           ; 0f 85 cd 02
    90459221    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9046     jne near 067c6h                           ; 0f 85 c4 02
     9222    jne near 06989h                           ; 0f 85 c4 02
    90479223    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9048     jne near 067c6h                           ; 0f 85 bb 02
     9224    jne near 06989h                           ; 0f 85 bb 02
    90499225    mov ax, word [bp+00ah]                    ; 8b 46 0a
    90509226    or ax, word [bp+008h]                     ; 0b 46 08
    9051     jne near 067c6h                           ; 0f 85 b1 02
     9227    jne near 06989h                           ; 0f 85 b1 02
    90529228    mov ax, word [bp+006h]                    ; 8b 46 06
    90539229    or ax, word [bp+004h]                     ; 0b 46 04
    9054     jne near 067c6h                           ; 0f 85 a7 02
     9230    jne near 06989h                           ; 0f 85 a7 02
    90559231    mov word [bp+028h], bx                    ; 89 5e 28
    90569232    mov ax, word [bp+014h]                    ; 8b 46 14
     
    90639239    mov word [bp+006h], ax                    ; 89 46 06
    90649240    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9065     jmp near 067f0h                           ; e9 ab 02
     9241    jmp near 069b3h                           ; e9 ab 02
    90669242    cmp ax, strict word 00020h                ; 3d 20 00
    9067     je short 06554h                           ; 74 0a
     9243    je short 06717h                           ; 74 0a
    90689244    cmp ax, strict word 00001h                ; 3d 01 00
    9069     je near 0677bh                            ; 0f 84 2a 02
    9070     jmp near 067c6h                           ; e9 72 02
     9245    je near 0693eh                            ; 0f 84 2a 02
     9246    jmp near 06989h                           ; e9 72 02
    90719247    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9072     jne near 067c6h                           ; 0f 85 69 02
     9248    jne near 06989h                           ; 0f 85 69 02
    90739249    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9074     jne near 067c6h                           ; 0f 85 60 02
     9250    jne near 06989h                           ; 0f 85 60 02
    90759251    mov ax, strict word 00035h                ; b8 35 00
    9076     call 016ach                               ; e8 40 b1
     9252    call 016ach                               ; e8 7d af
    90779253    movzx bx, al                              ; 0f b6 d8
    90789254    xor dx, dx                                ; 31 d2
     
    90809256    sal bx, 1                                 ; d1 e3
    90819257    rcl dx, 1                                 ; d1 d2
    9082     loop 06574h                               ; e2 fa
     9258    loop 06737h                               ; e2 fa
    90839259    mov ax, strict word 00034h                ; b8 34 00
    9084     call 016ach                               ; e8 2c b1
     9260    call 016ach                               ; e8 69 af
    90859261    xor ah, ah                                ; 30 e4
    90869262    mov dx, bx                                ; 89 da
     
    90909266    adc dx, 00100h                            ; 81 d2 00 01
    90919267    cmp dx, 00100h                            ; 81 fa 00 01
    9092     jc short 0659ah                           ; 72 06
    9093     jne short 065c7h                          ; 75 31
     9268    jc short 0675dh                           ; 72 06
     9269    jne short 0678ah                          ; 75 31
    90949270    test bx, bx                               ; 85 db
    9095     jnbe short 065c7h                         ; 77 2d
     9271    jnbe short 0678ah                         ; 77 2d
    90969272    mov ax, strict word 00031h                ; b8 31 00
    9097     call 016ach                               ; e8 0c b1
     9273    call 016ach                               ; e8 49 af
    90989274    movzx bx, al                              ; 0f b6 d8
    90999275    xor dx, dx                                ; 31 d2
     
    91019277    sal bx, 1                                 ; d1 e3
    91029278    rcl dx, 1                                 ; d1 d2
    9103     loop 065a8h                               ; e2 fa
     9279    loop 0676bh                               ; e2 fa
    91049280    mov ax, strict word 00030h                ; b8 30 00
    9105     call 016ach                               ; e8 f8 b0
     9281    call 016ach                               ; e8 35 af
    91069282    xor ah, ah                                ; 30 e4
    91079283    or bx, ax                                 ; 09 c3
     
    91099285    sal bx, 1                                 ; d1 e3
    91109286    rcl dx, 1                                 ; d1 d2
    9111     loop 065bbh                               ; e2 fa
     9287    loop 0677eh                               ; e2 fa
    91129288    add bx, strict byte 00000h                ; 83 c3 00
    91139289    adc dx, strict byte 00010h                ; 83 d2 10
    91149290    mov ax, strict word 00062h                ; b8 62 00
    9115     call 016ach                               ; e8 df b0
     9291    call 016ach                               ; e8 1c af
    91169292    xor ah, ah                                ; 30 e4
    91179293    mov word [bp-00ah], ax                    ; 89 46 f6
     
    91219297    sal word [bp-00ah], 1                     ; d1 66 f6
    91229298    rcl word [bp-008h], 1                     ; d1 56 f8
    9123     loop 065dah                               ; e2 f8
     9299    loop 0679dh                               ; e2 f8
    91249300    mov ax, strict word 00061h                ; b8 61 00
    9125     call 016ach                               ; e8 c4 b0
     9301    call 016ach                               ; e8 01 af
    91269302    xor ah, ah                                ; 30 e4
    91279303    or word [bp-00ah], ax                     ; 09 46 f6
     
    91309306    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    91319307    mov ax, strict word 00063h                ; b8 63 00
    9132     call 016ach                               ; e8 ae b0
     9308    call 016ach                               ; e8 eb ae
    91339309    mov byte [bp-004h], al                    ; 88 46 fc
    91349310    mov byte [bp-006h], al                    ; 88 46 fa
    91359311    mov ax, word [bp+014h]                    ; 8b 46 14
    91369312    cmp ax, strict word 00007h                ; 3d 07 00
    9137     jnbe near 067c6h                          ; 0f 87 b8 01
     9313    jnbe near 06989h                          ; 0f 87 b8 01
    91389314    mov si, ax                                ; 89 c6
    91399315    add si, ax                                ; 01 c6
     
    91429318    mov ax, dx                                ; 89 d0
    91439319    adc ax, strict word 0ffffh                ; 15 ff ff
    9144     jmp word [cs:si+06468h]                   ; 2e ff a4 68 64
     9320    jmp word [cs:si+0662bh]                   ; 2e ff a4 2b 66
    91459321    push strict byte 00001h                   ; 6a 01
    91469322    push dword 000000000h                     ; 66 6a 00
     
    91519327    xor bx, bx                                ; 31 db
    91529328    xor cx, cx                                ; 31 c9
    9153     call 05f1fh                               ; e8 e7 f8
     9329    call 060e2h                               ; e8 e7 f8
    91549330    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9155     jmp near 06765h                           ; e9 22 01
     9331    jmp near 06928h                           ; e9 22 01
    91569332    push strict byte 00002h                   ; 6a 02
    91579333    push dword 000000000h                     ; 66 6a 00
     
    91629338    mov bx, 0fc00h                            ; bb 00 fc
    91639339    mov cx, strict word 00009h                ; b9 09 00
    9164     call 05f1fh                               ; e8 c4 f8
     9340    call 060e2h                               ; e8 c4 f8
    91659341    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9166     jmp near 06765h                           ; e9 ff 00
     9342    jmp near 06928h                           ; e9 ff 00
    91679343    push strict byte 00002h                   ; 6a 02
    91689344    push dword 000000000h                     ; 66 6a 00
     
    91739349    xor bx, bx                                ; 31 db
    91749350    mov cx, strict word 0000fh                ; b9 0f 00
    9175     call 05f1fh                               ; e8 a2 f8
     9351    call 060e2h                               ; e8 a2 f8
    91769352    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9177     jmp near 06765h                           ; e9 dd 00
     9353    jmp near 06928h                           ; e9 dd 00
    91789354    push strict byte 00001h                   ; 6a 01
    91799355    push dword 000000000h                     ; 66 6a 00
     
    91849360    xor bx, bx                                ; 31 db
    91859361    mov cx, strict word 00010h                ; b9 10 00
    9186     call 05f1fh                               ; e8 82 f8
     9362    call 060e2h                               ; e8 82 f8
    91879363    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9188     jmp near 06765h                           ; e9 bd 00
     9364    jmp near 06928h                           ; e9 bd 00
    91899365    push strict byte 00003h                   ; 6a 03
    91909366    push dword 000000000h                     ; 66 6a 00
     
    91969372    mov cx, ax                                ; 89 c1
    91979373    mov ax, si                                ; 89 f0
    9198     call 05f1fh                               ; e8 61 f8
     9374    call 060e2h                               ; e8 61 f8
    91999375    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9200     jmp near 06765h                           ; e9 9c 00
     9376    jmp near 06928h                           ; e9 9c 00
    92019377    push strict byte 00002h                   ; 6a 02
    92029378    push dword 000000000h                     ; 66 6a 00
     
    92069382    xor bx, bx                                ; 31 db
    92079383    mov cx, strict word 0fffch                ; b9 fc ff
    9208     call 05f1fh                               ; e8 40 f8
     9384    call 060e2h                               ; e8 40 f8
    92099385    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9210     jne short 066ech                          ; 75 07
     9386    jne short 068afh                          ; 75 07
    92119387    mov ax, word [bp-008h]                    ; 8b 46 f8
    92129388    test ax, ax                               ; 85 c0
    9213     je short 06700h                           ; 74 14
     9389    je short 068c3h                           ; 74 14
    92149390    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9215     jmp short 06765h                          ; eb 6f
     9391    jmp short 06928h                          ; eb 6f
    92169392    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9217     jmp short 06765h                          ; eb 65
     9393    jmp short 06928h                          ; eb 65
    92189394    mov word [bp+014h], ax                    ; 89 46 14
    92199395    mov word [bp+016h], ax                    ; 89 46 16
    9220     jmp short 06765h                          ; eb 5d
     9396    jmp short 06928h                          ; eb 5d
    92219397    push strict byte 00002h                   ; 6a 02
    92229398    push dword 000000000h                     ; 66 6a 00
     
    92269402    xor bx, bx                                ; 31 db
    92279403    xor cx, cx                                ; 31 c9
    9228     call 05f1fh                               ; e8 02 f8
     9404    call 060e2h                               ; e8 02 f8
    92299405    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9230     jne short 0672ah                          ; 75 07
     9406    jne short 068edh                          ; 75 07
    92319407    mov ax, word [bp-008h]                    ; 8b 46 f8
    92329408    test ax, ax                               ; 85 c0
    9233     je short 0672ch                           ; 74 02
    9234     jmp short 066ech                          ; eb c0
     9409    je short 068efh                           ; 74 02
     9410    jmp short 068afh                          ; eb c0
    92359411    mov word [bp+014h], ax                    ; 89 46 14
    92369412    mov word [bp+016h], ax                    ; 89 46 16
    9237     jmp short 06765h                          ; eb 31
     9413    jmp short 06928h                          ; eb 31
    92389414    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9239     jne short 06740h                          ; 75 06
     9415    jne short 06903h                          ; 75 06
    92409416    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9241     je short 06765h                           ; 74 25
     9417    je short 06928h                           ; 74 25
    92429418    push strict byte 00001h                   ; 6a 01
    92439419    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    92529428    xor bx, bx                                ; 31 db
    92539429    xor cx, cx                                ; 31 c9
    9254     call 05f1fh                               ; e8 c2 f7
     9430    call 060e2h                               ; e8 c2 f7
    92559431    xor ax, ax                                ; 31 c0
    92569432    mov word [bp+014h], ax                    ; 89 46 14
     
    92599435    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    92609436    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9261     jmp short 067f0h                          ; eb 75
     9437    jmp short 069b3h                          ; eb 75
    92629438    mov word [bp+028h], bx                    ; 89 5e 28
    92639439    mov ax, strict word 00031h                ; b8 31 00
    9264     call 016ach                               ; e8 28 af
     9440    call 016ach                               ; e8 65 ad
    92659441    movzx dx, al                              ; 0f b6 d0
    92669442    sal dx, 008h                              ; c1 e2 08
    92679443    mov ax, strict word 00030h                ; b8 30 00
    9268     call 016ach                               ; e8 1c af
     9444    call 016ach                               ; e8 59 ad
    92699445    xor ah, ah                                ; 30 e4
    92709446    or dx, ax                                 ; 09 c2
    92719447    mov word [bp+01ch], dx                    ; 89 56 1c
    92729448    cmp dx, 03c00h                            ; 81 fa 00 3c
    9273     jbe short 067a2h                          ; 76 05
     9449    jbe short 06965h                          ; 76 05
    92749450    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    92759451    mov ax, strict word 00035h                ; b8 35 00
    9276     call 016ach                               ; e8 04 af
     9452    call 016ach                               ; e8 41 ad
    92779453    movzx dx, al                              ; 0f b6 d0
    92789454    sal dx, 008h                              ; c1 e2 08
    92799455    mov ax, strict word 00034h                ; b8 34 00
    9280     call 016ach                               ; e8 f8 ae
     9456    call 016ach                               ; e8 35 ad
    92819457    xor ah, ah                                ; 30 e4
    92829458    or dx, ax                                 ; 09 c2
     
    92859461    mov word [bp+020h], ax                    ; 89 46 20
    92869462    mov word [bp+014h], dx                    ; 89 56 14
    9287     jmp short 067f0h                          ; eb 2a
    9288     mov bx, 00da2h                            ; bb a2 0d
     9463    jmp short 069b3h                          ; eb 2a
     9464    mov bx, 00da8h                            ; bb a8 0d
    92899465    mov cx, ds                                ; 8c d9
    92909466    mov ax, strict word 00004h                ; b8 04 00
    9291     call 01931h                               ; e8 60 b1
     9467    call 01931h                               ; e8 9d af
    92929468    push word [bp+014h]                       ; ff 76 14
    92939469    push word [bp+020h]                       ; ff 76 20
    92949470    push 008bch                               ; 68 bc 08
    92959471    push strict byte 00004h                   ; 6a 04
    9296     call 01972h                               ; e8 93 b1
     9472    call 01972h                               ; e8 d0 af
    92979473    add sp, strict byte 00008h                ; 83 c4 08
    92989474    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    93059481    pop bp                                    ; 5d
    93069482    retn                                      ; c3
    9307 _inv_op_handler:                             ; 0xf67f6 LB 0x195
     9483_inv_op_handler:                             ; 0xf69b9 LB 0x195
    93089484    push bp                                   ; 55
    93099485    mov bp, sp                                ; 89 e5
     
    93149490    les bx, [bp+018h]                         ; c4 5e 18
    93159491    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    9316     jne short 0680ch                          ; 75 06
     9492    jne short 069cfh                          ; 75 06
    93179493    inc word [bp+018h]                        ; ff 46 18
    9318     jmp near 06984h                           ; e9 78 01
     9494    jmp near 06b47h                           ; e9 78 01
    93199495    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    9320     jne near 06980h                           ; 0f 85 6b 01
     9496    jne near 06b43h                           ; 0f 85 6b 01
    93219497    mov si, 00800h                            ; be 00 08
    93229498    xor ax, ax                                ; 31 c0
     
    93469522    sal ax, 1                                 ; d1 e0
    93479523    rcl dx, 1                                 ; d1 d2
    9348     loop 06865h                               ; e2 fa
     9524    loop 06a28h                               ; e2 fa
    93499525    cmp bx, dx                                ; 39 d3
    9350     jne short 06873h                          ; 75 04
     9526    jne short 06a36h                          ; 75 04
    93519527    cmp di, ax                                ; 39 c7
    9352     je short 06878h                           ; 74 05
     9528    je short 06a3bh                           ; 74 05
    93539529    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    93549530    mov es, [bp-006h]                         ; 8e 46 fa
     
    93609536    sal ax, 1                                 ; d1 e0
    93619537    rcl dx, 1                                 ; d1 d2
    9362     loop 0688dh                               ; e2 fa
     9538    loop 06a50h                               ; e2 fa
    93639539    cmp di, dx                                ; 39 d7
    9364     jne short 0689bh                          ; 75 04
     9540    jne short 06a5eh                          ; 75 04
    93659541    cmp bx, ax                                ; 39 c3
    9366     je short 0689fh                           ; 74 04
     9542    je short 06a62h                           ; 74 04
    93679543    or byte [bp-008h], 002h                   ; 80 4e f8 02
    93689544    push strict byte 00000h                   ; 6a 00
     
    94149590    mov ax, strict word 00008h                ; b8 08 00
    94159591    test cx, strict word 00001h               ; f7 c1 01 00
    9416     je near 0693dh                            ; 0f 84 02 00
     9592    je near 06b00h                            ; 0f 84 02 00
    94179593    mov es, ax                                ; 8e c0
    94189594    test cx, strict word 00002h               ; f7 c1 02 00
    9419     je near 06965h                            ; 0f 84 20 00
     9595    je near 06b28h                            ; 0f 84 20 00
    94209596    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    94219597    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    94349610    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    94359611    iret                                      ; cf
    9436     jmp short 06984h                          ; eb 04
     9612    jmp short 06b47h                          ; eb 04
    94379613    sti                                       ; fb
    94389614    hlt                                       ; f4
    9439     jmp short 06981h                          ; eb fd
     9615    jmp short 06b44h                          ; eb fd
    94409616    lea sp, [bp-004h]                         ; 8d 66 fc
    94419617    pop di                                    ; 5f
     
    94439619    pop bp                                    ; 5d
    94449620    retn                                      ; c3
    9445 init_rtc_:                                   ; 0xf698b LB 0x28
     9621init_rtc_:                                   ; 0xf6b4e LB 0x28
    94469622    push bp                                   ; 55
    94479623    mov bp, sp                                ; 89 e5
     
    94499625    mov dx, strict word 00026h                ; ba 26 00
    94509626    mov ax, strict word 0000ah                ; b8 0a 00
    9451     call 016c9h                               ; e8 31 ad
     9627    call 016c9h                               ; e8 6e ab
    94529628    mov dx, strict word 00002h                ; ba 02 00
    94539629    mov ax, strict word 0000bh                ; b8 0b 00
    9454     call 016c9h                               ; e8 28 ad
     9630    call 016c9h                               ; e8 65 ab
    94559631    mov ax, strict word 0000ch                ; b8 0c 00
    9456     call 016ach                               ; e8 05 ad
     9632    call 016ach                               ; e8 42 ab
    94579633    mov ax, strict word 0000dh                ; b8 0d 00
    9458     call 016ach                               ; e8 ff ac
     9634    call 016ach                               ; e8 3c ab
    94599635    lea sp, [bp-002h]                         ; 8d 66 fe
    94609636    pop dx                                    ; 5a
    94619637    pop bp                                    ; 5d
    94629638    retn                                      ; c3
    9463 rtc_updating_:                               ; 0xf69b3 LB 0x21
     9639rtc_updating_:                               ; 0xf6b76 LB 0x21
    94649640    push bp                                   ; 55
    94659641    mov bp, sp                                ; 89 e5
     
    94679643    mov dx, 061a8h                            ; ba a8 61
    94689644    dec dx                                    ; 4a
    9469     je short 069cbh                           ; 74 0e
     9645    je short 06b8eh                           ; 74 0e
    94709646    mov ax, strict word 0000ah                ; b8 0a 00
    9471     call 016ach                               ; e8 e9 ac
     9647    call 016ach                               ; e8 26 ab
    94729648    test AL, strict byte 080h                 ; a8 80
    9473     jne short 069bah                          ; 75 f3
     9649    jne short 06b7dh                          ; 75 f3
    94749650    xor ax, ax                                ; 31 c0
    9475     jmp short 069ceh                          ; eb 03
     9651    jmp short 06b91h                          ; eb 03
    94769652    mov ax, strict word 00001h                ; b8 01 00
    94779653    lea sp, [bp-002h]                         ; 8d 66 fe
     
    94799655    pop bp                                    ; 5d
    94809656    retn                                      ; c3
    9481 _int70_function:                             ; 0xf69d4 LB 0xbe
     9657_int70_function:                             ; 0xf6b97 LB 0xbe
    94829658    push bp                                   ; 55
    94839659    mov bp, sp                                ; 89 e5
     
    94859661    push ax                                   ; 50
    94869662    mov ax, strict word 0000bh                ; b8 0b 00
    9487     call 016ach                               ; e8 cd ac
     9663    call 016ach                               ; e8 0a ab
    94889664    mov dl, al                                ; 88 c2
    94899665    mov byte [bp-004h], al                    ; 88 46 fc
    94909666    mov ax, strict word 0000ch                ; b8 0c 00
    9491     call 016ach                               ; e8 c2 ac
     9667    call 016ach                               ; e8 ff aa
    94929668    mov dh, al                                ; 88 c6
    94939669    test dl, 060h                             ; f6 c2 60
    9494     je near 06a79h                            ; 0f 84 86 00
     9670    je near 06c3ch                            ; 0f 84 86 00
    94959671    test AL, strict byte 020h                 ; a8 20
    9496     je short 069fbh                           ; 74 04
     9672    je short 06bbeh                           ; 74 04
    94979673    sti                                       ; fb
    94989674    int 04ah                                  ; cd 4a
    94999675    cli                                       ; fa
    95009676    test dh, 040h                             ; f6 c6 40
    9501     je near 06a79h                            ; 0f 84 77 00
     9677    je near 06c3ch                            ; 0f 84 77 00
    95029678    mov dx, 000a0h                            ; ba a0 00
    95039679    mov ax, strict word 00040h                ; b8 40 00
    9504     call 01650h                               ; e8 45 ac
     9680    call 01650h                               ; e8 82 aa
    95059681    test al, al                               ; 84 c0
    9506     je short 06a79h                           ; 74 6a
     9682    je short 06c3ch                           ; 74 6a
    95079683    mov dx, 0009ch                            ; ba 9c 00
    95089684    mov ax, strict word 00040h                ; b8 40 00
    9509     call 01688h                               ; e8 70 ac
     9685    call 01688h                               ; e8 ad aa
    95109686    test dx, dx                               ; 85 d2
    9511     jne short 06a65h                          ; 75 49
     9687    jne short 06c28h                          ; 75 49
    95129688    cmp ax, 003d1h                            ; 3d d1 03
    9513     jnc short 06a65h                          ; 73 44
     9689    jnc short 06c28h                          ; 73 44
    95149690    mov dx, 00098h                            ; ba 98 00
    95159691    mov ax, strict word 00040h                ; b8 40 00
    9516     call 0166ch                               ; e8 42 ac
     9692    call 0166ch                               ; e8 7f aa
    95179693    mov si, ax                                ; 89 c6
    95189694    mov dx, 0009ah                            ; ba 9a 00
    95199695    mov ax, strict word 00040h                ; b8 40 00
    9520     call 0166ch                               ; e8 37 ac
     9696    call 0166ch                               ; e8 74 aa
    95219697    mov cx, ax                                ; 89 c1
    95229698    xor bx, bx                                ; 31 db
    95239699    mov dx, 000a0h                            ; ba a0 00
    95249700    mov ax, strict word 00040h                ; b8 40 00
    9525     call 0165eh                               ; e8 1c ac
     9701    call 0165eh                               ; e8 59 aa
    95269702    mov al, byte [bp-004h]                    ; 8a 46 fc
    95279703    and AL, strict byte 037h                  ; 24 37
    95289704    movzx dx, al                              ; 0f b6 d0
    95299705    mov ax, strict word 0000bh                ; b8 0b 00
    9530     call 016c9h                               ; e8 79 ac
     9706    call 016c9h                               ; e8 b6 aa
    95319707    mov dx, cx                                ; 89 ca
    95329708    mov ax, si                                ; 89 f0
    9533     call 01650h                               ; e8 f9 ab
     9709    call 01650h                               ; e8 36 aa
    95349710    or AL, strict byte 080h                   ; 0c 80
    95359711    movzx bx, al                              ; 0f b6 d8
    95369712    mov dx, cx                                ; 89 ca
    95379713    mov ax, si                                ; 89 f0
    9538     call 0165eh                               ; e8 fb ab
    9539     jmp short 06a79h                          ; eb 14
     9714    call 0165eh                               ; e8 38 aa
     9715    jmp short 06c3ch                          ; eb 14
    95409716    mov bx, ax                                ; 89 c3
    95419717    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    95449720    mov dx, 0009ch                            ; ba 9c 00
    95459721    mov ax, strict word 00040h                ; b8 40 00
    9546     call 0169ah                               ; e8 21 ac
    9547     call 0e030h                               ; e8 b4 75
     9722    call 0169ah                               ; e8 5e aa
     9723    call 0e030h                               ; e8 f1 73
    95489724    lea sp, [bp-002h]                         ; 8d 66 fe
    95499725    pop si                                    ; 5e
    95509726    pop bp                                    ; 5d
    95519727    retn                                      ; c3
    9552     test ax, 0d26ah                           ; a9 6a d2
    9553     push strict byte 0fff7h                   ; 6a f7
    9554     push strict byte 00029h                   ; 6a 29
    9555     imul di, word [bx+si+06bh], strict byte 0ffb0h ; 6b 78 6b b0
    9556     imul si, bx, strict byte 0006bh           ; 6b f3 6b
    9557     dec dx                                    ; 4a
    95589728    insb                                      ; 6c
    9559 _int1a_function:                             ; 0xf6a92 LB 0x1c8
     9729    insb                                      ; 6c
     9730    xchg bp, ax                               ; 95
     9731    insb                                      ; 6c
     9732    mov dx, 0ec6ch                            ; ba 6c ec
     9733    insb                                      ; 6c
     9734    cmp bp, word [di+073h]                    ; 3b 6d 73
     9735    insw                                      ; 6d
     9736    mov DH, strict byte 06dh                  ; b6 6d
     9737    db  00dh
     9738    outsb                                     ; 6e
     9739_int1a_function:                             ; 0xf6c55 LB 0x1c8
    95609740    push bp                                   ; 55
    95619741    mov bp, sp                                ; 89 e5
     
    95639743    mov al, byte [bp+013h]                    ; 8a 46 13
    95649744    cmp AL, strict byte 007h                  ; 3c 07
    9565     jnbe near 06aceh                          ; 0f 87 2f 00
     9745    jnbe near 06c91h                          ; 0f 87 2f 00
    95669746    movzx bx, al                              ; 0f b6 d8
    95679747    add bx, bx                                ; 01 db
    9568     jmp word [cs:bx+06a82h]                   ; 2e ff a7 82 6a
     9748    jmp word [cs:bx+06c45h]                   ; 2e ff a7 45 6c
    95699749    cli                                       ; fa
    95709750    mov bx, 0046eh                            ; bb 6e 04
     
    95979777    sti                                       ; fb
    95989778    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9599     jmp short 06aceh                          ; eb d7
    9600     call 069b3h                               ; e8 b9 fe
     9779    jmp short 06c91h                          ; eb d7
     9780    call 06b76h                               ; e8 b9 fe
    96019781    test ax, ax                               ; 85 c0
    9602     je short 06b00h                           ; 74 02
    9603     jmp short 06aceh                          ; eb ce
     9782    je short 06cc3h                           ; 74 02
     9783    jmp short 06c91h                          ; eb ce
    96049784    xor ax, ax                                ; 31 c0
    9605     call 016ach                               ; e8 a7 ab
     9785    call 016ach                               ; e8 e4 a9
    96069786    mov byte [bp+00fh], al                    ; 88 46 0f
    96079787    mov ax, strict word 00002h                ; b8 02 00
    9608     call 016ach                               ; e8 9e ab
     9788    call 016ach                               ; e8 db a9
    96099789    mov byte [bp+010h], al                    ; 88 46 10
    96109790    mov ax, strict word 00004h                ; b8 04 00
    9611     call 016ach                               ; e8 95 ab
     9791    call 016ach                               ; e8 d2 a9
    96129792    mov bl, al                                ; 88 c3
    96139793    mov byte [bp+011h], al                    ; 88 46 11
    96149794    mov ax, strict word 0000bh                ; b8 0b 00
    9615     call 016ach                               ; e8 8a ab
     9795    call 016ach                               ; e8 c7 a9
    96169796    and AL, strict byte 001h                  ; 24 01
    96179797    mov byte [bp+00eh], al                    ; 88 46 0e
    9618     jmp short 06b6eh                          ; eb 45
    9619     call 069b3h                               ; e8 87 fe
     9798    jmp short 06d31h                          ; eb 45
     9799    call 06b76h                               ; e8 87 fe
    96209800    test ax, ax                               ; 85 c0
    9621     je short 06b33h                           ; 74 03
    9622     call 0698bh                               ; e8 58 fe
     9801    je short 06cf6h                           ; 74 03
     9802    call 06b4eh                               ; e8 58 fe
    96239803    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96249804    xor ax, ax                                ; 31 c0
    9625     call 016c9h                               ; e8 8d ab
     9805    call 016c9h                               ; e8 ca a9
    96269806    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96279807    mov ax, strict word 00002h                ; b8 02 00
    9628     call 016c9h                               ; e8 83 ab
     9808    call 016c9h                               ; e8 c0 a9
    96299809    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96309810    mov ax, strict word 00004h                ; b8 04 00
    9631     call 016c9h                               ; e8 79 ab
     9811    call 016c9h                               ; e8 b6 a9
    96329812    mov ax, strict word 0000bh                ; b8 0b 00
    9633     call 016ach                               ; e8 56 ab
     9813    call 016ach                               ; e8 93 a9
    96349814    mov bl, al                                ; 88 c3
    96359815    and bl, 060h                              ; 80 e3 60
     
    96409820    movzx dx, bl                              ; 0f b6 d3
    96419821    mov ax, strict word 0000bh                ; b8 0b 00
    9642     call 016c9h                               ; e8 5b ab
     9822    call 016c9h                               ; e8 98 a9
    96439823    mov byte [bp+013h], 000h                  ; c6 46 13 00
    96449824    mov byte [bp+012h], bl                    ; 88 5e 12
    9645     jmp near 06aceh                           ; e9 56 ff
     9825    jmp near 06c91h                           ; e9 56 ff
    96469826    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9647     call 069b3h                               ; e8 34 fe
     9827    call 06b76h                               ; e8 34 fe
    96489828    test ax, ax                               ; 85 c0
    9649     je short 06b86h                           ; 74 03
    9650     jmp near 06aceh                           ; e9 48 ff
     9829    je short 06d49h                           ; 74 03
     9830    jmp near 06c91h                           ; e9 48 ff
    96519831    mov ax, strict word 00009h                ; b8 09 00
    9652     call 016ach                               ; e8 20 ab
     9832    call 016ach                               ; e8 5d a9
    96539833    mov byte [bp+010h], al                    ; 88 46 10
    96549834    mov ax, strict word 00008h                ; b8 08 00
    9655     call 016ach                               ; e8 17 ab
     9835    call 016ach                               ; e8 54 a9
    96569836    mov byte [bp+00fh], al                    ; 88 46 0f
    96579837    mov ax, strict word 00007h                ; b8 07 00
    9658     call 016ach                               ; e8 0e ab
     9838    call 016ach                               ; e8 4b a9
    96599839    mov byte [bp+00eh], al                    ; 88 46 0e
    96609840    mov ax, strict word 00032h                ; b8 32 00
    9661     call 016ach                               ; e8 05 ab
     9841    call 016ach                               ; e8 42 a9
    96629842    mov byte [bp+011h], al                    ; 88 46 11
    96639843    mov byte [bp+012h], al                    ; 88 46 12
    9664     jmp near 06aceh                           ; e9 1e ff
    9665     call 069b3h                               ; e8 00 fe
     9844    jmp near 06c91h                           ; e9 1e ff
     9845    call 06b76h                               ; e8 00 fe
    96669846    test ax, ax                               ; 85 c0
    9667     je short 06bbdh                           ; 74 06
    9668     call 0698bh                               ; e8 d1 fd
    9669     jmp near 06aceh                           ; e9 11 ff
     9847    je short 06d80h                           ; 74 06
     9848    call 06b4eh                               ; e8 d1 fd
     9849    jmp near 06c91h                           ; e9 11 ff
    96709850    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96719851    mov ax, strict word 00009h                ; b8 09 00
    9672     call 016c9h                               ; e8 02 ab
     9852    call 016c9h                               ; e8 3f a9
    96739853    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96749854    mov ax, strict word 00008h                ; b8 08 00
    9675     call 016c9h                               ; e8 f8 aa
     9855    call 016c9h                               ; e8 35 a9
    96769856    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    96779857    mov ax, strict word 00007h                ; b8 07 00
    9678     call 016c9h                               ; e8 ee aa
     9858    call 016c9h                               ; e8 2b a9
    96799859    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96809860    mov ax, strict word 00032h                ; b8 32 00
    9681     call 016c9h                               ; e8 e4 aa
     9861    call 016c9h                               ; e8 21 a9
    96829862    mov ax, strict word 0000bh                ; b8 0b 00
    9683     call 016ach                               ; e8 c1 aa
     9863    call 016ach                               ; e8 fe a8
    96849864    mov bl, al                                ; 88 c3
    96859865    and bl, 07fh                              ; 80 e3 7f
    9686     jmp near 06b65h                           ; e9 72 ff
     9866    jmp near 06d28h                           ; e9 72 ff
    96879867    mov ax, strict word 0000bh                ; b8 0b 00
    9688     call 016ach                               ; e8 b3 aa
     9868    call 016ach                               ; e8 f0 a8
    96899869    mov bl, al                                ; 88 c3
    96909870    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    96919871    test AL, strict byte 020h                 ; a8 20
    9692     je short 06c07h                           ; 74 03
    9693     jmp near 06aceh                           ; e9 c7 fe
    9694     call 069b3h                               ; e8 a9 fd
     9872    je short 06dcah                           ; 74 03
     9873    jmp near 06c91h                           ; e9 c7 fe
     9874    call 06b76h                               ; e8 a9 fd
    96959875    test ax, ax                               ; 85 c0
    9696     je short 06c11h                           ; 74 03
    9697     call 0698bh                               ; e8 7a fd
     9876    je short 06dd4h                           ; 74 03
     9877    call 06b4eh                               ; e8 7a fd
    96989878    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96999879    mov ax, strict word 00001h                ; b8 01 00
    9700     call 016c9h                               ; e8 ae aa
     9880    call 016c9h                               ; e8 eb a8
    97019881    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    97029882    mov ax, strict word 00003h                ; b8 03 00
    9703     call 016c9h                               ; e8 a4 aa
     9883    call 016c9h                               ; e8 e1 a8
    97049884    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    97059885    mov ax, strict word 00005h                ; b8 05 00
    9706     call 016c9h                               ; e8 9a aa
     9886    call 016c9h                               ; e8 d7 a8
    97079887    mov dx, 000a1h                            ; ba a1 00
    97089888    in AL, DX                                 ; ec
     
    97169896    movzx dx, al                              ; 0f b6 d0
    97179897    mov ax, strict word 0000bh                ; b8 0b 00
    9718     call 016c9h                               ; e8 82 aa
    9719     jmp near 06aceh                           ; e9 84 fe
     9898    call 016c9h                               ; e8 bf a8
     9899    jmp near 06c91h                           ; e9 84 fe
    97209900    mov ax, strict word 0000bh                ; b8 0b 00
    9721     call 016ach                               ; e8 5c aa
     9901    call 016ach                               ; e8 99 a8
    97229902    mov bl, al                                ; 88 c3
    97239903    and AL, strict byte 057h                  ; 24 57
    97249904    movzx dx, al                              ; 0f b6 d0
    9725     jmp near 06b68h                           ; e9 0e ff
    9726 send_to_mouse_ctrl_:                         ; 0xf6c5a LB 0x34
     9905    jmp near 06d2bh                           ; e9 0e ff
     9906send_to_mouse_ctrl_:                         ; 0xf6e1d LB 0x34
    97279907    push bp                                   ; 55
    97289908    mov bp, sp                                ; 89 e5
     
    97359915    ; sub ah, ah                                ; 2a e4
    97369916    test AL, strict byte 002h                 ; a8 02
    9737     je short 06c79h                           ; 74 0e
     9917    je short 06e3ch                           ; 74 0e
    97389918    push 008f6h                               ; 68 f6 08
    9739     push 0116ah                               ; 68 6a 11
     9919    push 01170h                               ; 68 70 11
    97409920    push strict byte 00007h                   ; 6a 07
    9741     call 01972h                               ; e8 fc ac
     9921    call 01972h                               ; e8 39 ab
    97429922    add sp, strict byte 00006h                ; 83 c4 06
    97439923    mov AL, strict byte 0d4h                  ; b0 d4
     
    97539933    pop bp                                    ; 5d
    97549934    retn                                      ; c3
    9755 get_mouse_data_:                             ; 0xf6c8e LB 0x3b
     9935get_mouse_data_:                             ; 0xf6e51 LB 0x3b
    97569936    push bp                                   ; 55
    97579937    mov bp, sp                                ; 89 e5
     
    97679947    and ax, strict word 00021h                ; 25 21 00
    97689948    cmp ax, strict word 00021h                ; 3d 21 00
    9769     je short 06cafh                           ; 74 07
     9949    je short 06e72h                           ; 74 07
    97709950    test cx, cx                               ; 85 c9
    9771     je short 06cafh                           ; 74 03
     9951    je short 06e72h                           ; 74 03
    97729952    dec cx                                    ; 49
    9773     jmp short 06c9ah                          ; eb eb
     9953    jmp short 06e5dh                          ; eb eb
    97749954    test cx, cx                               ; 85 c9
    9775     jne short 06cb7h                          ; 75 04
     9955    jne short 06e7ah                          ; 75 04
    97769956    mov AL, strict byte 001h                  ; b0 01
    9777     jmp short 06cc2h                          ; eb 0b
     9957    jmp short 06e85h                          ; eb 0b
    97789958    mov dx, strict word 00060h                ; ba 60 00
    97799959    in AL, DX                                 ; ec
     
    97879967    pop bp                                    ; 5d
    97889968    retn                                      ; c3
    9789 set_kbd_command_byte_:                       ; 0xf6cc9 LB 0x32
     9969set_kbd_command_byte_:                       ; 0xf6e8c LB 0x32
    97909970    push bp                                   ; 55
    97919971    mov bp, sp                                ; 89 e5
     
    97989978    ; sub ah, ah                                ; 2a e4
    97999979    test AL, strict byte 002h                 ; a8 02
    9800     je short 06ce8h                           ; 74 0e
     9980    je short 06eabh                           ; 74 0e
    98019981    push 00900h                               ; 68 00 09
    9802     push 0116ah                               ; 68 6a 11
     9982    push 01170h                               ; 68 70 11
    98039983    push strict byte 00007h                   ; 6a 07
    9804     call 01972h                               ; e8 8d ac
     9984    call 01972h                               ; e8 ca aa
    98059985    add sp, strict byte 00006h                ; 83 c4 06
    98069986    mov AL, strict byte 060h                  ; b0 60
     
    98159995    pop bp                                    ; 5d
    98169996    retn                                      ; c3
    9817 _int74_function:                             ; 0xf6cfb LB 0xca
     9997_int74_function:                             ; 0xf6ebe LB 0xca
    98189998    push bp                                   ; 55
    98199999    mov bp, sp                                ; 89 e5
     
    982110001    mov dx, strict word 0000eh                ; ba 0e 00
    982210002    mov ax, strict word 00040h                ; b8 40 00
    9823     call 0166ch                               ; e8 62 a9
     10003    call 0166ch                               ; e8 9f a7
    982410004    mov cx, ax                                ; 89 c1
    982510005    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    983010010    and AL, strict byte 021h                  ; 24 21
    983110011    cmp AL, strict byte 021h                  ; 3c 21
    9832     jne near 06db1h                           ; 0f 85 92 00
     10012    jne near 06f74h                           ; 0f 85 92 00
    983310013    mov dx, strict word 00060h                ; ba 60 00
    983410014    in AL, DX                                 ; ec
     
    983810018    mov dx, strict word 00026h                ; ba 26 00
    983910019    mov ax, cx                                ; 89 c8
    9840     call 01650h                               ; e8 21 a9
     10020    call 01650h                               ; e8 5e a7
    984110021    mov byte [bp-006h], al                    ; 88 46 fa
    984210022    mov dx, strict word 00027h                ; ba 27 00
    984310023    mov ax, cx                                ; 89 c8
    9844     call 01650h                               ; e8 16 a9
     10024    call 01650h                               ; e8 53 a7
    984510025    mov byte [bp-008h], al                    ; 88 46 f8
    984610026    test AL, strict byte 080h                 ; a8 80
    9847     je short 06db1h                           ; 74 70
     10027    je short 06f74h                           ; 74 70
    984810028    mov al, byte [bp-008h]                    ; 8a 46 f8
    984910029    and AL, strict byte 007h                  ; 24 07
     
    985610036    add dx, strict byte 00028h                ; 83 c2 28
    985710037    mov ax, cx                                ; 89 c8
    9858     call 0165eh                               ; e8 00 a9
     10038    call 0165eh                               ; e8 3d a7
    985910039    mov al, byte [bp-004h]                    ; 8a 46 fc
    986010040    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9861     jc short 06da2h                           ; 72 3c
     10041    jc short 06f65h                           ; 72 3c
    986210042    mov dx, strict word 00028h                ; ba 28 00
    986310043    mov ax, cx                                ; 89 c8
    9864     call 01650h                               ; e8 e2 a8
     10044    call 01650h                               ; e8 1f a7
    986510045    xor ah, ah                                ; 30 e4
    986610046    mov word [bp+00ch], ax                    ; 89 46 0c
    986710047    mov dx, strict word 00029h                ; ba 29 00
    986810048    mov ax, cx                                ; 89 c8
    9869     call 01650h                               ; e8 d5 a8
     10049    call 01650h                               ; e8 12 a7
    987010050    xor ah, ah                                ; 30 e4
    987110051    mov word [bp+00ah], ax                    ; 89 46 0a
    987210052    mov dx, strict word 0002ah                ; ba 2a 00
    987310053    mov ax, cx                                ; 89 c8
    9874     call 01650h                               ; e8 c8 a8
     10054    call 01650h                               ; e8 05 a7
    987510055    xor ah, ah                                ; 30 e4
    987610056    mov word [bp+008h], ax                    ; 89 46 08
     
    987910059    mov byte [bp-006h], ah                    ; 88 66 fa
    988010060    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9881     je short 06da5h                           ; 74 0a
     10061    je short 06f68h                           ; 74 0a
    988210062    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9883     jmp short 06da5h                          ; eb 03
     10063    jmp short 06f68h                          ; eb 03
    988410064    inc byte [bp-006h]                        ; fe 46 fa
    988510065    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    988610066    mov dx, strict word 00026h                ; ba 26 00
    988710067    mov ax, cx                                ; 89 c8
    9888     call 0165eh                               ; e8 ad a8
     10068    call 0165eh                               ; e8 ea a6
    988910069    mov sp, bp                                ; 89 ec
    989010070    pop bp                                    ; 5d
    989110071    retn                                      ; c3
    9892     or word [bp+07fh], bp                     ; 09 6e 7f
    9893     outsb                                     ; 6e
    9894     add ch, byte [bx-06dh]                    ; 02 6f 93
     10072    int3                                      ; cc
    989510073    outsw                                     ; 6f
    9896     add word [bx+si+055h], si                 ; 01 70 55
    9897     outsb                                     ; 6e
    9898     sub word [bx+si-012h], si                 ; 29 70 ee
    9899     db  070h
    9900 _int15_function_mouse:                       ; 0xf6dc5 LB 0x38b
     10074    inc dx                                    ; 42
     10075    jo short 06f42h                           ; 70 c5
     10076    jo short 06fd5h                           ; 70 56
     10077    jno short 06f45h                          ; 71 c4
     10078    jno short 06f9bh                          ; 71 18
     10079    jo short 06f71h                           ; 70 ec
     10080    jno short 06f38h                          ; 71 b1
     10081    db  072h
     10082_int15_function_mouse:                       ; 0xf6f88 LB 0x38b
    990110083    push bp                                   ; 55
    990210084    mov bp, sp                                ; 89 e5
     
    990510087    mov dx, strict word 0000eh                ; ba 0e 00
    990610088    mov ax, strict word 00040h                ; b8 40 00
    9907     call 0166ch                               ; e8 97 a8
     10089    call 0166ch                               ; e8 d4 a6
    990810090    mov cx, ax                                ; 89 c1
    990910091    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    9910     jbe short 06de8h                          ; 76 0b
     10092    jbe short 06fabh                          ; 76 0b
    991110093    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    991210094    mov byte [bp+013h], 001h                  ; c6 46 13 01
    9913     jmp near 0714ah                           ; e9 62 03
     10095    jmp near 0730dh                           ; e9 62 03
    991410096    mov ax, strict word 00065h                ; b8 65 00
    9915     call 06cc9h                               ; e8 db fe
     10097    call 06e8ch                               ; e8 db fe
    991610098    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    991710099    mov byte [bp+013h], 000h                  ; c6 46 13 00
    991810100    mov al, byte [bp+012h]                    ; 8a 46 12
    991910101    cmp AL, strict byte 007h                  ; 3c 07
    9920     jnbe near 07131h                          ; 0f 87 32 03
     10102    jnbe near 072f4h                          ; 0f 87 32 03
    992110103    movzx si, al                              ; 0f b6 f0
    992210104    add si, si                                ; 01 f6
    9923     jmp word [cs:si+06db5h]                   ; 2e ff a4 b5 6d
     10105    jmp word [cs:si+06f78h]                   ; 2e ff a4 78 6f
    992410106    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    9925     jnbe near 0713ch                          ; 0f 87 2b 03
     10107    jnbe near 072ffh                          ; 0f 87 2b 03
    992610108    mov dx, strict word 00027h                ; ba 27 00
    992710109    mov ax, cx                                ; 89 c8
    9928     call 01650h                               ; e8 37 a8
     10110    call 01650h                               ; e8 74 a6
    992910111    test AL, strict byte 080h                 ; a8 80
    9930     jne short 06e28h                          ; 75 0b
     10112    jne short 06febh                          ; 75 0b
    993110113    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    993210114    mov byte [bp+013h], 005h                  ; c6 46 13 05
    9933     jmp near 07144h                           ; e9 1c 03
     10115    jmp near 07307h                           ; e9 1c 03
    993410116    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    993510117    db  00fh, 094h, 0c0h
     
    993710119    add AL, strict byte 0f4h                  ; 04 f4
    993810120    xor ah, ah                                ; 30 e4
    9939     call 06c5ah                               ; e8 24 fe
     10121    call 06e1dh                               ; e8 24 fe
    994010122    test al, al                               ; 84 c0
    9941     jne near 070cah                           ; 0f 85 8e 02
     10123    jne near 0728dh                           ; 0f 85 8e 02
    994210124    mov dx, ss                                ; 8c d2
    994310125    lea ax, [bp-008h]                         ; 8d 46 f8
    9944     call 06c8eh                               ; e8 4a fe
     10126    call 06e51h                               ; e8 4a fe
    994510127    test al, al                               ; 84 c0
    9946     je near 07144h                            ; 0f 84 fa 02
     10128    je near 07307h                            ; 0f 84 fa 02
    994710129    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9948     jne near 070cah                           ; 0f 85 78 02
    9949     jmp near 07144h                           ; e9 ef 02
     10130    jne near 0728dh                           ; 0f 85 78 02
     10131    jmp near 07307h                           ; e9 ef 02
    995010132    mov al, byte [bp+00dh]                    ; 8a 46 0d
    995110133    cmp AL, strict byte 001h                  ; 3c 01
    9952     jc short 06e60h                           ; 72 04
     10134    jc short 07023h                           ; 72 04
    995310135    cmp AL, strict byte 008h                  ; 3c 08
    9954     jbe short 06e63h                          ; 76 03
    9955     jmp near 06ff6h                           ; e9 93 01
     10136    jbe short 07026h                          ; 76 03
     10137    jmp near 071b9h                           ; e9 93 01
    995610138    mov dx, strict word 00027h                ; ba 27 00
    995710139    mov ax, cx                                ; 89 c8
    9958     call 01650h                               ; e8 e5 a7
     10140    call 01650h                               ; e8 22 a6
    995910141    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    996010142    db  0feh, 0cch
     
    996510147    mov dx, strict word 00027h                ; ba 27 00
    996610148    mov ax, cx                                ; 89 c8
    9967     call 0165eh                               ; e8 df a7
     10149    call 0165eh                               ; e8 1c a6
    996810150    mov dx, strict word 00026h                ; ba 26 00
    996910151    mov ax, cx                                ; 89 c8
    9970     call 01650h                               ; e8 c9 a7
     10152    call 01650h                               ; e8 06 a6
    997110153    and AL, strict byte 0f8h                  ; 24 f8
    997210154    movzx bx, al                              ; 0f b6 d8
    997310155    mov dx, strict word 00026h                ; ba 26 00
    997410156    mov ax, cx                                ; 89 c8
    9975     call 0165eh                               ; e8 ca a7
     10157    call 0165eh                               ; e8 07 a6
    997610158    mov ax, 000ffh                            ; b8 ff 00
    9977     call 06c5ah                               ; e8 c0 fd
     10159    call 06e1dh                               ; e8 c0 fd
    997810160    test al, al                               ; 84 c0
    9979     jne near 070cah                           ; 0f 85 2a 02
     10161    jne near 0728dh                           ; 0f 85 2a 02
    998010162    mov dx, ss                                ; 8c d2
    998110163    lea ax, [bp-004h]                         ; 8d 46 fc
    9982     call 06c8eh                               ; e8 e6 fd
     10164    call 06e51h                               ; e8 e6 fd
    998310165    mov cl, al                                ; 88 c1
    998410166    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    9985     jne short 06ebbh                          ; 75 0b
     10167    jne short 0707eh                          ; 75 0b
    998610168    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    998710169    mov byte [bp+013h], 004h                  ; c6 46 13 04
    9988     jmp near 07144h                           ; e9 89 02
     10170    jmp near 07307h                           ; e9 89 02
    998910171    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9990     je short 06ed1h                           ; 74 10
     10172    je short 07094h                           ; 74 10
    999110173    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    999210174    push ax                                   ; 50
    999310175    push 0090bh                               ; 68 0b 09
    999410176    push strict byte 00007h                   ; 6a 07
    9995     call 01972h                               ; e8 a4 aa
     10177    call 01972h                               ; e8 e1 a8
    999610178    add sp, strict byte 00006h                ; 83 c4 06
    999710179    test cl, cl                               ; 84 c9
    9998     jne near 070cah                           ; 0f 85 f3 01
     10180    jne near 0728dh                           ; 0f 85 f3 01
    999910181    mov dx, ss                                ; 8c d2
    1000010182    lea ax, [bp-008h]                         ; 8d 46 f8
    10001     call 06c8eh                               ; e8 af fd
     10183    call 06e51h                               ; e8 af fd
    1000210184    test al, al                               ; 84 c0
    10003     jne near 070cah                           ; 0f 85 e5 01
     10185    jne near 0728dh                           ; 0f 85 e5 01
    1000410186    mov dx, ss                                ; 8c d2
    1000510187    lea ax, [bp-006h]                         ; 8d 46 fa
    10006     call 06c8eh                               ; e8 a1 fd
     10188    call 06e51h                               ; e8 a1 fd
    1000710189    test al, al                               ; 84 c0
    10008     jne near 070cah                           ; 0f 85 d7 01
     10190    jne near 0728dh                           ; 0f 85 d7 01
    1000910191    mov al, byte [bp-008h]                    ; 8a 46 f8
    1001010192    mov byte [bp+00ch], al                    ; 88 46 0c
    1001110193    mov al, byte [bp-006h]                    ; 8a 46 fa
    1001210194    mov byte [bp+00dh], al                    ; 88 46 0d
    10013     jmp near 07144h                           ; e9 42 02
     10195    jmp near 07307h                           ; e9 42 02
    1001410196    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1001510197    cmp AL, strict byte 003h                  ; 3c 03
    10016     jc short 06f19h                           ; 72 10
    10017     jbe short 06f37h                          ; 76 2c
     10198    jc short 070dch                           ; 72 10
     10199    jbe short 070fah                          ; 76 2c
    1001810200    cmp AL, strict byte 006h                  ; 3c 06
    10019     je short 06f49h                           ; 74 3a
     10201    je short 0710ch                           ; 74 3a
    1002010202    cmp AL, strict byte 005h                  ; 3c 05
    10021     je short 06f43h                           ; 74 30
     10203    je short 07106h                           ; 74 30
    1002210204    cmp AL, strict byte 004h                  ; 3c 04
    10023     je short 06f3dh                           ; 74 26
    10024     jmp short 06f4fh                          ; eb 36
     10205    je short 07100h                           ; 74 26
     10206    jmp short 07112h                          ; eb 36
    1002510207    cmp AL, strict byte 002h                  ; 3c 02
    10026     je short 06f31h                           ; 74 14
     10208    je short 070f4h                           ; 74 14
    1002710209    cmp AL, strict byte 001h                  ; 3c 01
    10028     je short 06f2bh                           ; 74 0a
     10210    je short 070eeh                           ; 74 0a
    1002910211    test al, al                               ; 84 c0
    10030     jne short 06f4fh                          ; 75 2a
     10212    jne short 07112h                          ; 75 2a
    1003110213    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10032     jmp short 06f53h                          ; eb 28
     10214    jmp short 07116h                          ; eb 28
    1003310215    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10034     jmp short 06f53h                          ; eb 22
     10216    jmp short 07116h                          ; eb 22
    1003510217    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10036     jmp short 06f53h                          ; eb 1c
     10218    jmp short 07116h                          ; eb 1c
    1003710219    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10038     jmp short 06f53h                          ; eb 16
     10220    jmp short 07116h                          ; eb 16
    1003910221    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10040     jmp short 06f53h                          ; eb 10
     10222    jmp short 07116h                          ; eb 10
    1004110223    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10042     jmp short 06f53h                          ; eb 0a
     10224    jmp short 07116h                          ; eb 0a
    1004310225    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10044     jmp short 06f53h                          ; eb 04
     10226    jmp short 07116h                          ; eb 04
    1004510227    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1004610228    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10047     jbe short 06f88h                          ; 76 2f
     10229    jbe short 0714bh                          ; 76 2f
    1004810230    mov ax, 000f3h                            ; b8 f3 00
    10049     call 06c5ah                               ; e8 fb fc
     10231    call 06e1dh                               ; e8 fb fc
    1005010232    test al, al                               ; 84 c0
    10051     jne short 06f7dh                          ; 75 1a
     10233    jne short 07140h                          ; 75 1a
    1005210234    mov dx, ss                                ; 8c d2
    1005310235    lea ax, [bp-006h]                         ; 8d 46 fa
    10054     call 06c8eh                               ; e8 23 fd
     10236    call 06e51h                               ; e8 23 fd
    1005510237    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10056     call 06c5ah                               ; e8 e8 fc
     10238    call 06e1dh                               ; e8 e8 fc
    1005710239    mov dx, ss                                ; 8c d2
    1005810240    lea ax, [bp-006h]                         ; 8d 46 fa
    10059     call 06c8eh                               ; e8 14 fd
    10060     jmp near 07144h                           ; e9 c7 01
     10241    call 06e51h                               ; e8 14 fd
     10242    jmp near 07307h                           ; e9 c7 01
    1006110243    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1006210244    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10063     jmp near 07144h                           ; e9 bc 01
     10245    jmp near 07307h                           ; e9 bc 01
    1006410246    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1006510247    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10066     jmp near 07144h                           ; e9 b1 01
     10248    jmp near 07307h                           ; e9 b1 01
    1006710249    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10068     jnc short 06ff6h                          ; 73 5d
     10250    jnc short 071b9h                          ; 73 5d
    1006910251    mov ax, 000e8h                            ; b8 e8 00
    10070     call 06c5ah                               ; e8 bb fc
     10252    call 06e1dh                               ; e8 bb fc
    1007110253    test al, al                               ; 84 c0
    10072     jne short 06febh                          ; 75 48
     10254    jne short 071aeh                          ; 75 48
    1007310255    mov dx, ss                                ; 8c d2
    1007410256    lea ax, [bp-008h]                         ; 8d 46 f8
    10075     call 06c8eh                               ; e8 e3 fc
     10257    call 06e51h                               ; e8 e3 fc
    1007610258    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10077     je short 06fc1h                           ; 74 10
     10259    je short 07184h                           ; 74 10
    1007810260    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1007910261    push ax                                   ; 50
    1008010262    push 00936h                               ; 68 36 09
    1008110263    push strict byte 00007h                   ; 6a 07
    10082     call 01972h                               ; e8 b4 a9
     10264    call 01972h                               ; e8 f1 a7
    1008310265    add sp, strict byte 00006h                ; 83 c4 06
    1008410266    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10085     call 06c5ah                               ; e8 92 fc
     10267    call 06e1dh                               ; e8 92 fc
    1008610268    mov dx, ss                                ; 8c d2
    1008710269    lea ax, [bp-008h]                         ; 8d 46 f8
    10088     call 06c8eh                               ; e8 be fc
     10270    call 06e51h                               ; e8 be fc
    1008910271    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10090     je near 07144h                            ; 0f 84 6c 01
     10272    je near 07307h                            ; 0f 84 6c 01
    1009110273    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1009210274    push ax                                   ; 50
    1009310275    push 00936h                               ; 68 36 09
    1009410276    push strict byte 00007h                   ; 6a 07
    10095     call 01972h                               ; e8 8d a9
     10277    call 01972h                               ; e8 ca a7
    1009610278    add sp, strict byte 00006h                ; 83 c4 06
    10097     jmp near 07144h                           ; e9 59 01
     10279    jmp near 07307h                           ; e9 59 01
    1009810280    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1009910281    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10100     jmp near 07144h                           ; e9 4e 01
     10282    jmp near 07307h                           ; e9 4e 01
    1010110283    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1010210284    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10103     jmp near 07144h                           ; e9 43 01
     10285    jmp near 07307h                           ; e9 43 01
    1010410286    mov ax, 000f2h                            ; b8 f2 00
    10105     call 06c5ah                               ; e8 53 fc
     10287    call 06e1dh                               ; e8 53 fc
    1010610288    test al, al                               ; 84 c0
    10107     jne short 0701eh                          ; 75 13
     10289    jne short 071e1h                          ; 75 13
    1010810290    mov dx, ss                                ; 8c d2
    1010910291    lea ax, [bp-008h]                         ; 8d 46 f8
    10110     call 06c8eh                               ; e8 7b fc
     10292    call 06e51h                               ; e8 7b fc
    1011110293    mov dx, ss                                ; 8c d2
    1011210294    lea ax, [bp-006h]                         ; 8d 46 fa
    10113     call 06c8eh                               ; e8 73 fc
    10114     jmp near 06ef9h                           ; e9 db fe
     10295    call 06e51h                               ; e8 73 fc
     10296    jmp near 070bch                           ; e9 db fe
    1011510297    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1011610298    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10117     jmp near 07144h                           ; e9 1b 01
     10299    jmp near 07307h                           ; e9 1b 01
    1011810300    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1011910301    test al, al                               ; 84 c0
    10120     jbe short 07037h                          ; 76 07
     10302    jbe short 071fah                          ; 76 07
    1012110303    cmp AL, strict byte 002h                  ; 3c 02
    10122     jbe short 070a0h                          ; 76 6c
    10123     jmp near 070d4h                           ; e9 9d 00
     10304    jbe short 07263h                          ; 76 6c
     10305    jmp near 07297h                           ; e9 9d 00
    1012410306    mov ax, 000e9h                            ; b8 e9 00
    10125     call 06c5ah                               ; e8 1d fc
     10307    call 06e1dh                               ; e8 1d fc
    1012610308    test al, al                               ; 84 c0
    10127     jne near 070cah                           ; 0f 85 87 00
     10309    jne near 0728dh                           ; 0f 85 87 00
    1012810310    mov dx, ss                                ; 8c d2
    1012910311    lea ax, [bp-008h]                         ; 8d 46 f8
    10130     call 06c8eh                               ; e8 43 fc
     10312    call 06e51h                               ; e8 43 fc
    1013110313    mov cl, al                                ; 88 c1
    1013210314    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10133     je short 07063h                           ; 74 10
     10315    je short 07226h                           ; 74 10
    1013410316    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1013510317    push ax                                   ; 50
    1013610318    push 00936h                               ; 68 36 09
    1013710319    push strict byte 00007h                   ; 6a 07
    10138     call 01972h                               ; e8 12 a9
     10320    call 01972h                               ; e8 4f a7
    1013910321    add sp, strict byte 00006h                ; 83 c4 06
    1014010322    test cl, cl                               ; 84 c9
    10141     jne short 070cah                          ; 75 63
     10323    jne short 0728dh                          ; 75 63
    1014210324    mov dx, ss                                ; 8c d2
    1014310325    lea ax, [bp-008h]                         ; 8d 46 f8
    10144     call 06c8eh                               ; e8 1f fc
     10326    call 06e51h                               ; e8 1f fc
    1014510327    test al, al                               ; 84 c0
    10146     jne short 070cah                          ; 75 57
     10328    jne short 0728dh                          ; 75 57
    1014710329    mov dx, ss                                ; 8c d2
    1014810330    lea ax, [bp-006h]                         ; 8d 46 fa
    10149     call 06c8eh                               ; e8 13 fc
     10331    call 06e51h                               ; e8 13 fc
    1015010332    test al, al                               ; 84 c0
    10151     jne short 070cah                          ; 75 4b
     10333    jne short 0728dh                          ; 75 4b
    1015210334    mov dx, ss                                ; 8c d2
    1015310335    lea ax, [bp-004h]                         ; 8d 46 fc
    10154     call 06c8eh                               ; e8 07 fc
     10336    call 06e51h                               ; e8 07 fc
    1015510337    test al, al                               ; 84 c0
    10156     jne short 070cah                          ; 75 3f
     10338    jne short 0728dh                          ; 75 3f
    1015710339    mov al, byte [bp-008h]                    ; 8a 46 f8
    1015810340    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1016110343    mov al, byte [bp-004h]                    ; 8a 46 fc
    1016210344    mov byte [bp+00eh], al                    ; 88 46 0e
    10163     jmp near 07144h                           ; e9 a4 00
     10345    jmp near 07307h                           ; e9 a4 00
    1016410346    cmp AL, strict byte 001h                  ; 3c 01
    10165     jne short 070a9h                          ; 75 05
     10347    jne short 0726ch                          ; 75 05
    1016610348    mov ax, 000e6h                            ; b8 e6 00
    10167     jmp short 070ach                          ; eb 03
     10349    jmp short 0726fh                          ; eb 03
    1016810350    mov ax, 000e7h                            ; b8 e7 00
    10169     call 06c5ah                               ; e8 ab fb
     10351    call 06e1dh                               ; e8 ab fb
    1017010352    mov cl, al                                ; 88 c1
    1017110353    test cl, cl                               ; 84 c9
    10172     jne short 070c4h                          ; 75 0f
     10354    jne short 07287h                          ; 75 0f
    1017310355    mov dx, ss                                ; 8c d2
    1017410356    lea ax, [bp-008h]                         ; 8d 46 f8
    10175     call 06c8eh                               ; e8 d1 fb
     10357    call 06e51h                               ; e8 d1 fb
    1017610358    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1017710359    db  00fh, 095h, 0c1h
    1017810360    ; setne cl                                  ; 0f 95 c1
    1017910361    test cl, cl                               ; 84 c9
    10180     je near 07144h                            ; 0f 84 7a 00
     10362    je near 07307h                            ; 0f 84 7a 00
    1018110363    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1018210364    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10183     jmp short 07144h                          ; eb 70
     10365    jmp short 07307h                          ; eb 70
    1018410366    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1018510367    push ax                                   ; 50
    1018610368    push 00962h                               ; 68 62 09
    1018710369    push strict byte 00007h                   ; 6a 07
    10188     call 01972h                               ; e8 91 a8
     10370    call 01972h                               ; e8 ce a6
    1018910371    add sp, strict byte 00006h                ; 83 c4 06
    1019010372    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1019110373    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10192     jmp short 07144h                          ; eb 56
     10374    jmp short 07307h                          ; eb 56
    1019310375    mov si, word [bp+00ch]                    ; 8b 76 0c
    1019410376    mov bx, si                                ; 89 f3
    1019510377    mov dx, strict word 00022h                ; ba 22 00
    1019610378    mov ax, cx                                ; 89 c8
    10197     call 0167ah                               ; e8 7f a5
     10379    call 0167ah                               ; e8 bc a3
    1019810380    mov bx, word [bp+014h]                    ; 8b 5e 14
    1019910381    mov dx, strict word 00024h                ; ba 24 00
    1020010382    mov ax, cx                                ; 89 c8
    10201     call 0167ah                               ; e8 74 a5
     10383    call 0167ah                               ; e8 b1 a3
    1020210384    mov dx, strict word 00027h                ; ba 27 00
    1020310385    mov ax, cx                                ; 89 c8
    10204     call 01650h                               ; e8 42 a5
     10386    call 01650h                               ; e8 7f a3
    1020510387    mov ah, al                                ; 88 c4
    1020610388    test si, si                               ; 85 f6
    10207     jne short 07122h                          ; 75 0e
     10389    jne short 072e5h                          ; 75 0e
    1020810390    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10209     jne short 07122h                          ; 75 08
     10391    jne short 072e5h                          ; 75 08
    1021010392    test AL, strict byte 080h                 ; a8 80
    10211     je short 07124h                           ; 74 06
     10393    je short 072e7h                           ; 74 06
    1021210394    and AL, strict byte 07fh                  ; 24 7f
    10213     jmp short 07124h                          ; eb 02
     10395    jmp short 072e7h                          ; eb 02
    1021410396    or AL, strict byte 080h                   ; 0c 80
    1021510397    movzx bx, al                              ; 0f b6 d8
    1021610398    mov dx, strict word 00027h                ; ba 27 00
    1021710399    mov ax, cx                                ; 89 c8
    10218     call 0165eh                               ; e8 2f a5
    10219     jmp short 07144h                          ; eb 13
     10400    call 0165eh                               ; e8 6c a3
     10401    jmp short 07307h                          ; eb 13
    1022010402    push 0097ch                               ; 68 7c 09
    1022110403    push strict byte 00007h                   ; 6a 07
    10222     call 01972h                               ; e8 39 a8
     10404    call 01972h                               ; e8 76 a6
    1022310405    add sp, strict byte 00004h                ; 83 c4 04
    1022410406    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1022510407    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1022610408    mov ax, strict word 00047h                ; b8 47 00
    10227     call 06cc9h                               ; e8 7f fb
     10409    call 06e8ch                               ; e8 7f fb
    1022810410    lea sp, [bp-002h]                         ; 8d 66 fe
    1022910411    pop si                                    ; 5e
    1023010412    pop bp                                    ; 5d
    1023110413    retn                                      ; c3
    10232 _int17_function:                             ; 0xf7150 LB 0xb3
     10414_int17_function:                             ; 0xf7313 LB 0xb3
    1023310415    push bp                                   ; 55
    1023410416    mov bp, sp                                ; 89 e5
     
    1024010422    add dx, strict byte 00008h                ; 83 c2 08
    1024110423    mov ax, strict word 00040h                ; b8 40 00
    10242     call 0166ch                               ; e8 08 a5
     10424    call 0166ch                               ; e8 45 a3
    1024310425    mov bx, ax                                ; 89 c3
    1024410426    mov si, ax                                ; 89 c6
    1024510427    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10246     jnc near 071f9h                           ; 0f 83 89 00
     10428    jnc near 073bch                           ; 0f 83 89 00
    1024710429    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1024810430    cmp ax, strict word 00003h                ; 3d 03 00
    10249     jnc near 071f9h                           ; 0f 83 7f 00
     10431    jnc near 073bch                           ; 0f 83 7f 00
    1025010432    test bx, bx                               ; 85 db
    10251     jbe near 071f9h                           ; 0f 86 79 00
     10433    jbe near 073bch                           ; 0f 86 79 00
    1025210434    mov dx, ax                                ; 89 c2
    1025310435    add dx, strict byte 00078h                ; 83 c2 78
    1025410436    mov ax, strict word 00040h                ; b8 40 00
    10255     call 01650h                               ; e8 c5 a4
     10437    call 01650h                               ; e8 02 a3
    1025610438    movzx cx, al                              ; 0f b6 c8
    1025710439    sal cx, 008h                              ; c1 e1 08
    1025810440    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10259     jne short 071c4h                          ; 75 2d
     10441    jne short 07387h                          ; 75 2d
    1026010442    mov al, byte [bp+012h]                    ; 8a 46 12
    1026110443    mov dx, bx                                ; 89 da
     
    1027710459    ; sub ah, ah                                ; 2a e4
    1027810460    test AL, strict byte 040h                 ; a8 40
    10279     je short 071c4h                           ; 74 07
     10461    je short 07387h                           ; 74 07
    1028010462    test cx, cx                               ; 85 c9
    10281     je short 071c4h                           ; 74 03
     10463    je short 07387h                           ; 74 03
    1028210464    dec cx                                    ; 49
    10283     jmp short 071b3h                          ; eb ef
     10465    jmp short 07376h                          ; eb ef
    1028410466    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10285     jne short 071e0h                          ; 75 16
     10467    jne short 073a3h                          ; 75 16
    1028610468    lea dx, [si+002h]                         ; 8d 54 02
    1028710469    in AL, DX                                 ; ec
     
    1030210484    mov byte [bp+013h], al                    ; 88 46 13
    1030310485    test cx, cx                               ; 85 c9
    10304     jne short 071f3h                          ; 75 04
     10486    jne short 073b6h                          ; 75 04
    1030510487    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1030610488    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10307     jmp short 071fdh                          ; eb 04
     10489    jmp short 073c0h                          ; eb 04
    1030810490    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1030910491    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1031110493    pop bp                                    ; 5d
    1031210494    retn                                      ; c3
    10313 wait_:                                       ; 0xf7203 LB 0xb2
     10495wait_:                                       ; 0xf73c6 LB 0xb2
    1031410496    push bp                                   ; 55
    1031510497    mov bp, sp                                ; 89 e5
     
    1032910511    mov dx, 0046ch                            ; ba 6c 04
    1033010512    xor ax, ax                                ; 31 c0
    10331     call 01688h                               ; e8 62 a4
     10513    call 01688h                               ; e8 9f a2
    1033210514    mov word [bp-00eh], ax                    ; 89 46 f2
    1033310515    mov bx, dx                                ; 89 d3
     
    1033510517    mov dx, 0046ch                            ; ba 6c 04
    1033610518    xor ax, ax                                ; 31 c0
    10337     call 01688h                               ; e8 54 a4
     10519    call 01688h                               ; e8 91 a2
    1033810520    mov word [bp-012h], ax                    ; 89 46 ee
    1033910521    mov di, dx                                ; 89 d7
    1034010522    cmp dx, bx                                ; 39 da
    10341     jnbe short 07244h                         ; 77 07
    10342     jne short 0724bh                          ; 75 0c
     10523    jnbe short 07407h                         ; 77 07
     10524    jne short 0740eh                          ; 75 0c
    1034310525    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10344     jbe short 0724bh                          ; 76 07
     10526    jbe short 0740eh                          ; 76 07
    1034510527    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1034610528    sbb dx, bx                                ; 19 da
    10347     jmp short 07256h                          ; eb 0b
     10529    jmp short 07419h                          ; eb 0b
    1034810530    cmp dx, bx                                ; 39 da
    10349     jc short 07256h                           ; 72 07
    10350     jne short 0725ah                          ; 75 09
     10531    jc short 07419h                           ; 72 07
     10532    jne short 0741dh                          ; 75 09
    1035110533    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10352     jnc short 0725ah                          ; 73 04
     10534    jnc short 0741dh                          ; 73 04
    1035310535    sub si, ax                                ; 29 c6
    1035410536    sbb cx, dx                                ; 19 d1
     
    1035810540    mov ax, 00100h                            ; b8 00 01
    1035910541    int 016h                                  ; cd 16
    10360     je near 07270h                            ; 0f 84 05 00
     10542    je near 07433h                            ; 0f 84 05 00
    1036110543    mov AL, strict byte 001h                  ; b0 01
    10362     jmp near 07272h                           ; e9 02 00
     10544    jmp near 07435h                           ; e9 02 00
    1036310545    db  032h, 0c0h
    1036410546    ; xor al, al                                ; 32 c0
    1036510547    test al, al                               ; 84 c0
    10366     je short 0729ah                           ; 74 24
     10548    je short 0745dh                           ; 74 24
    1036710549    db  033h, 0c0h
    1036810550    ; xor ax, ax                                ; 33 c0
     
    1037510557    push 0099eh                               ; 68 9e 09
    1037610558    push strict byte 00004h                   ; 6a 04
    10377     call 01972h                               ; e8 e5 a6
     10559    call 01972h                               ; e8 22 a5
    1037810560    add sp, strict byte 00006h                ; 83 c4 06
    1037910561    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10380     je short 0729ah                           ; 74 04
     10562    je short 0745dh                           ; 74 04
    1038110563    mov al, dl                                ; 88 d0
    10382     jmp short 072ach                          ; eb 12
     10564    jmp short 0746fh                          ; eb 12
    1038310565    test cx, cx                               ; 85 c9
    10384     jnle short 0722bh                         ; 7f 8d
    10385     jne short 072a4h                          ; 75 04
     10566    jnle short 073eeh                         ; 7f 8d
     10567    jne short 07467h                          ; 75 04
    1038610568    test si, si                               ; 85 f6
    10387     jnbe short 0722bh                         ; 77 87
     10569    jnbe short 073eeh                         ; 77 87
    1038810570    mov ax, word [bp-010h]                    ; 8b 46 f0
    1038910571    push ax                                   ; 50
     
    1039710579    pop bp                                    ; 5d
    1039810580    retn                                      ; c3
    10399 read_logo_byte_:                             ; 0xf72b5 LB 0x16
     10581read_logo_byte_:                             ; 0xf7478 LB 0x16
    1040010582    push bp                                   ; 55
    1040110583    mov bp, sp                                ; 89 e5
     
    1041210594    pop bp                                    ; 5d
    1041310595    retn                                      ; c3
    10414 read_logo_word_:                             ; 0xf72cb LB 0x14
     10596read_logo_word_:                             ; 0xf748e LB 0x14
    1041510597    push bp                                   ; 55
    1041610598    mov bp, sp                                ; 89 e5
     
    1042510607    pop bp                                    ; 5d
    1042610608    retn                                      ; c3
    10427 print_detected_harddisks_:                   ; 0xf72df LB 0x130
     10609print_detected_harddisks_:                   ; 0xf74a2 LB 0x130
    1042810610    push bp                                   ; 55
    1042910611    mov bp, sp                                ; 89 e5
     
    1043710619    mov dx, strict word 0000eh                ; ba 0e 00
    1043810620    mov ax, strict word 00040h                ; b8 40 00
    10439     call 0166ch                               ; e8 7a a3
     10621    call 0166ch                               ; e8 b7 a1
    1044010622    mov si, ax                                ; 89 c6
    1044110623    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1044310625    xor ch, ch                                ; 30 ed
    1044410626    mov dx, 002c0h                            ; ba c0 02
    10445     call 01650h                               ; e8 4e a3
     10627    call 01650h                               ; e8 8b a1
    1044610628    mov byte [bp-00eh], al                    ; 88 46 f2
    1044710629    xor bl, bl                                ; 30 db
    1044810630    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    10449     jnc near 073e1h                           ; 0f 83 d3 00
     10631    jnc near 075a4h                           ; 0f 83 d3 00
    1045010632    movzx dx, bl                              ; 0f b6 d3
    1045110633    add dx, 002c1h                            ; 81 c2 c1 02
    1045210634    mov ax, si                                ; 89 f0
    10453     call 01650h                               ; e8 36 a3
     10635    call 01650h                               ; e8 73 a1
    1045410636    mov bh, al                                ; 88 c7
    1045510637    cmp AL, strict byte 00ch                  ; 3c 0c
    10456     jc short 07344h                           ; 72 24
     10638    jc short 07507h                           ; 72 24
    1045710639    test cl, cl                               ; 84 c9
    10458     jne short 07331h                          ; 75 0d
     10640    jne short 074f4h                          ; 75 0d
    1045910641    push 009afh                               ; 68 af 09
    1046010642    push strict byte 00002h                   ; 6a 02
    10461     call 01972h                               ; e8 46 a6
     10643    call 01972h                               ; e8 83 a4
    1046210644    add sp, strict byte 00004h                ; 83 c4 04
    1046310645    mov CL, strict byte 001h                  ; b1 01
     
    1046710649    push 009c4h                               ; 68 c4 09
    1046810650    push strict byte 00002h                   ; 6a 02
    10469     call 01972h                               ; e8 34 a6
     10651    call 01972h                               ; e8 71 a4
    1047010652    add sp, strict byte 00006h                ; 83 c4 06
    10471     jmp near 073dch                           ; e9 98 00
     10653    jmp near 0759fh                           ; e9 98 00
    1047210654    cmp AL, strict byte 008h                  ; 3c 08
    10473     jc short 0735bh                           ; 72 13
     10655    jc short 0751eh                           ; 72 13
    1047410656    test ch, ch                               ; 84 ed
    10475     jne short 07359h                          ; 75 0d
     10657    jne short 0751ch                          ; 75 0d
    1047610658    push 009d7h                               ; 68 d7 09
    1047710659    push strict byte 00002h                   ; 6a 02
    10478     call 01972h                               ; e8 1e a6
     10660    call 01972h                               ; e8 5b a4
    1047910661    add sp, strict byte 00004h                ; 83 c4 04
    1048010662    mov CH, strict byte 001h                  ; b5 01
    10481     jmp short 07331h                          ; eb d6
     10663    jmp short 074f4h                          ; eb d6
    1048210664    cmp AL, strict byte 004h                  ; 3c 04
    10483     jnc short 07376h                          ; 73 17
     10665    jnc short 07539h                          ; 73 17
    1048410666    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10485     jne short 07376h                          ; 75 11
     10667    jne short 07539h                          ; 75 11
    1048610668    push 009ech                               ; 68 ec 09
    1048710669    push strict byte 00002h                   ; 6a 02
    10488     call 01972h                               ; e8 05 a6
     10670    call 01972h                               ; e8 42 a4
    1048910671    add sp, strict byte 00004h                ; 83 c4 04
    1049010672    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    10491     jmp short 0738ch                          ; eb 16
     10673    jmp short 0754fh                          ; eb 16
    1049210674    cmp bh, 004h                              ; 80 ff 04
    10493     jc short 0738ch                           ; 72 11
     10675    jc short 0754fh                           ; 72 11
    1049410676    test cl, cl                               ; 84 c9
    10495     jne short 0738ch                          ; 75 0d
     10677    jne short 0754fh                          ; 75 0d
    1049610678    push 009feh                               ; 68 fe 09
    1049710679    push strict byte 00002h                   ; 6a 02
    10498     call 01972h                               ; e8 eb a5
     10680    call 01972h                               ; e8 28 a4
    1049910681    add sp, strict byte 00004h                ; 83 c4 04
    1050010682    mov CL, strict byte 001h                  ; b1 01
     
    1050410686    push 00a12h                               ; 68 12 0a
    1050510687    push strict byte 00002h                   ; 6a 02
    10506     call 01972h                               ; e8 d9 a5
     10688    call 01972h                               ; e8 16 a4
    1050710689    add sp, strict byte 00006h                ; 83 c4 06
    1050810690    cmp bh, 004h                              ; 80 ff 04
    10509     jc short 073a4h                           ; 72 03
     10691    jc short 07567h                           ; 72 03
    1051010692    sub bh, 004h                              ; 80 ef 04
    1051110693    movzx ax, bh                              ; 0f b6 c7
     
    1051510697    sar ax, 1                                 ; d1 f8
    1051610698    test ax, ax                               ; 85 c0
    10517     je short 073b5h                           ; 74 05
     10699    je short 07578h                           ; 74 05
    1051810700    push 00a1ch                               ; 68 1c 0a
    10519     jmp short 073b8h                          ; eb 03
     10701    jmp short 0757bh                          ; eb 03
    1052010702    push 00a27h                               ; 68 27 0a
    1052110703    push strict byte 00002h                   ; 6a 02
    10522     call 01972h                               ; e8 b5 a5
     10704    call 01972h                               ; e8 f2 a3
    1052310705    add sp, strict byte 00004h                ; 83 c4 04
    1052410706    movzx ax, bh                              ; 0f b6 c7
     
    1052710709    idiv di                                   ; f7 ff
    1052810710    test dx, dx                               ; 85 d2
    10529     je short 073d2h                           ; 74 05
     10711    je short 07595h                           ; 74 05
    1053010712    push 00a30h                               ; 68 30 0a
    10531     jmp short 073d5h                          ; eb 03
     10713    jmp short 07598h                          ; eb 03
    1053210714    push 00a36h                               ; 68 36 0a
    1053310715    push di                                   ; 57
    10534     call 01972h                               ; e8 99 a5
     10716    call 01972h                               ; e8 d6 a3
    1053510717    add sp, strict byte 00004h                ; 83 c4 04
    1053610718    db  0feh, 0c3h
    1053710719    ; inc bl                                    ; fe c3
    10538     jmp near 07307h                           ; e9 26 ff
     10720    jmp near 074cah                           ; e9 26 ff
    1053910721    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10540     jne short 073fah                          ; 75 13
     10722    jne short 075bdh                          ; 75 13
    1054110723    test cl, cl                               ; 84 c9
    10542     jne short 073fah                          ; 75 0f
     10724    jne short 075bdh                          ; 75 0f
    1054310725    test ch, ch                               ; 84 ed
    10544     jne short 073fah                          ; 75 0b
     10726    jne short 075bdh                          ; 75 0b
    1054510727    push 00a3dh                               ; 68 3d 0a
    1054610728    push strict byte 00002h                   ; 6a 02
    10547     call 01972h                               ; e8 7b a5
     10729    call 01972h                               ; e8 b8 a3
    1054810730    add sp, strict byte 00004h                ; 83 c4 04
    1054910731    push 00a51h                               ; 68 51 0a
    1055010732    push strict byte 00002h                   ; 6a 02
    10551     call 01972h                               ; e8 70 a5
     10733    call 01972h                               ; e8 ad a3
    1055210734    add sp, strict byte 00004h                ; 83 c4 04
    1055310735    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1055910741    pop bp                                    ; 5d
    1056010742    retn                                      ; c3
    10561 get_boot_drive_:                             ; 0xf740f LB 0x28
     10743get_boot_drive_:                             ; 0xf75d2 LB 0x28
    1056210744    push bp                                   ; 55
    1056310745    mov bp, sp                                ; 89 e5
     
    1056710749    mov dx, strict word 0000eh                ; ba 0e 00
    1056810750    mov ax, strict word 00040h                ; b8 40 00
    10569     call 0166ch                               ; e8 4d a2
     10751    call 0166ch                               ; e8 8a a0
    1057010752    mov dx, 002c0h                            ; ba c0 02
    10571     call 01650h                               ; e8 2b a2
     10753    call 01650h                               ; e8 68 a0
    1057210754    sub bl, 002h                              ; 80 eb 02
    1057310755    cmp bl, al                                ; 38 c3
    10574     jc short 0742eh                           ; 72 02
     10756    jc short 075f1h                           ; 72 02
    1057510757    mov BL, strict byte 0ffh                  ; b3 ff
    1057610758    mov al, bl                                ; 88 d8
     
    1058010762    pop bp                                    ; 5d
    1058110763    retn                                      ; c3
    10582 show_logo_:                                  ; 0xf7437 LB 0x224
     10764show_logo_:                                  ; 0xf75fa LB 0x224
    1058310765    push bp                                   ; 55
    1058410766    mov bp, sp                                ; 89 e5
     
    1059110773    mov dx, strict word 0000eh                ; ba 0e 00
    1059210774    mov ax, strict word 00040h                ; b8 40 00
    10593     call 0166ch                               ; e8 21 a2
     10775    call 0166ch                               ; e8 5e a0
    1059410776    mov si, ax                                ; 89 c6
    1059510777    xor cl, cl                                ; 30 c9
     
    1060210784    out strict byte 040h, AL                  ; e6 40
    1060310785    movzx ax, dl                              ; 0f b6 c2
    10604     call 072cbh                               ; e8 68 fe
     10786    call 0748eh                               ; e8 68 fe
    1060510787    cmp ax, 066bbh                            ; 3d bb 66
    10606     jne near 0753bh                           ; 0f 85 d1 00
     10788    jne near 076feh                           ; 0f 85 d1 00
    1060710789    push SS                                   ; 16
    1060810790    pop ES                                    ; 07
     
    1061210794    mov word [es:di], bx                      ; 26 89 1d
    1061310795    cmp ax, strict word 0004fh                ; 3d 4f 00
    10614     jne near 0753bh                           ; 0f 85 bd 00
     10796    jne near 076feh                           ; 0f 85 bd 00
    1061510797    mov al, dl                                ; 88 d0
    1061610798    add AL, strict byte 004h                  ; 04 04
    1061710799    xor ah, ah                                ; 30 e4
    10618     call 072b5h                               ; e8 2e fe
     10800    call 07478h                               ; e8 2e fe
    1061910801    mov ch, al                                ; 88 c5
    1062010802    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1062210804    add AL, strict byte 005h                  ; 04 05
    1062310805    xor ah, ah                                ; 30 e4
    10624     call 072b5h                               ; e8 20 fe
     10806    call 07478h                               ; e8 20 fe
    1062510807    mov dh, al                                ; 88 c6
    1062610808    mov byte [bp-010h], al                    ; 88 46 f0
     
    1062810810    add AL, strict byte 002h                  ; 04 02
    1062910811    xor ah, ah                                ; 30 e4
    10630     call 072cbh                               ; e8 28 fe
     10812    call 0748eh                               ; e8 28 fe
    1063110813    mov bx, ax                                ; 89 c3
    1063210814    mov word [bp-014h], ax                    ; 89 46 ec
     
    1063410816    add AL, strict byte 006h                  ; 04 06
    1063510817    xor ah, ah                                ; 30 e4
    10636     call 072b5h                               ; e8 04 fe
     10818    call 07478h                               ; e8 04 fe
    1063710819    mov byte [bp-012h], al                    ; 88 46 ee
    1063810820    test ch, ch                               ; 84 ed
    10639     jne short 074c2h                          ; 75 0a
     10821    jne short 07685h                          ; 75 0a
    1064010822    test dh, dh                               ; 84 f6
    10641     jne short 074c2h                          ; 75 06
     10823    jne short 07685h                          ; 75 06
    1064210824    test bx, bx                               ; 85 db
    10643     je near 0753bh                            ; 0f 84 79 00
     10825    je near 076feh                            ; 0f 84 79 00
    1064410826    mov bx, 00142h                            ; bb 42 01
    1064510827    mov ax, 04f02h                            ; b8 02 4f
    1064610828    int 010h                                  ; cd 10
    1064710829    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10648     je short 074f3h                           ; 74 23
     10830    je short 076b6h                           ; 74 23
    1064910831    xor bx, bx                                ; 31 db
    10650     jmp short 074dah                          ; eb 06
     10832    jmp short 0769dh                          ; eb 06
    1065110833    inc bx                                    ; 43
    1065210834    cmp bx, strict byte 00010h                ; 83 fb 10
    10653     jnbe short 074fah                         ; 77 20
     10835    jnbe short 076bdh                         ; 77 20
    1065410836    mov ax, bx                                ; 89 d8
    1065510837    or ah, 002h                               ; 80 cc 02
     
    1065810840    xor dx, dx                                ; 31 d2
    1065910841    mov ax, strict word 00001h                ; b8 01 00
    10660     call 07203h                               ; e8 18 fd
     10842    call 073c6h                               ; e8 18 fd
    1066110843    cmp AL, strict byte 086h                  ; 3c 86
    10662     jne short 074d4h                          ; 75 e5
     10844    jne short 07697h                          ; 75 e5
    1066310845    mov CL, strict byte 001h                  ; b1 01
    10664     jmp short 074fah                          ; eb 07
     10846    jmp short 076bdh                          ; eb 07
    1066510847    mov ax, 00210h                            ; b8 10 02
    1066610848    mov dx, 003b8h                            ; ba b8 03
    1066710849    out DX, ax                                ; ef
    1066810850    test cl, cl                               ; 84 c9
    10669     jne short 07510h                          ; 75 12
     10851    jne short 076d3h                          ; 75 12
    1067010852    mov ax, word [bp-014h]                    ; 8b 46 ec
    1067110853    shr ax, 004h                              ; c1 e8 04
    1067210854    mov dx, strict word 00001h                ; ba 01 00
    10673     call 07203h                               ; e8 f9 fc
     10855    call 073c6h                               ; e8 f9 fc
    1067410856    cmp AL, strict byte 086h                  ; 3c 86
    10675     jne short 07510h                          ; 75 02
     10857    jne short 076d3h                          ; 75 02
    1067610858    mov CL, strict byte 001h                  ; b1 01
    1067710859    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10678     je short 0753bh                           ; 74 25
     10860    je short 076feh                           ; 74 25
    1067910861    test cl, cl                               ; 84 c9
    10680     jne short 0753bh                          ; 75 21
     10862    jne short 076feh                          ; 75 21
    1068110863    mov bx, strict word 00010h                ; bb 10 00
    10682     jmp short 07524h                          ; eb 05
     10864    jmp short 076e7h                          ; eb 05
    1068310865    dec bx                                    ; 4b
    1068410866    test bx, bx                               ; 85 db
    10685     jbe short 0753bh                          ; 76 17
     10867    jbe short 076feh                          ; 76 17
    1068610868    mov ax, bx                                ; 89 d8
    1068710869    or ah, 002h                               ; 80 cc 02
     
    1069010872    xor dx, dx                                ; 31 d2
    1069110873    mov ax, strict word 00001h                ; b8 01 00
    10692     call 07203h                               ; e8 ce fc
     10874    call 073c6h                               ; e8 ce fc
    1069310875    cmp AL, strict byte 086h                  ; 3c 86
    10694     jne short 0751fh                          ; 75 e6
     10876    jne short 076e2h                          ; 75 e6
    1069510877    mov CL, strict byte 001h                  ; b1 01
    1069610878    xor bx, bx                                ; 31 db
    1069710879    mov dx, 00339h                            ; ba 39 03
    1069810880    mov ax, si                                ; 89 f0
    10699     call 0165eh                               ; e8 19 a1
     10881    call 0165eh                               ; e8 56 9f
    1070010882    mov AL, strict byte 003h                  ; b0 03
    1070110883    mov AH, strict byte 000h                  ; b4 00
    1070210884    int 010h                                  ; cd 10
    1070310885    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    10704     je near 0763ch                            ; 0f 84 e9 00
     10886    je near 077ffh                            ; 0f 84 e9 00
    1070510887    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10706     jne short 07589h                          ; 75 30
     10888    jne short 0774ch                          ; 75 30
    1070710889    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10708     jne short 07589h                          ; 75 2a
     10890    jne short 0774ch                          ; 75 2a
    1070910891    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    10710     jne short 07589h                          ; 75 24
     10892    jne short 0774ch                          ; 75 24
    1071110893    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    10712     jne short 07576h                          ; 75 0b
     10894    jne short 07739h                          ; 75 0b
    1071310895    push 00a53h                               ; 68 53 0a
    1071410896    push strict byte 00002h                   ; 6a 02
    10715     call 01972h                               ; e8 ff a3
     10897    call 01972h                               ; e8 3c a2
    1071610898    add sp, strict byte 00004h                ; 83 c4 04
    1071710899    test cl, cl                               ; 84 c9
    10718     jne short 07589h                          ; 75 0f
     10900    jne short 0774ch                          ; 75 0f
    1071910901    mov dx, strict word 00001h                ; ba 01 00
    1072010902    mov ax, 000c0h                            ; b8 c0 00
    10721     call 07203h                               ; e8 80 fc
     10903    call 073c6h                               ; e8 80 fc
    1072210904    cmp AL, strict byte 086h                  ; 3c 86
    10723     jne short 07589h                          ; 75 02
     10905    jne short 0774ch                          ; 75 02
    1072410906    mov CL, strict byte 001h                  ; b1 01
    1072510907    test cl, cl                               ; 84 c9
    10726     je near 0763ch                            ; 0f 84 ad 00
     10908    je near 077ffh                            ; 0f 84 ad 00
    1072710909    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1072810910    mov ax, 00100h                            ; b8 00 01
     
    1074310925    push 00a75h                               ; 68 75 0a
    1074410926    push strict byte 00002h                   ; 6a 02
    10745     call 01972h                               ; e8 ba a3
     10927    call 01972h                               ; e8 f7 a1
    1074610928    add sp, strict byte 00004h                ; 83 c4 04
    10747     call 072dfh                               ; e8 21 fd
     10929    call 074a2h                               ; e8 21 fd
    1074810930    push 00ab9h                               ; 68 b9 0a
    1074910931    push strict byte 00002h                   ; 6a 02
    10750     call 01972h                               ; e8 ac a3
     10932    call 01972h                               ; e8 e9 a1
    1075110933    add sp, strict byte 00004h                ; 83 c4 04
    1075210934    mov dx, strict word 00001h                ; ba 01 00
    1075310935    mov ax, strict word 00040h                ; b8 40 00
    10754     call 07203h                               ; e8 31 fc
     10936    call 073c6h                               ; e8 31 fc
    1075510937    mov bl, al                                ; 88 c3
    1075610938    test al, al                               ; 84 c0
    10757     je short 075c9h                           ; 74 f1
     10939    je short 0778ch                           ; 74 f1
    1075810940    cmp AL, strict byte 030h                  ; 3c 30
    10759     je short 0762ah                           ; 74 4e
     10941    je short 077edh                           ; 74 4e
    1076010942    cmp bl, 002h                              ; 80 fb 02
    10761     jc short 07603h                           ; 72 22
     10943    jc short 077c6h                           ; 72 22
    1076210944    cmp bl, 009h                              ; 80 fb 09
    10763     jnbe short 07603h                         ; 77 1d
     10945    jnbe short 077c6h                         ; 77 1d
    1076410946    movzx ax, bl                              ; 0f b6 c3
    10765     call 0740fh                               ; e8 23 fe
     10947    call 075d2h                               ; e8 23 fe
    1076610948    cmp AL, strict byte 0ffh                  ; 3c ff
    10767     jne short 075f2h                          ; 75 02
    10768     jmp short 075c9h                          ; eb d7
     10949    jne short 077b5h                          ; 75 02
     10950    jmp short 0778ch                          ; eb d7
    1076910951    movzx bx, al                              ; 0f b6 d8
    1077010952    mov dx, 00338h                            ; ba 38 03
    1077110953    mov ax, si                                ; 89 f0
    10772     call 0165eh                               ; e8 61 a0
     10954    call 0165eh                               ; e8 9e 9e
    1077310955    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    10774     jmp short 0762ah                          ; eb 27
     10956    jmp short 077edh                          ; eb 27
    1077510957    cmp bl, 02eh                              ; 80 fb 2e
    10776     je short 07618h                           ; 74 10
     10958    je short 077dbh                           ; 74 10
    1077710959    cmp bl, 026h                              ; 80 fb 26
    10778     je short 0761eh                           ; 74 11
     10960    je short 077e1h                           ; 74 11
    1077910961    cmp bl, 021h                              ; 80 fb 21
    10780     jne short 07624h                          ; 75 12
     10962    jne short 077e7h                          ; 75 12
    1078110963    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    10782     jmp short 0762ah                          ; eb 12
     10964    jmp short 077edh                          ; eb 12
    1078310965    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    10784     jmp short 0762ah                          ; eb 0c
     10966    jmp short 077edh                          ; eb 0c
    1078510967    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    10786     jmp short 0762ah                          ; eb 06
     10968    jmp short 077edh                          ; eb 06
    1078710969    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    10788     je short 075c9h                           ; 74 9f
     10970    je short 0778ch                           ; 74 9f
    1078910971    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1079010972    mov dx, 00339h                            ; ba 39 03
    1079110973    mov ax, si                                ; 89 f0
    10792     call 0165eh                               ; e8 28 a0
     10974    call 0165eh                               ; e8 65 9e
    1079310975    mov AL, strict byte 003h                  ; b0 03
    1079410976    mov AH, strict byte 000h                  ; b4 00
     
    1080310985    push DS                                   ; 1e
    1080410986    mov ds, ax                                ; 8e d8
    10805     call 0edbfh                               ; e8 71 77
     10987    call 0edbfh                               ; e8 ae 75
    1080610988    pop DS                                    ; 1f
    1080710989    popad                                     ; 66 61
     
    1081410996    pop bp                                    ; 5d
    1081510997    retn                                      ; c3
    10816 delay_boot_:                                 ; 0xf765b LB 0x67
     10998delay_boot_:                                 ; 0xf781e LB 0x67
    1081710999    push bp                                   ; 55
    1081811000    mov bp, sp                                ; 89 e5
     
    1082111003    mov dx, ax                                ; 89 c2
    1082211004    test ax, ax                               ; 85 c0
    10823     je short 076bbh                           ; 74 55
     11005    je short 0787eh                           ; 74 55
    1082411006    mov AL, strict byte 034h                  ; b0 34
    1082511007    out strict byte 043h, AL                  ; e6 43
     
    1083111013    push 00b03h                               ; 68 03 0b
    1083211014    push strict byte 00002h                   ; 6a 02
    10833     call 01972h                               ; e8 f7 a2
     11015    call 01972h                               ; e8 34 a1
    1083411016    add sp, strict byte 00006h                ; 83 c4 06
    1083511017    mov bx, dx                                ; 89 d3
    1083611018    test bx, bx                               ; 85 db
    10837     jbe short 0769bh                          ; 76 17
     11019    jbe short 0785eh                          ; 76 17
    1083811020    push bx                                   ; 53
    1083911021    push 00b21h                               ; 68 21 0b
    1084011022    push strict byte 00002h                   ; 6a 02
    10841     call 01972h                               ; e8 e5 a2
     11023    call 01972h                               ; e8 22 a1
    1084211024    add sp, strict byte 00006h                ; 83 c4 06
    1084311025    xor dx, dx                                ; 31 d2
    1084411026    mov ax, strict word 00040h                ; b8 40 00
    10845     call 07203h                               ; e8 6b fb
     11027    call 073c6h                               ; e8 6b fb
    1084611028    dec bx                                    ; 4b
    10847     jmp short 07680h                          ; eb e5
     11029    jmp short 07843h                          ; eb e5
    1084811030    push 00a51h                               ; 68 51 0a
    1084911031    push strict byte 00002h                   ; 6a 02
    10850     call 01972h                               ; e8 cf a2
     11032    call 01972h                               ; e8 0c a1
    1085111033    add sp, strict byte 00004h                ; 83 c4 04
    1085211034    mov AL, strict byte 034h                  ; b0 34
     
    1085911041    push DS                                   ; 1e
    1086011042    mov ds, ax                                ; 8e d8
    10861     call 0edbfh                               ; e8 07 77
     11043    call 0edbfh                               ; e8 44 75
    1086211044    pop DS                                    ; 1f
    1086311045    popad                                     ; 66 61
     
    1086711049    pop bp                                    ; 5d
    1086811050    retn                                      ; c3
    10869 scsi_cmd_data_in_:                           ; 0xf76c2 LB 0xb2
     11051scsi_cmd_data_in_:                           ; 0xf7885 LB 0xb2
    1087011052    push bp                                   ; 55
    1087111053    mov bp, sp                                ; 89 e5
     
    1088311065    ; sub ah, ah                                ; 2a e4
    1088411066    test AL, strict byte 001h                 ; a8 01
    10885     jne short 076d8h                          ; 75 f7
     11067    jne short 0789bh                          ; 75 f7
    1088611068    mov ax, bx                                ; 89 d8
    1088711069    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1088911071    shr dx, 1                                 ; d1 ea
    1089011072    rcr ax, 1                                 ; d1 d8
    10891     loop 076e9h                               ; e2 fa
     11073    loop 078ach                               ; e2 fa
    1089211074    and ax, 000f0h                            ; 25 f0 00
    1089311075    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1090711089    shr dx, 1                                 ; d1 ea
    1090811090    rcr ax, 1                                 ; d1 d8
    10909     loop 0770fh                               ; e2 fa
     11091    loop 078d2h                               ; e2 fa
    1091011092    mov dx, si                                ; 89 f2
    1091111093    out DX, AL                                ; ee
     
    1091311095    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1091411096    cmp cx, ax                                ; 39 c1
    10915     jnc short 07730h                          ; 73 0e
     11097    jnc short 078f3h                          ; 73 0e
    1091611098    les di, [bp-00ah]                         ; c4 7e f6
    1091711099    add di, cx                                ; 01 cf
     
    1092011102    out DX, AL                                ; ee
    1092111103    inc cx                                    ; 41
    10922     jmp short 0771ah                          ; eb ea
     11104    jmp short 078ddh                          ; eb ea
    1092311105    mov dx, si                                ; 89 f2
    1092411106    in AL, DX                                 ; ec
     
    1092611108    ; sub ah, ah                                ; 2a e4
    1092711109    test AL, strict byte 001h                 ; a8 01
    10928     jne short 07730h                          ; 75 f7
     11110    jne short 078f3h                          ; 75 f7
    1092911111    lea dx, [si+001h]                         ; 8d 54 01
    1093011112    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10931     jne short 07748h                          ; 75 06
     11113    jne short 0790bh                          ; 75 06
    1093211114    cmp bx, 08000h                            ; 81 fb 00 80
    10933     jbe short 07762h                          ; 76 1a
     11115    jbe short 07925h                          ; 76 1a
    1093411116    mov cx, 08000h                            ; b9 00 80
    1093511117    les di, [bp+006h]                         ; c4 7e 06
     
    1094011122    add ax, 00800h                            ; 05 00 08
    1094111123    mov word [bp+008h], ax                    ; 89 46 08
    10942     jmp short 07739h                          ; eb d7
     11124    jmp short 078fch                          ; eb d7
    1094311125    mov cx, bx                                ; 89 d9
    1094411126    les di, [bp+006h]                         ; c4 7e 06
     
    1095011132    pop bp                                    ; 5d
    1095111133    retn 0000ah                               ; c2 0a 00
    10952 scsi_cmd_data_out_:                          ; 0xf7774 LB 0xb4
     11134scsi_cmd_data_out_:                          ; 0xf7937 LB 0xb4
    1095311135    push bp                                   ; 55
    1095411136    mov bp, sp                                ; 89 e5
     
    1096611148    ; sub ah, ah                                ; 2a e4
    1096711149    test AL, strict byte 001h                 ; a8 01
    10968     jne short 0778ah                          ; 75 f7
     11150    jne short 0794dh                          ; 75 f7
    1096911151    mov ax, bx                                ; 89 d8
    1097011152    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1097211154    shr dx, 1                                 ; d1 ea
    1097311155    rcr ax, 1                                 ; d1 d8
    10974     loop 0779bh                               ; e2 fa
     11156    loop 0795eh                               ; e2 fa
    1097511157    and ax, 000f0h                            ; 25 f0 00
    1097611158    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1099011172    shr dx, 1                                 ; d1 ea
    1099111173    rcr ax, 1                                 ; d1 d8
    10992     loop 077c1h                               ; e2 fa
     11174    loop 07984h                               ; e2 fa
    1099311175    mov dx, di                                ; 89 fa
    1099411176    out DX, AL                                ; ee
     
    1099611178    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1099711179    cmp cx, ax                                ; 39 c1
    10998     jnc short 077e2h                          ; 73 0e
     11180    jnc short 079a5h                          ; 73 0e
    1099911181    les si, [bp-00ah]                         ; c4 76 f6
    1100011182    add si, cx                                ; 01 ce
     
    1100311185    out DX, AL                                ; ee
    1100411186    inc cx                                    ; 41
    11005     jmp short 077cch                          ; eb ea
     11187    jmp short 0798fh                          ; eb ea
    1100611188    lea dx, [di+001h]                         ; 8d 55 01
    1100711189    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11008     jne short 077f1h                          ; 75 06
     11190    jne short 079b4h                          ; 75 06
    1100911191    cmp bx, 08000h                            ; 81 fb 00 80
    11010     jbe short 0780ch                          ; 76 1b
     11192    jbe short 079cfh                          ; 76 1b
    1101111193    mov cx, 08000h                            ; b9 00 80
    1101211194    les si, [bp+006h]                         ; c4 76 06
     
    1101811200    add ax, 00800h                            ; 05 00 08
    1101911201    mov word [bp+008h], ax                    ; 89 46 08
    11020     jmp short 077e2h                          ; eb d6
     11202    jmp short 079a5h                          ; eb d6
    1102111203    mov cx, bx                                ; 89 d9
    1102211204    les si, [bp+006h]                         ; c4 76 06
     
    1102811210    ; sub ah, ah                                ; 2a e4
    1102911211    test AL, strict byte 001h                 ; a8 01
    11030     jne short 07814h                          ; 75 f7
     11212    jne short 079d7h                          ; 75 f7
    1103111213    xor ax, ax                                ; 31 c0
    1103211214    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1103511217    pop bp                                    ; 5d
    1103611218    retn 0000ah                               ; c2 0a 00
    11037 @scsi_read_sectors:                          ; 0xf7828 LB 0xb9
     11219@scsi_read_sectors:                          ; 0xf79eb LB 0xb9
    1103811220    push bp                                   ; 55
    1103911221    mov bp, sp                                ; 89 e5
     
    1104611228    sub bl, 008h                              ; 80 eb 08
    1104711229    cmp bl, 004h                              ; 80 fb 04
    11048     jbe short 07854h                          ; 76 12
     11230    jbe short 07a17h                          ; 76 12
    1104911231    movzx ax, bl                              ; 0f b6 c3
    1105011232    push ax                                   ; 50
     
    1105211234    push 00b38h                               ; 68 38 0b
    1105311235    push strict byte 00007h                   ; 6a 07
    11054     call 01972h                               ; e8 21 a1
     11236    call 01972h                               ; e8 5e 9f
    1105511237    add sp, strict byte 00008h                ; 83 c4 08
    1105611238    mov es, [bp+006h]                         ; 8e 46 06
     
    1107911261    sal word [bp-008h], 1                     ; d1 66 f8
    1108011262    rcl word [bp-006h], 1                     ; d1 56 fa
    11081     loop 0789dh                               ; e2 f8
     11263    loop 07a60h                               ; e2 f8
    1108211264    push dword [bp-008h]                      ; 66 ff 76 f8
    1108311265    db  066h, 026h, 0ffh, 074h, 004h
     
    1108711269    mov cx, ss                                ; 8c d1
    1108811270    lea bx, [bp-012h]                         ; 8d 5e ee
    11089     call 076c2h                               ; e8 08 fe
     11271    call 07885h                               ; e8 08 fe
    1109011272    mov ah, al                                ; 88 c4
    1109111273    test al, al                               ; 84 c0
    11092     jne short 078d5h                          ; 75 15
     11274    jne short 07a98h                          ; 75 15
    1109311275    mov es, [bp+006h]                         ; 8e 46 06
    1109411276    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1110311285    pop bp                                    ; 5d
    1110411286    retn 00004h                               ; c2 04 00
    11105 @scsi_write_sectors:                         ; 0xf78e1 LB 0xb9
     11287@scsi_write_sectors:                         ; 0xf7aa4 LB 0xb9
    1110611288    push bp                                   ; 55
    1110711289    mov bp, sp                                ; 89 e5
     
    1111411296    sub bl, 008h                              ; 80 eb 08
    1111511297    cmp bl, 004h                              ; 80 fb 04
    11116     jbe short 0790dh                          ; 76 12
     11298    jbe short 07ad0h                          ; 76 12
    1111711299    movzx ax, bl                              ; 0f b6 c3
    1111811300    push ax                                   ; 50
     
    1112011302    push 00b38h                               ; 68 38 0b
    1112111303    push strict byte 00007h                   ; 6a 07
    11122     call 01972h                               ; e8 68 a0
     11304    call 01972h                               ; e8 a5 9e
    1112311305    add sp, strict byte 00008h                ; 83 c4 08
    1112411306    mov es, [bp+006h]                         ; 8e 46 06
     
    1114711329    sal word [bp-008h], 1                     ; d1 66 f8
    1114811330    rcl word [bp-006h], 1                     ; d1 56 fa
    11149     loop 07956h                               ; e2 f8
     11331    loop 07b19h                               ; e2 f8
    1115011332    push dword [bp-008h]                      ; 66 ff 76 f8
    1115111333    db  066h, 026h, 0ffh, 074h, 004h
     
    1115511337    mov cx, ss                                ; 8c d1
    1115611338    lea bx, [bp-012h]                         ; 8d 5e ee
    11157     call 07774h                               ; e8 01 fe
     11339    call 07937h                               ; e8 01 fe
    1115811340    mov ah, al                                ; 88 c4
    1115911341    test al, al                               ; 84 c0
    11160     jne short 0798eh                          ; 75 15
     11342    jne short 07b51h                          ; 75 15
    1116111343    mov es, [bp+006h]                         ; 8e 46 06
    1116211344    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1117111353    pop bp                                    ; 5d
    1117211354    retn 00004h                               ; c2 04 00
    11173 scsi_cmd_packet_:                            ; 0xf799a LB 0x166
     11355scsi_cmd_packet_:                            ; 0xf7b5d LB 0x166
    1117411356    push bp                                   ; 55
    1117511357    mov bp, sp                                ; 89 e5
     
    1118311365    mov dx, strict word 0000eh                ; ba 0e 00
    1118411366    mov ax, strict word 00040h                ; b8 40 00
    11185     call 0166ch                               ; e8 b6 9c
     11367    call 0166ch                               ; e8 f3 9a
    1118611368    mov si, 00122h                            ; be 22 01
    1118711369    mov word [bp-00eh], ax                    ; 89 46 f2
    1118811370    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11189     jne short 079e1h                          ; 75 1f
    11190     mov bx, 00da2h                            ; bb a2 0d
     11371    jne short 07ba4h                          ; 75 1f
     11372    mov bx, 00da8h                            ; bb a8 0d
    1119111373    mov cx, ds                                ; 8c d9
    1119211374    mov ax, strict word 00004h                ; b8 04 00
    11193     call 01931h                               ; e8 64 9f
     11375    call 01931h                               ; e8 a1 9d
    1119411376    push 00b6ah                               ; 68 6a 0b
    1119511377    push 00b7ah                               ; 68 7a 0b
    1119611378    push strict byte 00004h                   ; 6a 04
    11197     call 01972h                               ; e8 9a 9f
     11379    call 01972h                               ; e8 d7 9d
    1119811380    add sp, strict byte 00006h                ; 83 c4 06
    1119911381    mov dx, strict word 00001h                ; ba 01 00
    11200     jmp near 07af5h                           ; e9 14 01
     11382    jmp near 07cb8h                           ; e9 14 01
    1120111383    sub di, strict byte 00008h                ; 83 ef 08
    1120211384    sal di, 002h                              ; c1 e7 02
     
    1121211394    ; sub ah, ah                                ; 2a e4
    1121311395    test AL, strict byte 001h                 ; a8 01
    11214     jne short 079fdh                          ; 75 f7
     11396    jne short 07bc0h                          ; 75 f7
    1121511397    xor ax, ax                                ; 31 c0
    1121611398    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1122811410    shr dx, 1                                 ; d1 ea
    1122911411    rcr ax, 1                                 ; d1 d8
    11230     loop 07a28h                               ; e2 fa
     11412    loop 07bebh                               ; e2 fa
    1123111413    and ax, 000f0h                            ; 25 f0 00
    1123211414    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1124611428    shr dx, 1                                 ; d1 ea
    1124711429    rcr ax, 1                                 ; d1 d8
    11248     loop 07a4fh                               ; e2 fa
     11430    loop 07c12h                               ; e2 fa
    1124911431    mov dx, bx                                ; 89 da
    1125011432    out DX, AL                                ; ee
     
    1125211434    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1125311435    cmp cx, ax                                ; 39 c1
    11254     jnc short 07a70h                          ; 73 0e
     11436    jnc short 07c33h                          ; 73 0e
    1125511437    les di, [bp-00ch]                         ; c4 7e f4
    1125611438    add di, cx                                ; 01 cf
     
    1125911441    out DX, AL                                ; ee
    1126011442    inc cx                                    ; 41
    11261     jmp short 07a5ah                          ; eb ea
     11443    jmp short 07c1dh                          ; eb ea
    1126211444    mov dx, bx                                ; 89 da
    1126311445    in AL, DX                                 ; ec
     
    1126511447    ; sub ah, ah                                ; 2a e4
    1126611448    test AL, strict byte 001h                 ; a8 01
    11267     jne short 07a70h                          ; 75 f7
     11449    jne short 07c33h                          ; 75 f7
    1126811450    test AL, strict byte 002h                 ; a8 02
    11269     je short 07a8bh                           ; 74 0e
     11451    je short 07c4eh                           ; 74 0e
    1127011452    lea dx, [bx+003h]                         ; 8d 57 03
    1127111453    xor al, al                                ; 30 c0
     
    1127511457    ; sub ah, ah                                ; 2a e4
    1127611458    mov dx, strict word 00003h                ; ba 03 00
    11277     jmp short 07af5h                          ; eb 6a
     11459    jmp short 07cb8h                          ; eb 6a
    1127811460    mov ax, word [bp+004h]                    ; 8b 46 04
    1127911461    test ax, ax                               ; 85 c0
    11280     je short 07a9ah                           ; 74 08
     11462    je short 07c5dh                           ; 74 08
    1128111463    lea dx, [bx+001h]                         ; 8d 57 01
    1128211464    mov cx, ax                                ; 89 c1
    1128311465    in AL, DX                                 ; ec
    11284     loop 07a97h                               ; e2 fd
     11466    loop 07c5ah                               ; e2 fd
    1128511467    mov ax, word [bp+006h]                    ; 8b 46 06
    1128611468    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1129011472    lea ax, [bx+001h]                         ; 8d 47 01
    1129111473    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11292     jne short 07abbh                          ; 75 07
     11474    jne short 07c7eh                          ; 75 07
    1129311475    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11294     jbe short 07ad8h                          ; 76 1d
     11476    jbe short 07c9bh                          ; 76 1d
    1129511477    mov dx, ax                                ; 89 c2
    1129611478    mov cx, 08000h                            ; b9 00 80
     
    1130211484    add ax, 00800h                            ; 05 00 08
    1130311485    mov word [bp+00eh], ax                    ; 89 46 0e
    11304     jmp short 07aabh                          ; eb d3
     11486    jmp short 07c6eh                          ; eb d3
    1130511487    mov dx, ax                                ; 89 c2
    1130611488    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1130911491    mov es, [bp-00eh]                         ; 8e 46 f2
    1131011492    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11311     je short 07af3h                           ; 74 07
     11493    je short 07cb6h                           ; 74 07
    1131211494    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1131311495    in AL, DX                                 ; ec
    11314     loop 07af0h                               ; e2 fd
     11496    loop 07cb3h                               ; e2 fd
    1131511497    xor dx, dx                                ; 31 d2
    1131611498    mov ax, dx                                ; 89 d0
     
    1132011502    pop bp                                    ; 5d
    1132111503    retn 0000ch                               ; c2 0c 00
    11322 scsi_enumerate_attached_devices_:            ; 0xf7b00 LB 0x3e5
     11504scsi_enumerate_attached_devices_:            ; 0xf7cc3 LB 0x3e5
    1132311505    push bp                                   ; 55
    1132411506    mov bp, sp                                ; 89 e5
     
    1133211514    mov dx, strict word 0000eh                ; ba 0e 00
    1133311515    mov ax, strict word 00040h                ; b8 40 00
    11334     call 0166ch                               ; e8 56 9b
     11516    call 0166ch                               ; e8 93 99
    1133511517    mov si, 00122h                            ; be 22 01
    1133611518    mov word [bp-01ah], ax                    ; 89 46 e6
    1133711519    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    11338     jmp near 07e73h                           ; e9 4f 03
     11520    jmp near 08036h                           ; e9 4f 03
    1133911521    mov es, [bp-01ah]                         ; 8e 46 e6
    1134011522    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11341     jnc near 07edbh                           ; 0f 83 aa 03
     11523    jnc near 0809eh                           ; 0f 83 aa 03
    1134211524    mov cx, strict word 0000ah                ; b9 0a 00
    1134311525    xor bx, bx                                ; 31 db
    1134411526    mov dx, ss                                ; 8c d2
    1134511527    lea ax, [bp-026h]                         ; 8d 46 da
    11346     call 0959ah                               ; e8 5c 1a
     11528    call 0975ah                               ; e8 59 1a
    1134711529    mov byte [bp-026h], 025h                  ; c6 46 da 25
    1134811530    push dword 000000008h                     ; 66 6a 08
     
    1135511537    lea bx, [bp-026h]                         ; 8d 5e da
    1135611538    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11357     call 076c2h                               ; e8 65 fb
     11539    call 07885h                               ; e8 65 fb
    1135811540    test al, al                               ; 84 c0
    11359     je short 07b6fh                           ; 74 0e
     11541    je short 07d32h                           ; 74 0e
    1136011542    push 00b9ah                               ; 68 9a 0b
    1136111543    push 00bd3h                               ; 68 d3 0b
    1136211544    push strict byte 00007h                   ; 6a 07
    11363     call 01972h                               ; e8 06 9e
     11545    call 01972h                               ; e8 43 9c
    1136411546    add sp, strict byte 00006h                ; 83 c4 06
    1136511547    movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
     
    1137311555    sal ax, 1                                 ; d1 e0
    1137411556    rcl dx, 1                                 ; d1 d2
    11375     loop 07b8ah                               ; e2 fa
     11557    loop 07d4dh                               ; e2 fa
    1137611558    or bx, ax                                 ; 09 c3
    1137711559    or dx, di                                 ; 09 fa
     
    1139011572    sal ax, 1                                 ; d1 e0
    1139111573    rcl dx, 1                                 ; d1 d2
    11392     loop 07bbch                               ; e2 fa
     11574    loop 07d7fh                               ; e2 fa
    1139311575    or ax, bx                                 ; 09 d8
    1139411576    or dx, di                                 ; 09 fa
     
    1139711579    mov word [bp-016h], ax                    ; 89 46 ea
    1139811580    test dx, dx                               ; 85 d2
    11399     jne short 07bd9h                          ; 75 05
     11581    jne short 07d9ch                          ; 75 05
    1140011582    cmp ax, 00200h                            ; 3d 00 02
    11401     je short 07bf9h                           ; 74 20
    11402     mov bx, 00da2h                            ; bb a2 0d
     11583    je short 07dbch                           ; 74 20
     11584    mov bx, 00da8h                            ; bb a8 0d
    1140311585    mov cx, ds                                ; 8c d9
    1140411586    mov ax, strict word 00004h                ; b8 04 00
    11405     call 01931h                               ; e8 4d 9d
     11587    call 01931h                               ; e8 8a 9b
    1140611588    push dx                                   ; 52
    1140711589    push word [bp-016h]                       ; ff 76 ea
     
    1140911591    push 00bf2h                               ; 68 f2 0b
    1141011592    push strict byte 00004h                   ; 6a 04
    11411     call 01972h                               ; e8 7f 9d
     11593    call 01972h                               ; e8 bc 9b
    1141211594    add sp, strict byte 0000ah                ; 83 c4 0a
    11413     jmp near 07e6ah                           ; e9 71 02
     11595    jmp near 0802dh                           ; e9 71 02
    1141411596    mov es, [bp-01ah]                         ; 8e 46 e6
    1141511597    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    1141611598    mov byte [bp-00ch], al                    ; 88 46 f4
    1141711599    cmp AL, strict byte 001h                  ; 3c 01
    11418     jc short 07c14h                           ; 72 0c
    11419     jbe short 07c1ch                          ; 76 12
     11600    jc short 07dd7h                           ; 72 0c
     11601    jbe short 07ddfh                          ; 76 12
    1142011602    cmp AL, strict byte 003h                  ; 3c 03
    11421     je short 07c24h                           ; 74 16
     11603    je short 07de7h                           ; 74 16
    1142211604    cmp AL, strict byte 002h                  ; 3c 02
    11423     je short 07c20h                           ; 74 0e
    11424     jmp short 07c70h                          ; eb 5c
     11605    je short 07de3h                           ; 74 0e
     11606    jmp short 07e33h                          ; eb 5c
    1142511607    test al, al                               ; 84 c0
    11426     jne short 07c70h                          ; 75 58
     11608    jne short 07e33h                          ; 75 58
    1142711609    mov BL, strict byte 090h                  ; b3 90
    11428     jmp short 07c26h                          ; eb 0a
     11610    jmp short 07de9h                          ; eb 0a
    1142911611    mov BL, strict byte 098h                  ; b3 98
    11430     jmp short 07c26h                          ; eb 06
     11612    jmp short 07de9h                          ; eb 06
    1143111613    mov BL, strict byte 0a0h                  ; b3 a0
    11432     jmp short 07c26h                          ; eb 02
     11614    jmp short 07de9h                          ; eb 02
    1143311615    mov BL, strict byte 0a8h                  ; b3 a8
    1143411616    mov al, bl                                ; 88 d8
     
    1143611618    movzx cx, al                              ; 0f b6 c8
    1143711619    mov ax, cx                                ; 89 c8
    11438     call 016ach                               ; e8 7a 9a
     11620    call 016ach                               ; e8 b7 98
    1143911621    test al, al                               ; 84 c0
    11440     je short 07c70h                           ; 74 3a
     11622    je short 07e33h                           ; 74 3a
    1144111623    mov al, bl                                ; 88 d8
    1144211624    db  0feh, 0c0h
    1144311625    ; inc al                                    ; fe c0
    1144411626    xor ah, ah                                ; 30 e4
    11445     call 016ach                               ; e8 6d 9a
     11627    call 016ach                               ; e8 aa 98
    1144611628    xor ah, ah                                ; 30 e4
    1144711629    mov dx, ax                                ; 89 c2
    1144811630    sal dx, 008h                              ; c1 e2 08
    1144911631    movzx ax, bl                              ; 0f b6 c3
    11450     call 016ach                               ; e8 60 9a
     11632    call 016ach                               ; e8 9d 98
    1145111633    xor ah, ah                                ; 30 e4
    1145211634    add ax, dx                                ; 01 d0
     
    1145711639    add AL, strict byte 002h                  ; 04 02
    1145811640    xor ah, ah                                ; 30 e4
    11459     call 016ach                               ; e8 4d 9a
     11641    call 016ach                               ; e8 8a 98
    1146011642    xor ah, ah                                ; 30 e4
    1146111643    mov word [bp-014h], ax                    ; 89 46 ec
    1146211644    mov ax, cx                                ; 89 c8
    11463     call 016ach                               ; e8 43 9a
     11645    call 016ach                               ; e8 80 98
    1146411646    xor ah, ah                                ; 30 e4
    1146511647    mov word [bp-01ch], ax                    ; 89 46 e4
    11466     jmp short 07cb5h                          ; eb 45
     11648    jmp short 07e78h                          ; eb 45
    1146711649    mov ax, word [bp-018h]                    ; 8b 46 e8
    1146811650    cmp ax, strict word 00040h                ; 3d 40 00
    11469     jnbe short 07c7ah                         ; 77 02
    11470     jne short 07c86h                          ; 75 0c
     11651    jnbe short 07e3dh                         ; 77 02
     11652    jne short 07e49h                          ; 75 0c
    1147111653    mov word [bp-014h], 000ffh                ; c7 46 ec ff 00
    1147211654    mov word [bp-01ch], strict word 0003fh    ; c7 46 e4 3f 00
    11473     jmp short 07c9eh                          ; eb 18
     11655    jmp short 07e61h                          ; eb 18
    1147411656    cmp ax, strict word 00020h                ; 3d 20 00
    11475     jnbe short 07c8dh                         ; 77 02
    11476     jne short 07c94h                          ; 75 07
     11657    jnbe short 07e50h                         ; 77 02
     11658    jne short 07e57h                          ; 75 07
    1147711659    mov word [bp-014h], 00080h                ; c7 46 ec 80 00
    11478     jmp short 07c99h                          ; eb 05
     11660    jmp short 07e5ch                          ; eb 05
    1147911661    mov word [bp-014h], strict word 00040h    ; c7 46 ec 40 00
    1148011662    mov word [bp-01ch], strict word 00020h    ; c7 46 e4 20 00
     
    1148411666    mov dx, word [bp-018h]                    ; 8b 56 e8
    1148511667    xor cx, cx                                ; 31 c9
    11486     call 09530h                               ; e8 80 18
     11668    call 096f0h                               ; e8 7d 18
    1148711669    mov di, ax                                ; 89 c7
    1148811670    mov word [bp-012h], dx                    ; 89 56 ee
     
    1151111693    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1151211694    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11513     jne short 07d11h                          ; 75 06
     11695    jne short 07ed4h                          ; 75 06
    1151411696    cmp di, 00400h                            ; 81 ff 00 04
    11515     jbe short 07d19h                          ; 76 08
     11697    jbe short 07edch                          ; 76 08
    1151611698    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11517     jmp short 07d1dh                          ; eb 04
     11699    jmp short 07ee0h                          ; eb 04
    1151811700    mov word [es:bx+028h], di                 ; 26 89 7f 28
    11519     mov bx, 00da2h                            ; bb a2 0d
     11701    mov bx, 00da8h                            ; bb a8 0d
    1152011702    mov cx, ds                                ; 8c d9
    1152111703    mov ax, strict word 00004h                ; b8 04 00
    11522     call 01931h                               ; e8 09 9c
     11704    call 01931h                               ; e8 46 9a
    1152311705    push word [bp-018h]                       ; ff 76 e8
    1152411706    push word [bp-00eh]                       ; ff 76 f2
     
    1153111713    push 00c20h                               ; 68 20 0c
    1153211714    push strict byte 00004h                   ; 6a 04
    11533     call 01972h                               ; e8 2d 9c
     11715    call 01972h                               ; e8 6a 9a
    1153411716    add sp, strict byte 00012h                ; 83 c4 12
    1153511717    movzx ax, dl                              ; 0f b6 c2
     
    1154311725    mov word [es:bx+030h], ax                 ; 26 89 47 30
    1154411726    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11545     jne short 07d6fh                          ; 75 06
     11727    jne short 07f32h                          ; 75 06
    1154611728    cmp di, 00400h                            ; 81 ff 00 04
    11547     jbe short 07d77h                          ; 76 08
     11729    jbe short 07f3ah                          ; 76 08
    1154811730    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11549     jmp short 07d7bh                          ; eb 04
     11731    jmp short 07f3eh                          ; eb 04
    1155011732    mov word [es:bx+02eh], di                 ; 26 89 7f 2e
    1155111733    movzx ax, dl                              ; 0f b6 c2
     
    1156911751    mov dx, strict word 00075h                ; ba 75 00
    1157011752    mov ax, strict word 00040h                ; b8 40 00
    11571     call 01650h                               ; e8 95 98
     11753    call 01650h                               ; e8 d2 96
    1157211754    db  0feh, 0c0h
    1157311755    ; inc al                                    ; fe c0
     
    1157511757    mov dx, strict word 00075h                ; ba 75 00
    1157611758    mov ax, strict word 00040h                ; b8 40 00
    11577     call 0165eh                               ; e8 95 98
     11759    call 0165eh                               ; e8 d2 96
    1157811760    inc byte [bp-00ch]                        ; fe 46 f4
    1157911761    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1158011762    mov es, [bp-01ah]                         ; 8e 46 e6
    1158111763    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11582     jmp near 07e6ah                           ; e9 90 00
    11583     mov bx, 00da2h                            ; bb a2 0d
     11764    jmp near 0802dh                           ; e9 90 00
     11765    mov bx, 00da8h                            ; bb a8 0d
    1158411766    mov cx, ds                                ; 8c d9
    1158511767    mov ax, strict word 00004h                ; b8 04 00
    11586     call 01931h                               ; e8 4c 9b
     11768    call 01931h                               ; e8 89 99
    1158711769    push word [bp-010h]                       ; ff 76 f0
    1158811770    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1159011772    push 00c4ah                               ; 68 4a 0c
    1159111773    push strict byte 00004h                   ; 6a 04
    11592     call 01972h                               ; e8 7d 9b
     11774    call 01972h                               ; e8 ba 99
    1159311775    add sp, strict byte 00008h                ; 83 c4 08
    1159411776    mov dl, byte [bp-00ch]                    ; 8a 56 f4
     
    1162911811    inc word [bp-010h]                        ; ff 46 f0
    1163011812    cmp word [bp-010h], strict byte 00010h    ; 83 7e f0 10
    11631     jnl short 07edbh                          ; 7d 68
     11813    jnl short 0809eh                          ; 7d 68
    1163211814    mov byte [bp-026h], 012h                  ; c6 46 da 12
    1163311815    xor al, al                                ; 30 c0
     
    1164611828    lea bx, [bp-026h]                         ; 8d 5e da
    1164711829    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11648     call 076c2h                               ; e8 1e f8
     11830    call 07885h                               ; e8 1e f8
    1164911831    test al, al                               ; 84 c0
    11650     je short 07eb6h                           ; 74 0e
     11832    je short 08079h                           ; 74 0e
    1165111833    push 00b9ah                               ; 68 9a 0b
    1165211834    push 00bbah                               ; 68 ba 0b
    1165311835    push strict byte 00007h                   ; 6a 07
    11654     call 01972h                               ; e8 bf 9a
     11836    call 01972h                               ; e8 fc 98
    1165511837    add sp, strict byte 00006h                ; 83 c4 06
    1165611838    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11657     jne short 07ec6h                          ; 75 09
     11839    jne short 08089h                          ; 75 09
    1165811840    test byte [bp-00226h], 01fh               ; f6 86 da fd 1f
    11659     je near 07b24h                            ; 0f 84 5e fc
     11841    je near 07ce7h                            ; 0f 84 5e fc
    1166011842    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11661     jne short 07e6ah                          ; 75 9d
     11843    jne short 0802dh                          ; 75 9d
    1166211844    mov al, byte [bp-00226h]                  ; 8a 86 da fd
    1166311845    and AL, strict byte 01fh                  ; 24 1f
    1166411846    cmp AL, strict byte 005h                  ; 3c 05
    11665     je near 07ddah                            ; 0f 84 01 ff
    11666     jmp short 07e6ah                          ; eb 8f
     11847    je near 07f9dh                            ; 0f 84 01 ff
     11848    jmp short 0802dh                          ; eb 8f
    1166711849    lea sp, [bp-00ah]                         ; 8d 66 f6
    1166811850    pop di                                    ; 5f
     
    1167311855    pop bp                                    ; 5d
    1167411856    retn                                      ; c3
    11675 _scsi_init:                                  ; 0xf7ee5 LB 0x66
     11857_scsi_init:                                  ; 0xf80a8 LB 0x66
    1167611858    push bp                                   ; 55
    1167711859    mov bp, sp                                ; 89 e5
    1167811860    mov dx, strict word 0000eh                ; ba 0e 00
    1167911861    mov ax, strict word 00040h                ; b8 40 00
    11680     call 0166ch                               ; e8 7b 97
     11862    call 0166ch                               ; e8 b8 95
    1168111863    mov bx, 00122h                            ; bb 22 01
    1168211864    mov es, ax                                ; 8e c0
     
    1168911871    ; sub ah, ah                                ; 2a e4
    1169011872    cmp AL, strict byte 055h                  ; 3c 55
    11691     jne short 07f15h                          ; 75 0c
     11873    jne short 080d8h                          ; 75 0c
    1169211874    xor al, al                                ; 30 c0
    1169311875    mov dx, 00433h                            ; ba 33 04
    1169411876    out DX, AL                                ; ee
    1169511877    mov ax, 00430h                            ; b8 30 04
    11696     call 07b00h                               ; e8 eb fb
     11878    call 07cc3h                               ; e8 eb fb
    1169711879    mov AL, strict byte 055h                  ; b0 55
    1169811880    mov dx, 00436h                            ; ba 36 04
     
    1170211884    ; sub ah, ah                                ; 2a e4
    1170311885    cmp AL, strict byte 055h                  ; 3c 55
    11704     jne short 07f2eh                          ; 75 0c
     11886    jne short 080f1h                          ; 75 0c
    1170511887    xor al, al                                ; 30 c0
    1170611888    mov dx, 00437h                            ; ba 37 04
    1170711889    out DX, AL                                ; ee
    1170811890    mov ax, 00434h                            ; b8 34 04
    11709     call 07b00h                               ; e8 d2 fb
     11891    call 07cc3h                               ; e8 d2 fb
    1171011892    mov AL, strict byte 055h                  ; b0 55
    1171111893    mov dx, 0043ah                            ; ba 3a 04
     
    1171511897    ; sub ah, ah                                ; 2a e4
    1171611898    cmp AL, strict byte 055h                  ; 3c 55
    11717     jne short 07f47h                          ; 75 0c
     11899    jne short 0810ah                          ; 75 0c
    1171811900    xor al, al                                ; 30 c0
    1171911901    mov dx, 0043bh                            ; ba 3b 04
    1172011902    out DX, AL                                ; ee
    1172111903    mov ax, 00438h                            ; b8 38 04
    11722     call 07b00h                               ; e8 b9 fb
     11904    call 07cc3h                               ; e8 b9 fb
    1172311905    mov sp, bp                                ; 89 ec
    1172411906    pop bp                                    ; 5d
    1172511907    retn                                      ; c3
    11726 high_bits_save_:                             ; 0xf7f4b LB 0x17
     11908high_bits_save_:                             ; 0xf810e LB 0x17
    1172711909    push bp                                   ; 55
    1172811910    mov bp, sp                                ; 89 e5
     
    1173611918    pop bp                                    ; 5d
    1173711919    retn                                      ; c3
    11738 high_bits_restore_:                          ; 0xf7f62 LB 0x17
     11920high_bits_restore_:                          ; 0xf8125 LB 0x17
    1173911921    push bp                                   ; 55
    1174011922    mov bp, sp                                ; 89 e5
     
    1174811930    pop bp                                    ; 5d
    1174911931    retn                                      ; c3
    11750 ahci_ctrl_set_bits_:                         ; 0xf7f79 LB 0x43
     11932ahci_ctrl_set_bits_:                         ; 0xf813c LB 0x43
    1175111933    push bp                                   ; 55
    1175211934    mov bp, sp                                ; 89 e5
     
    1178611968    pop bp                                    ; 5d
    1178711969    retn                                      ; c3
    11788 ahci_ctrl_clear_bits_:                       ; 0xf7fbc LB 0x47
     11970ahci_ctrl_clear_bits_:                       ; 0xf817f LB 0x47
    1178911971    push bp                                   ; 55
    1179011972    mov bp, sp                                ; 89 e5
     
    1182612008    pop bp                                    ; 5d
    1182712009    retn                                      ; c3
    11828 ahci_ctrl_is_bit_set_:                       ; 0xf8003 LB 0x39
     12010ahci_ctrl_is_bit_set_:                       ; 0xf81c6 LB 0x39
    1182912011    push bp                                   ; 55
    1183012012    mov bp, sp                                ; 89 e5
     
    1184812030    xchg dx, ax                               ; 92
    1184912031    test dx, di                               ; 85 fa
    11850     jne short 0802fh                          ; 75 04
     12032    jne short 081f2h                          ; 75 04
    1185112033    test ax, bx                               ; 85 d8
    11852     je short 08033h                           ; 74 04
     12034    je short 081f6h                           ; 74 04
    1185312035    mov AL, strict byte 001h                  ; b0 01
    11854     jmp short 08035h                          ; eb 02
     12036    jmp short 081f8h                          ; eb 02
    1185512037    xor al, al                                ; 30 c0
    1185612038    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1185912041    pop bp                                    ; 5d
    1186012042    retn                                      ; c3
    11861 ahci_ctrl_extract_bits_:                     ; 0xf803c LB 0x1b
     12043ahci_ctrl_extract_bits_:                     ; 0xf81ff LB 0x1b
    1186212044    push si                                   ; 56
    1186312045    push bp                                   ; 55
     
    1186712049    and dx, cx                                ; 21 ca
    1186812050    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11869     jcxz 08052h                               ; e3 06
     12051    jcxz 08215h                               ; e3 06
    1187012052    shr dx, 1                                 ; d1 ea
    1187112053    rcr ax, 1                                 ; d1 d8
    11872     loop 0804ch                               ; e2 fa
     12054    loop 0820fh                               ; e2 fa
    1187312055    pop bp                                    ; 5d
    1187412056    pop si                                    ; 5e
    1187512057    retn 00002h                               ; c2 02 00
    11876 ahci_addr_to_phys_:                          ; 0xf8057 LB 0x1e
     12058ahci_addr_to_phys_:                          ; 0xf821a LB 0x1e
    1187712059    push bx                                   ; 53
    1187812060    push cx                                   ; 51
     
    1188512067    sal ax, 1                                 ; d1 e0
    1188612068    rcl dx, 1                                 ; d1 d2
    11887     loop 08065h                               ; e2 fa
     12069    loop 08228h                               ; e2 fa
    1188812070    xor cx, cx                                ; 31 c9
    1188912071    add ax, bx                                ; 01 d8
     
    1189312075    pop bx                                    ; 5b
    1189412076    retn                                      ; c3
    11895 ahci_port_cmd_sync_:                         ; 0xf8075 LB 0xd5
     12077ahci_port_cmd_sync_:                         ; 0xf8238 LB 0xd5
    1189612078    push bp                                   ; 55
    1189712079    mov bp, sp                                ; 89 e5
     
    1190712089    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1190812090    cmp AL, strict byte 0ffh                  ; 3c ff
    11909     je near 08142h                            ; 0f 84 aa 00
     12091    je near 08305h                            ; 0f 84 aa 00
    1191012092    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1191112093    xor dx, dx                                ; 31 d2
     
    1191912101    lea ax, [si+00080h]                       ; 8d 84 80 00
    1192012102    mov dx, es                                ; 8c c2
    11921     call 08057h                               ; e8 96 ff
     12103    call 0821ah                               ; e8 96 ff
    1192212104    mov es, [bp-00ah]                         ; 8e 46 f6
    1192312105    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1192912111    xor cx, cx                                ; 31 c9
    1193012112    mov ax, di                                ; 89 f8
    11931     call 07f79h                               ; e8 98 fe
     12113    call 0813ch                               ; e8 98 fe
    1193212114    lea ax, [si+00138h]                       ; 8d 84 38 01
    1193312115    cwd                                       ; 99
     
    1195612138    mov dx, si                                ; 89 f2
    1195712139    mov ax, di                                ; 89 f8
    11958     call 08003h                               ; e8 e2 fe
     12140    call 081c6h                               ; e8 e2 fe
    1195912141    test al, al                               ; 84 c0
    11960     je short 08104h                           ; 74 df
     12142    je short 082c7h                           ; 74 df
    1196112143    mov bx, strict word 00001h                ; bb 01 00
    1196212144    xor cx, cx                                ; 31 c9
    1196312145    mov dx, si                                ; 89 f2
    1196412146    mov ax, di                                ; 89 f8
    11965     call 07f79h                               ; e8 48 fe
     12147    call 0813ch                               ; e8 48 fe
    1196612148    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1196712149    add dx, 00118h                            ; 81 c2 18 01
     
    1196912151    xor cx, cx                                ; 31 c9
    1197012152    mov ax, di                                ; 89 f8
    11971     call 07fbch                               ; e8 7a fe
     12153    call 0817fh                               ; e8 7a fe
    1197212154    lea sp, [bp-006h]                         ; 8d 66 fa
    1197312155    pop di                                    ; 5f
     
    1197612158    pop bp                                    ; 5d
    1197712159    retn                                      ; c3
    11978 ahci_cmd_data_:                              ; 0xf814a LB 0x1ca
     12160ahci_cmd_data_:                              ; 0xf830d LB 0x1ca
    1197912161    push bp                                   ; 55
    1198012162    mov bp, sp                                ; 89 e5
     
    1200012182    mov ax, 00080h                            ; b8 80 00
    1200112183    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12002     call 0959ah                               ; e8 11 14
     12184    call 0975ah                               ; e8 0e 14
    1200312185    mov es, [bp-00ah]                         ; 8e 46 f6
    1200412186    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1201612198    shr bx, 1                                 ; d1 eb
    1201712199    rcr ax, 1                                 ; d1 d8
    12018     loop 081bch                               ; e2 fa
     12200    loop 0837fh                               ; e2 fa
    1201912201    mov es, [bp-00ah]                         ; 8e 46 f6
    1202012202    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1204112223    mov bx, word [bp-016h]                    ; 8b 5e ea
    1204212224    xor cx, cx                                ; 31 c9
    12043     call 09569h                               ; e8 44 13
     12225    call 09729h                               ; e8 41 13
    1204412226    push dx                                   ; 52
    1204512227    push ax                                   ; 50
     
    1204912231    mov ax, 0026ah                            ; b8 6a 02
    1205012232    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12051     call 0947fh                               ; e8 44 12
     12233    call 09642h                               ; e8 44 12
    1205212234    mov es, [bp-00ah]                         ; 8e 46 f6
    1205312235    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1206912251    mov es, [bp-012h]                         ; 8e 46 ee
    1207012252    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    12071     je short 082b4h                           ; 74 2c
     12253    je short 08477h                           ; 74 2c
    1207212254    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1207312255    dec dx                                    ; 4a
     
    1208812270    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1208912271    cmp ax, dx                                ; 39 d0
    12090     jnc short 082ceh                          ; 73 03
     12272    jnc short 08491h                          ; 73 03
    1209112273    inc ax                                    ; 40
    12092     jmp short 082beh                          ; eb f0
     12274    jmp short 08481h                          ; eb f0
    1209312275    mov al, byte [bp-008h]                    ; 8a 46 f8
    1209412276    cmp AL, strict byte 035h                  ; 3c 35
    12095     jne short 082dbh                          ; 75 06
     12277    jne short 0849eh                          ; 75 06
    1209612278    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12097     jmp short 082efh                          ; eb 14
     12279    jmp short 084b2h                          ; eb 14
    1209812280    cmp AL, strict byte 0a0h                  ; 3c a0
    12099     jne short 082ebh                          ; 75 0c
     12281    jne short 084aeh                          ; 75 0c
    1210012282    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1210112283    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12102     jmp short 082efh                          ; eb 04
     12284    jmp short 084b2h                          ; eb 04
    1210312285    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1210412286    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1210612288    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1210712289    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12108     call 08075h                               ; e8 75 fd
     12290    call 08238h                               ; e8 75 fd
    1210912291    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1211012292    add ax, 0026ah                            ; 05 6a 02
    1211112293    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12112     call 094f8h                               ; e8 ec 11
     12294    call 096bbh                               ; e8 ec 11
    1211312295    lea sp, [bp-006h]                         ; 8d 66 fa
    1211412296    pop di                                    ; 5f
     
    1211712299    pop bp                                    ; 5d
    1211812300    retn                                      ; c3
    12119 ahci_port_deinit_current_:                   ; 0xf8314 LB 0x144
     12301ahci_port_deinit_current_:                   ; 0xf84d7 LB 0x144
    1212012302    push bp                                   ; 55
    1212112303    mov bp, sp                                ; 89 e5
     
    1213212314    mov byte [bp-00ah], al                    ; 88 46 f6
    1213312315    cmp AL, strict byte 0ffh                  ; 3c ff
    12134     je near 0844fh                            ; 0f 84 17 01
     12316    je near 08612h                            ; 0f 84 17 01
    1213512317    movzx dx, al                              ; 0f b6 d0
    1213612318    sal dx, 007h                              ; c1 e2 07
     
    1213912321    xor cx, cx                                ; 31 c9
    1214012322    mov ax, si                                ; 89 f0
    12141     call 07fbch                               ; e8 70 fc
     12323    call 0817fh                               ; e8 70 fc
    1214212324    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1214312325    sal ax, 007h                              ; c1 e0 07
     
    1214812330    xor cx, cx                                ; 31 c9
    1214912331    mov ax, si                                ; 89 f0
    12150     call 08003h                               ; e8 9d fc
     12332    call 081c6h                               ; e8 9d fc
    1215112333    cmp AL, strict byte 001h                  ; 3c 01
    12152     je short 0834ch                           ; 74 e2
     12334    je short 0850fh                           ; 74 e2
    1215312335    mov cx, strict word 00020h                ; b9 20 00
    1215412336    xor bx, bx                                ; 31 db
    1215512337    mov ax, di                                ; 89 f8
    1215612338    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12157     call 0959ah                               ; e8 23 12
     12339    call 0975ah                               ; e8 20 12
    1215812340    lea ax, [di+00080h]                       ; 8d 85 80 00
    1215912341    mov cx, strict word 00040h                ; b9 40 00
    1216012342    xor bx, bx                                ; 31 db
    1216112343    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12162     call 0959ah                               ; e8 14 12
     12344    call 0975ah                               ; e8 11 12
    1216312345    lea ax, [di+00200h]                       ; 8d 85 00 02
    1216412346    mov cx, strict word 00060h                ; b9 60 00
    1216512347    xor bx, bx                                ; 31 db
    1216612348    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12167     call 0959ah                               ; e8 05 12
     12349    call 0975ah                               ; e8 02 12
    1216812350    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1216912351    add ax, 00108h                            ; 05 08 01
     
    1226712449    pop bp                                    ; 5d
    1226812450    retn                                      ; c3
    12269 ahci_port_init_:                             ; 0xf8458 LB 0x206
     12451ahci_port_init_:                             ; 0xf861b LB 0x206
    1227012452    push bp                                   ; 55
    1227112453    mov bp, sp                                ; 89 e5
     
    1227712459    mov word [bp-00ah], dx                    ; 89 56 f6
    1227812460    mov byte [bp-008h], bl                    ; 88 5e f8
    12279     call 08314h                               ; e8 a8 fe
     12461    call 084d7h                               ; e8 a8 fe
    1228012462    movzx dx, bl                              ; 0f b6 d3
    1228112463    sal dx, 007h                              ; c1 e2 07
     
    1228512467    mov bx, strict word 00011h                ; bb 11 00
    1228612468    xor cx, cx                                ; 31 c9
    12287     call 07fbch                               ; e8 36 fb
     12469    call 0817fh                               ; e8 36 fb
    1228812470    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1228912471    sal di, 007h                              ; c1 e7 07
     
    1229312475    mov bx, 0c011h                            ; bb 11 c0
    1229412476    xor cx, cx                                ; 31 c9
    12295     call 08003h                               ; e8 62 fb
     12477    call 081c6h                               ; e8 62 fb
    1229612478    cmp AL, strict byte 001h                  ; 3c 01
    12297     je short 08486h                           ; 74 e1
     12479    je short 08649h                           ; 74 e1
    1229812480    mov cx, strict word 00020h                ; b9 20 00
    1229912481    xor bx, bx                                ; 31 db
    1230012482    mov ax, si                                ; 89 f0
    1230112483    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12302     call 0959ah                               ; e8 e8 10
     12484    call 0975ah                               ; e8 e5 10
    1230312485    lea ax, [si+00080h]                       ; 8d 84 80 00
    1230412486    mov cx, strict word 00040h                ; b9 40 00
    1230512487    xor bx, bx                                ; 31 db
    1230612488    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12307     call 0959ah                               ; e8 d9 10
     12489    call 0975ah                               ; e8 d6 10
    1230812490    mov ax, si                                ; 89 f0
    1230912491    add ah, 002h                              ; 80 c4 02
     
    1231212494    xor bx, bx                                ; 31 db
    1231312495    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12314     call 0959ah                               ; e8 c6 10
     12496    call 0975ah                               ; e8 c3 10
    1231512497    lea ax, [di+00108h]                       ; 8d 85 08 01
    1231612498    cwd                                       ; 99
     
    1232612508    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1232712509    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12328     call 08057h                               ; e8 60 fb
     12510    call 0821ah                               ; e8 60 fb
    1232912511    mov es, [bp-00ah]                         ; 8e 46 f6
    1233012512    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1237112553    mov ax, si                                ; 89 f0
    1237212554    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12373     call 08057h                               ; e8 f4 fa
     12555    call 0821ah                               ; e8 f4 fa
    1237412556    mov es, [bp-00ah]                         ; 8e 46 f6
    1237512557    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1247612658    pop bp                                    ; 5d
    1247712659    retn                                      ; c3
    12478 @ahci_read_sectors:                          ; 0xf865e LB 0x94
     12660@ahci_read_sectors:                          ; 0xf8821 LB 0x94
    1247912661    push bp                                   ; 55
    1248012662    mov bp, sp                                ; 89 e5
     
    1248512667    sub di, strict byte 0000ch                ; 83 ef 0c
    1248612668    cmp di, strict byte 00004h                ; 83 ff 04
    12487     jbe short 08682h                          ; 76 0f
     12669    jbe short 08845h                          ; 76 0f
    1248812670    push di                                   ; 57
    1248912671    push 00c66h                               ; 68 66 0c
    1249012672    push 00c78h                               ; 68 78 0c
    1249112673    push strict byte 00007h                   ; 6a 07
    12492     call 01972h                               ; e8 f3 92
     12674    call 01972h                               ; e8 30 91
    1249312675    add sp, strict byte 00008h                ; 83 c4 08
    1249412676    les bx, [bp+004h]                         ; c4 5e 04
    1249512677    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1249612678    xor ax, ax                                ; 31 c0
    12497     call 07f4bh                               ; e8 bc f8
     12679    call 0810eh                               ; e8 bc f8
    1249812680    mov es, [bp+006h]                         ; 8e 46 06
    1249912681    add di, bx                                ; 01 df
     
    1250212684    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1250312685    xor ax, ax                                ; 31 c0
    12504     call 08458h                               ; e8 b1 fd
     12686    call 0861bh                               ; e8 b1 fd
    1250512687    mov bx, strict word 00025h                ; bb 25 00
    1250612688    mov ax, di                                ; 89 f8
    1250712689    mov dx, word [bp+006h]                    ; 8b 56 06
    12508     call 0814ah                               ; e8 98 fa
     12690    call 0830dh                               ; e8 98 fa
    1250912691    mov es, [bp+006h]                         ; 8e 46 06
    1251012692    mov bx, di                                ; 89 fb
     
    1252612708    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1252712709    xor ax, ax                                ; 31 c0
    12528     call 07f62h                               ; e8 7b f8
     12710    call 08125h                               ; e8 7b f8
    1252912711    xor ax, ax                                ; 31 c0
    1253012712    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1253312715    pop bp                                    ; 5d
    1253412716    retn 00004h                               ; c2 04 00
    12535 @ahci_write_sectors:                         ; 0xf86f2 LB 0x70
     12717@ahci_write_sectors:                         ; 0xf88b5 LB 0x70
    1253612718    push bp                                   ; 55
    1253712719    mov bp, sp                                ; 89 e5
     
    1254312725    sub bx, strict byte 0000ch                ; 83 eb 0c
    1254412726    cmp bx, strict byte 00004h                ; 83 fb 04
    12545     jbe short 0871ah                          ; 76 0f
     12727    jbe short 088ddh                          ; 76 0f
    1254612728    push bx                                   ; 53
    1254712729    push 00c97h                               ; 68 97 0c
    1254812730    push 00c78h                               ; 68 78 0c
    1254912731    push strict byte 00007h                   ; 6a 07
    12550     call 01972h                               ; e8 5b 92
     12732    call 01972h                               ; e8 98 90
    1255112733    add sp, strict byte 00008h                ; 83 c4 08
    1255212734    mov es, cx                                ; 8e c1
    1255312735    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1255412736    xor ax, ax                                ; 31 c0
    12555     call 07f4bh                               ; e8 25 f8
     12737    call 0810eh                               ; e8 25 f8
    1255612738    mov es, cx                                ; 8e c1
    1255712739    add bx, si                                ; 01 f3
     
    1255912741    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1256012742    xor ax, ax                                ; 31 c0
    12561     call 08458h                               ; e8 1e fd
     12743    call 0861bh                               ; e8 1e fd
    1256212744    mov bx, strict word 00035h                ; bb 35 00
    1256312745    mov ax, si                                ; 89 f0
    1256412746    mov dx, cx                                ; 89 ca
    12565     call 0814ah                               ; e8 06 fa
     12747    call 0830dh                               ; e8 06 fa
    1256612748    mov es, cx                                ; 8e c1
    1256712749    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1256912751    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1257012752    xor ax, ax                                ; 31 c0
    12571     call 07f62h                               ; e8 0a f8
     12753    call 08125h                               ; e8 0a f8
    1257212754    xor ax, ax                                ; 31 c0
    1257312755    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1257512757    pop bp                                    ; 5d
    1257612758    retn 00004h                               ; c2 04 00
    12577 ahci_cmd_packet_:                            ; 0xf8762 LB 0x173
     12759ahci_cmd_packet_:                            ; 0xf8925 LB 0x173
    1257812760    push bp                                   ; 55
    1257912761    mov bp, sp                                ; 89 e5
     
    1258712769    mov dx, strict word 0000eh                ; ba 0e 00
    1258812770    mov ax, strict word 00040h                ; b8 40 00
    12589     call 0166ch                               ; e8 ef 8e
     12771    call 0166ch                               ; e8 2c 8d
    1259012772    mov si, 00122h                            ; be 22 01
    1259112773    mov word [bp-008h], ax                    ; 89 46 f8
    1259212774    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12593     jne short 087a8h                          ; 75 1f
    12594     mov bx, 00da2h                            ; bb a2 0d
     12775    jne short 0896bh                          ; 75 1f
     12776    mov bx, 00da8h                            ; bb a8 0d
    1259512777    mov cx, ds                                ; 8c d9
    1259612778    mov ax, strict word 00004h                ; b8 04 00
    12597     call 01931h                               ; e8 9d 91
     12779    call 01931h                               ; e8 da 8f
    1259812780    push 00caah                               ; 68 aa 0c
    1259912781    push 00cbah                               ; 68 ba 0c
    1260012782    push strict byte 00004h                   ; 6a 04
    12601     call 01972h                               ; e8 d3 91
     12783    call 01972h                               ; e8 10 90
    1260212784    add sp, strict byte 00006h                ; 83 c4 06
    1260312785    mov ax, strict word 00001h                ; b8 01 00
    12604     jmp near 088cch                           ; e9 24 01
     12786    jmp near 08a8fh                           ; e9 24 01
    1260512787    test byte [bp+004h], 001h                 ; f6 46 04 01
    12606     jne short 087a2h                          ; 75 f4
     12788    jne short 08965h                          ; 75 f4
    1260712789    mov ax, word [bp+006h]                    ; 8b 46 06
    1260812790    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1261012792    sal ax, 1                                 ; d1 e0
    1261112793    rcl dx, 1                                 ; d1 d2
    12612     loop 087b7h                               ; e2 fa
     12794    loop 0897ah                               ; e2 fa
    1261312795    mov es, [bp-008h]                         ; 8e 46 f8
    1261412796    mov word [es:si], ax                      ; 26 89 04
     
    1262212804    mov dx, word [bp+008h]                    ; 8b 56 08
    1262312805    xor cx, cx                                ; 31 c9
    12624     call 09530h                               ; e8 4c 0d
     12806    call 096f0h                               ; e8 49 0d
    1262512807    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1262612808    xor di, di                                ; 31 ff
     
    1263212814    xor ax, ax                                ; 31 c0
    1263312815    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12634     call 07f4bh                               ; e8 47 f7
     12816    call 0810eh                               ; e8 47 f7
    1263512817    mov es, [bp-008h]                         ; 8e 46 f8
    1263612818    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    1263912821    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1264012822    xor ax, ax                                ; 31 c0
    12641     call 08458h                               ; e8 3c fc
     12823    call 0861bh                               ; e8 3c fc
    1264212824    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1264312825    push ax                                   ; 50
     
    1264612828    mov ax, 000c0h                            ; b8 c0 00
    1264712829    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12648     call 095a7h                               ; e8 77 0d
     12830    call 09767h                               ; e8 74 0d
    1264912831    mov es, [bp-008h]                         ; 8e 46 f8
    1265012832    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1265312835    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1265412836    test ax, ax                               ; 85 c0
    12655     je short 0886eh                           ; 74 27
     12837    je short 08a31h                           ; 74 27
    1265612838    dec ax                                    ; 48
    1265712839    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1266612848    mov ax, si                                ; 89 f0
    1266712849    mov dx, word [bp-008h]                    ; 8b 56 f8
    12668     call 0814ah                               ; e8 d1 f8
     12850    call 0830dh                               ; e8 d1 f8
    1266912851    les bx, [bp-00eh]                         ; c4 5e f2
    1267012852    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1268912871    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1269012872    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12691     call 07f62h                               ; e8 aa f6
     12873    call 08125h                               ; e8 aa f6
    1269212874    les bx, [bp-00eh]                         ; c4 5e f2
    1269312875    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1269412876    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12695     jne short 088cah                          ; 75 05
     12877    jne short 08a8dh                          ; 75 05
    1269612878    mov ax, strict word 00004h                ; b8 04 00
    12697     jmp short 088cch                          ; eb 02
     12879    jmp short 08a8fh                          ; eb 02
    1269812880    xor ax, ax                                ; 31 c0
    1269912881    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1270212884    pop bp                                    ; 5d
    1270312885    retn 0000ch                               ; c2 0c 00
    12704 ahci_port_detect_device_:                    ; 0xf88d5 LB 0x451
     12886ahci_port_detect_device_:                    ; 0xf8a98 LB 0x451
    1270512887    push bp                                   ; 55
    1270612888    mov bp, sp                                ; 89 e5
     
    1271412896    movzx di, bl                              ; 0f b6 fb
    1271512897    mov bx, di                                ; 89 fb
    12716     call 08458h                               ; e8 69 fb
     12898    call 0861bh                               ; e8 69 fb
    1271712899    mov dx, strict word 0000eh                ; ba 0e 00
    1271812900    mov ax, strict word 00040h                ; b8 40 00
    12719     call 0166ch                               ; e8 74 8d
     12901    call 0166ch                               ; e8 b1 8b
    1272012902    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1272112903    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1278612968    mov bx, strict word 0000fh                ; bb 0f 00
    1278712969    xor cx, cx                                ; 31 c9
    12788     call 0803ch                               ; e8 9a f6
     12970    call 081ffh                               ; e8 9a f6
    1278912971    test ax, ax                               ; 85 c0
    12790     je near 08d1eh                            ; 0f 84 76 03
     12972    je near 08ee1h                            ; 0f 84 76 03
    1279112973    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1279212974    sal ax, 007h                              ; c1 e0 07
     
    1281612998    mov bx, strict word 0000fh                ; bb 0f 00
    1281712999    xor cx, cx                                ; 31 c9
    12818     call 0803ch                               ; e8 4e f6
     13000    call 081ffh                               ; e8 4e f6
    1281913001    cmp ax, strict word 00001h                ; 3d 01 00
    12820     je short 089a8h                           ; 74 b5
     13002    je short 08b6bh                           ; 74 b5
    1282113003    push strict byte 00000h                   ; 6a 00
    1282213004    mov bx, strict word 0000fh                ; bb 0f 00
     
    1282413006    mov ax, di                                ; 89 f8
    1282513007    mov dx, word [bp-01ah]                    ; 8b 56 e6
    12826     call 0803ch                               ; e8 3a f6
     13008    call 081ffh                               ; e8 3a f6
    1282713009    cmp ax, strict word 00003h                ; 3d 03 00
    12828     jne near 08d1eh                           ; 0f 85 15 03
     13010    jne near 08ee1h                           ; 0f 85 15 03
    1282913011    mov ax, word [bp-016h]                    ; 8b 46 ea
    1283013012    add ax, 00130h                            ; 05 30 01
     
    1285313035    mov byte [bp-00ch], al                    ; 88 46 f4
    1285413036    cmp AL, strict byte 004h                  ; 3c 04
    12855     jnc near 08d1eh                           ; 0f 83 cf 02
     13037    jnc near 08ee1h                           ; 0f 83 cf 02
    1285613038    mov dx, word [bp-016h]                    ; 8b 56 ea
    1285713039    add dx, 00118h                            ; 81 c2 18 01
     
    1286013042    mov bx, strict word 00010h                ; bb 10 00
    1286113043    xor cx, cx                                ; 31 c9
    12862     call 07f79h                               ; e8 13 f5
     13044    call 0813ch                               ; e8 13 f5
    1286313045    mov ax, word [bp-016h]                    ; 8b 46 ea
    1286413046    add ax, 00124h                            ; 05 24 01
     
    1288413066    add cl, 00ch                              ; 80 c1 0c
    1288513067    test dx, dx                               ; 85 d2
    12886     jne near 08c7ah                           ; 0f 85 d8 01
     13068    jne near 08e3dh                           ; 0f 85 d8 01
    1288713069    cmp ax, 00101h                            ; 3d 01 01
    12888     jne near 08c7ah                           ; 0f 85 d1 01
     13070    jne near 08e3dh                           ; 0f 85 d1 01
    1288913071    les bx, [bp-010h]                         ; c4 5e f0
    1289013072    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     
    1289813080    mov ax, word [bp-010h]                    ; 8b 46 f0
    1289913081    mov dx, es                                ; 8c c2
    12900     call 0814ah                               ; e8 76 f6
     13082    call 0830dh                               ; e8 76 f6
    1290113083    mov byte [bp-00ah], cl                    ; 88 4e f6
    1290213084    test byte [bp-00226h], 080h               ; f6 86 da fd 80
     
    1291513097    mov di, word [bp-001ach]                  ; 8b be 54 fe
    1291613098    cmp di, 00fffh                            ; 81 ff ff 0f
    12917     jne short 08b19h                          ; 75 10
     13099    jne short 08cdch                          ; 75 10
    1291813100    cmp ax, strict word 0ffffh                ; 3d ff ff
    12919     jne short 08b19h                          ; 75 0b
     13101    jne short 08cdch                          ; 75 0b
    1292013102    mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
    1292113103    mov word [bp-014h], ax                    ; 89 46 ec
     
    1294613128    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1294713129    cmp AL, strict byte 001h                  ; 3c 01
    12948     jc short 08b84h                           ; 72 0c
    12949     jbe short 08b8ch                          ; 76 12
     13130    jc short 08d47h                           ; 72 0c
     13131    jbe short 08d4fh                          ; 76 12
    1295013132    cmp AL, strict byte 003h                  ; 3c 03
    12951     je short 08b94h                           ; 74 16
     13133    je short 08d57h                           ; 74 16
    1295213134    cmp AL, strict byte 002h                  ; 3c 02
    12953     je short 08b90h                           ; 74 0e
    12954     jmp short 08bddh                          ; eb 59
     13135    je short 08d53h                           ; 74 0e
     13136    jmp short 08da0h                          ; eb 59
    1295513137    test al, al                               ; 84 c0
    12956     jne short 08bddh                          ; 75 55
     13138    jne short 08da0h                          ; 75 55
    1295713139    mov DL, strict byte 040h                  ; b2 40
    12958     jmp short 08b96h                          ; eb 0a
     13140    jmp short 08d59h                          ; eb 0a
    1295913141    mov DL, strict byte 048h                  ; b2 48
    12960     jmp short 08b96h                          ; eb 06
     13142    jmp short 08d59h                          ; eb 06
    1296113143    mov DL, strict byte 050h                  ; b2 50
    12962     jmp short 08b96h                          ; eb 02
     13144    jmp short 08d59h                          ; eb 02
    1296313145    mov DL, strict byte 058h                  ; b2 58
    1296413146    mov al, dl                                ; 88 d0
     
    1296613148    movzx bx, al                              ; 0f b6 d8
    1296713149    mov ax, bx                                ; 89 d8
    12968     call 016ach                               ; e8 0a 8b
     13150    call 016ach                               ; e8 47 89
    1296913151    test al, al                               ; 84 c0
    12970     je short 08bddh                           ; 74 37
     13152    je short 08da0h                           ; 74 37
    1297113153    mov al, dl                                ; 88 d0
    1297213154    db  0feh, 0c0h
    1297313155    ; inc al                                    ; fe c0
    1297413156    xor ah, ah                                ; 30 e4
    12975     call 016ach                               ; e8 fd 8a
     13157    call 016ach                               ; e8 3a 89
    1297613158    xor ah, ah                                ; 30 e4
    1297713159    mov si, ax                                ; 89 c6
    1297813160    sal si, 008h                              ; c1 e6 08
    1297913161    movzx ax, dl                              ; 0f b6 c2
    12980     call 016ach                               ; e8 f0 8a
     13162    call 016ach                               ; e8 2d 89
    1298113163    xor ah, ah                                ; 30 e4
    1298213164    add ax, si                                ; 01 f0
     
    1298513167    add AL, strict byte 002h                  ; 04 02
    1298613168    xor ah, ah                                ; 30 e4
    12987     call 016ach                               ; e8 e0 8a
     13169    call 016ach                               ; e8 1d 89
    1298813170    xor ah, ah                                ; 30 e4
    1298913171    mov word [bp-026h], ax                    ; 89 46 da
    1299013172    mov ax, bx                                ; 89 d8
    12991     call 016ach                               ; e8 d6 8a
     13173    call 016ach                               ; e8 13 89
    1299213174    xor ah, ah                                ; 30 e4
    1299313175    mov word [bp-022h], ax                    ; 89 46 de
    12994     jmp short 08beah                          ; eb 0d
     13176    jmp short 08dadh                          ; eb 0d
    1299513177    mov bx, word [bp-014h]                    ; 8b 5e ec
    1299613178    mov cx, di                                ; 89 f9
    1299713179    mov dx, ss                                ; 8c d2
    1299813180    lea ax, [bp-026h]                         ; 8d 46 da
    12999     call 053f3h                               ; e8 09 c8
    13000     mov bx, 00da2h                            ; bb a2 0d
     13181    call 055b6h                               ; e8 09 c8
     13182    mov bx, 00da8h                            ; bb a8 0d
    1300113183    mov cx, ds                                ; 8c d9
    1300213184    mov ax, strict word 00004h                ; b8 04 00
    13003     call 01931h                               ; e8 3c 8d
     13185    call 01931h                               ; e8 79 8b
    1300413186    push di                                   ; 57
    1300513187    push word [bp-014h]                       ; ff 76 ec
     
    1301813200    push 00cdah                               ; 68 da 0c
    1301913201    push strict byte 00004h                   ; 6a 04
    13020     call 01972h                               ; e8 54 8d
     13202    call 01972h                               ; e8 91 8b
    1302113203    add sp, strict byte 00018h                ; 83 c4 18
    1302213204    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    1304713229    mov dx, strict word 00075h                ; ba 75 00
    1304813230    mov ax, strict word 00040h                ; b8 40 00
    13049     call 01650h                               ; e8 e7 89
     13231    call 01650h                               ; e8 24 88
    1305013232    db  0feh, 0c0h
    1305113233    ; inc al                                    ; fe c0
     
    1305313235    mov dx, strict word 00075h                ; ba 75 00
    1305413236    mov ax, strict word 00040h                ; b8 40 00
    13055     call 0165eh                               ; e8 e7 89
    13056     jmp near 08d10h                           ; e9 96 00
     13237    call 0165eh                               ; e8 24 88
     13238    jmp near 08ed3h                           ; e9 96 00
    1305713239    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13058     jne near 08d10h                           ; 0f 85 8e 00
     13240    jne near 08ed3h                           ; 0f 85 8e 00
    1305913241    cmp ax, 00101h                            ; 3d 01 01
    13060     jne near 08d10h                           ; 0f 85 87 00
     13242    jne near 08ed3h                           ; 0f 85 87 00
    1306113243    les bx, [bp-010h]                         ; c4 5e f0
    1306213244    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     
    1307013252    mov ax, word [bp-010h]                    ; 8b 46 f0
    1307113253    mov dx, es                                ; 8c c2
    13072     call 0814ah                               ; e8 96 f4
     13254    call 0830dh                               ; e8 96 f4
    1307313255    test byte [bp-00226h], 080h               ; f6 86 da fd 80
    1307413256    db  00fh, 095h, 0c0h
     
    1310913291    pop bp                                    ; 5d
    1311013292    retn                                      ; c3
    13111 ahci_mem_alloc_:                             ; 0xf8d26 LB 0x43
     13293ahci_mem_alloc_:                             ; 0xf8ee9 LB 0x43
    1311213294    push bp                                   ; 55
    1311313295    mov bp, sp                                ; 89 e5
     
    1311913301    mov dx, 00413h                            ; ba 13 04
    1312013302    xor ax, ax                                ; 31 c0
    13121     call 0166ch                               ; e8 36 89
     13303    call 0166ch                               ; e8 73 87
    1312213304    test ax, ax                               ; 85 c0
    13123     je short 08d5fh                           ; 74 25
     13305    je short 08f22h                           ; 74 25
    1312413306    dec ax                                    ; 48
    1312513307    mov bx, ax                                ; 89 c3
     
    1312813310    sal ax, 1                                 ; d1 e0
    1312913311    rcl dx, 1                                 ; d1 d2
    13130     loop 08d42h                               ; e2 fa
     13312    loop 08f05h                               ; e2 fa
    1313113313    mov si, ax                                ; 89 c6
    1313213314    mov di, dx                                ; 89 d7
     
    1313413316    shr di, 1                                 ; d1 ef
    1313513317    rcr si, 1                                 ; d1 de
    13136     loop 08d4fh                               ; e2 fa
     13318    loop 08f12h                               ; e2 fa
    1313713319    mov dx, 00413h                            ; ba 13 04
    1313813320    xor ax, ax                                ; 31 c0
    13139     call 0167ah                               ; e8 1d 89
     13321    call 0167ah                               ; e8 5a 87
    1314013322    mov ax, si                                ; 89 f0
    1314113323    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1314713329    pop bp                                    ; 5d
    1314813330    retn                                      ; c3
    13149 ahci_hba_init_:                              ; 0xf8d69 LB 0x125
     13331ahci_hba_init_:                              ; 0xf8f2c LB 0x125
    1315013332    push bp                                   ; 55
    1315113333    mov bp, sp                                ; 89 e5
     
    1315913341    mov dx, strict word 0000eh                ; ba 0e 00
    1316013342    mov ax, strict word 00040h                ; b8 40 00
    13161     call 0166ch                               ; e8 ed 88
     13343    call 0166ch                               ; e8 2a 87
    1316213344    mov bx, 00122h                            ; bb 22 01
    1316313345    mov word [bp-010h], ax                    ; 89 46 f0
     
    1317613358    shr eax, 010h                             ; 66 c1 e8 10
    1317713359    xchg dx, ax                               ; 92
    13178     call 08d26h                               ; e8 82 ff
     13360    call 08ee9h                               ; e8 82 ff
    1317913361    mov di, ax                                ; 89 c7
    1318013362    test ax, ax                               ; 85 c0
    13181     je near 08e6dh                            ; 0f 84 c1 00
     13363    je near 09030h                            ; 0f 84 c1 00
    1318213364    mov es, [bp-010h]                         ; 8e 46 f0
    1318313365    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1319313375    mov dx, strict word 00004h                ; ba 04 00
    1319413376    mov ax, si                                ; 89 f0
    13195     call 07f79h                               ; e8 99 f1
     13377    call 0813ch                               ; e8 99 f1
    1319613378    mov ax, strict word 00004h                ; b8 04 00
    1319713379    xor cx, cx                                ; 31 c9
     
    1321013392    xchg dx, ax                               ; 92
    1321113393    test AL, strict byte 001h                 ; a8 01
    13212     jne short 08de0h                          ; 75 de
     13394    jne short 08fa3h                          ; 75 de
    1321313395    xor ax, ax                                ; 31 c0
    1321413396    xor cx, cx                                ; 31 c9
     
    1322813410    mov bx, strict word 0001fh                ; bb 1f 00
    1322913411    xor cx, cx                                ; 31 c9
    13230     call 0803ch                               ; e8 16 f2
     13412    call 081ffh                               ; e8 16 f2
    1323113413    db  0feh, 0c0h
    1323213414    ; inc al                                    ; fe c0
    1323313415    mov byte [bp-00eh], al                    ; 88 46 f2
    1323413416    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13235     jmp short 08e3ah                          ; eb 09
     13417    jmp short 08ffdh                          ; eb 09
    1323613418    inc byte [bp-00ch]                        ; fe 46 f4
    1323713419    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13238     jnc short 08e6bh                          ; 73 31
     13420    jnc short 0902eh                          ; 73 31
    1323913421    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1324013422    mov ax, strict word 00001h                ; b8 01 00
    1324113423    xor dx, dx                                ; 31 d2
    13242     jcxz 08e4bh                               ; e3 06
     13424    jcxz 0900eh                               ; e3 06
    1324313425    sal ax, 1                                 ; d1 e0
    1324413426    rcl dx, 1                                 ; d1 d2
    13245     loop 08e45h                               ; e2 fa
     13427    loop 09008h                               ; e2 fa
    1324613428    mov bx, ax                                ; 89 c3
    1324713429    mov cx, dx                                ; 89 d1
    1324813430    mov dx, strict word 0000ch                ; ba 0c 00
    1324913431    mov ax, si                                ; 89 f0
    13250     call 08003h                               ; e8 ac f1
     13432    call 081c6h                               ; e8 ac f1
    1325113433    test al, al                               ; 84 c0
    13252     je short 08e31h                           ; 74 d6
     13434    je short 08ff4h                           ; 74 d6
    1325313435    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1325413436    xor ax, ax                                ; 31 c0
    1325513437    mov dx, di                                ; 89 fa
    13256     call 088d5h                               ; e8 6f fa
     13438    call 08a98h                               ; e8 6f fa
    1325713439    dec byte [bp-00eh]                        ; fe 4e f2
    13258     jne short 08e31h                          ; 75 c6
     13440    jne short 08ff4h                          ; 75 c6
    1325913441    xor ax, ax                                ; 31 c0
    1326013442    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1326613448    pop bp                                    ; 5d
    1326713449    retn                                      ; c3
    13268     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 05dh, 08fh, 03bh, 08fh, 041h, 08fh, 047h, 08fh, 04dh
    13269     db  08fh, 053h, 08fh, 059h, 08fh, 05dh, 08fh
    13270 _ahci_init:                                  ; 0xf8e8e LB 0xfe
     13450    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 020h, 091h, 0feh, 090h, 004h, 091h, 00ah, 091h, 010h
     13451    db  091h, 016h, 091h, 01ch, 091h, 020h, 091h
     13452_ahci_init:                                  ; 0xf9051 LB 0xfe
    1327113453    push bp                                   ; 55
    1327213454    mov bp, sp                                ; 89 e5
     
    1327613458    mov ax, 00601h                            ; b8 01 06
    1327713459    mov dx, strict word 00001h                ; ba 01 00
    13278     call 093ach                               ; e8 0d 05
     13460    call 0956fh                               ; e8 0d 05
    1327913461    mov dx, ax                                ; 89 c2
    1328013462    cmp ax, strict word 0ffffh                ; 3d ff ff
    13281     je near 08f85h                            ; 0f 84 dd 00
     13463    je near 09148h                            ; 0f 84 dd 00
    1328213464    xor al, al                                ; 30 c0
    1328313465    shr ax, 008h                              ; c1 e8 08
     
    1328713469    xor ah, ah                                ; 30 e4
    1328813470    mov bx, strict word 00034h                ; bb 34 00
    13289     call 093d7h                               ; e8 1a 05
     13471    call 0959ah                               ; e8 1a 05
    1329013472    mov cl, al                                ; 88 c1
    1329113473    test cl, cl                               ; 84 c9
    13292     je short 08ee6h                           ; 74 23
     13474    je short 090a9h                           ; 74 23
    1329313475    movzx bx, cl                              ; 0f b6 d9
    1329413476    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1329613478    mov dx, di                                ; 89 fa
    1329713479    mov ax, si                                ; 89 f0
    13298     call 093d7h                               ; e8 02 05
     13480    call 0959ah                               ; e8 02 05
    1329913481    cmp AL, strict byte 012h                  ; 3c 12
    13300     je short 08ee6h                           ; 74 0d
     13482    je short 090a9h                           ; 74 0d
    1330113483    mov al, cl                                ; 88 c8
    1330213484    db  0feh, 0c0h
     
    1330513487    mov dx, di                                ; 89 fa
    1330613488    mov ax, si                                ; 89 f0
    13307     jmp short 08ebah                          ; eb d4
     13489    jmp short 0907dh                          ; eb d4
    1330813490    test cl, cl                               ; 84 c9
    13309     je near 08f85h                            ; 0f 84 99 00
     13491    je near 09148h                            ; 0f 84 99 00
    1331013492    add cl, 002h                              ; 80 c1 02
    1331113493    movzx bx, cl                              ; 0f b6 d9
     
    1331413496    mov dx, di                                ; 89 fa
    1331513497    mov ax, si                                ; 89 f0
    13316     call 093d7h                               ; e8 d6 04
     13498    call 0959ah                               ; e8 d6 04
    1331713499    cmp AL, strict byte 010h                  ; 3c 10
    13318     jne near 08f85h                           ; 0f 85 7e 00
     13500    jne near 09148h                           ; 0f 85 7e 00
    1331913501    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1332013502    mov al, cl                                ; 88 c8
     
    1332313505    mov dx, di                                ; 89 fa
    1332413506    mov ax, si                                ; 89 f0
    13325     call 093fbh                               ; e8 e2 04
     13507    call 095beh                               ; e8 e2 04
    1332613508    mov dx, ax                                ; 89 c2
    1332713509    and ax, strict word 0000fh                ; 25 0f 00
    1332813510    sub ax, strict word 00004h                ; 2d 04 00
    1332913511    cmp ax, strict word 0000bh                ; 3d 0b 00
    13330     jnbe short 08f5dh                         ; 77 37
     13512    jnbe short 09120h                         ; 77 37
    1333113513    push CS                                   ; 0e
    1333213514    pop ES                                    ; 07
    1333313515    mov cx, strict word 00008h                ; b9 08 00
    13334     mov di, 08e77h                            ; bf 77 8e
     13516    mov di, 0903ah                            ; bf 3a 90
    1333513517    repne scasb                               ; f2 ae
    1333613518    sal cx, 1                                 ; d1 e1
    1333713519    mov di, cx                                ; 89 cf
    13338     mov ax, word [cs:di-07182h]               ; 2e 8b 85 7e 8e
     13520    mov ax, word [cs:di-06fbfh]               ; 2e 8b 85 41 90
    1333913521    jmp ax                                    ; ff e0
    1334013522    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13341     jmp short 08f5dh                          ; eb 1c
     13523    jmp short 09120h                          ; eb 1c
    1334213524    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13343     jmp short 08f5dh                          ; eb 16
     13525    jmp short 09120h                          ; eb 16
    1334413526    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13345     jmp short 08f5dh                          ; eb 10
     13527    jmp short 09120h                          ; eb 10
    1334613528    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13347     jmp short 08f5dh                          ; eb 0a
     13529    jmp short 09120h                          ; eb 0a
    1334813530    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13349     jmp short 08f5dh                          ; eb 04
     13531    jmp short 09120h                          ; eb 04
    1335013532    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1335113533    mov si, dx                                ; 89 d6
     
    1335413536    mov al, byte [bp-006h]                    ; 8a 46 fa
    1335513537    test al, al                               ; 84 c0
    13356     je short 08f85h                           ; 74 19
     13538    je short 09148h                           ; 74 19
    1335713539    movzx bx, al                              ; 0f b6 d8
    1335813540    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1335913541    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13360     call 0941dh                               ; e8 a3 04
     13542    call 095e0h                               ; e8 a3 04
    1336113543    test AL, strict byte 001h                 ; a8 01
    13362     je short 08f85h                           ; 74 07
     13544    je short 09148h                           ; 74 07
    1336313545    and AL, strict byte 0f0h                  ; 24 f0
    1336413546    add ax, si                                ; 01 f0
    13365     call 08d69h                               ; e8 e4 fd
     13547    call 08f2ch                               ; e8 e4 fd
    1336613548    lea sp, [bp-004h]                         ; 8d 66 fc
    1336713549    pop di                                    ; 5f
     
    1336913551    pop bp                                    ; 5d
    1337013552    retn                                      ; c3
    13371 apm_out_str_:                                ; 0xf8f8c LB 0x39
     13553apm_out_str_:                                ; 0xf914f LB 0x39
    1337213554    push bp                                   ; 55
    1337313555    mov bp, sp                                ; 89 e5
     
    1337513557    mov bx, ax                                ; 89 c3
    1337613558    cmp byte [bx], 000h                       ; 80 3f 00
    13377     je short 08fa1h                           ; 74 0a
     13559    je short 09164h                           ; 74 0a
    1337813560    mov al, byte [bx]                         ; 8a 07
    1337913561    out DX, AL                                ; ee
     
    1338213564    db  00ah, 0c0h
    1338313565    ; or al, al                                 ; 0a c0
    13384     jne short 08f99h                          ; 75 f8
     13566    jne short 0915ch                          ; 75 f8
    1338513567    lea sp, [bp-002h]                         ; 8d 66 fe
    1338613568    pop bx                                    ; 5b
    1338713569    pop bp                                    ; 5d
    1338813570    retn                                      ; c3
    13389     call 04439h                               ; e8 8f b4
    13390     nop                                       ; 90
    13391     cli                                       ; fa
    13392     db  08fh, 015h
    13393     ; pop word [di]                             ; 8f 15
    13394     nop                                       ; 90
    13395     mov AH, strict byte 090h                  ; b4 90
     13571    stosw                                     ; ab
     13572    xchg cx, ax                               ; 91
     13573    jnbe short 09100h                         ; 77 92
     13574    mov bp, 0d891h                            ; bd 91 d8
     13575    xchg cx, ax                               ; 91
     13576    jnbe short 09106h                         ; 77 92
     13577    add dx, word [bp+si-06d89h]               ; 03 92 77 92
     13578    or byte [bp+si-06db4h], dl                ; 08 92 4c 92
     13579    dec sp                                    ; 4c
     13580    xchg dx, ax                               ; 92
     13581    dec sp                                    ; 4c
     13582    xchg dx, ax                               ; 92
     13583    inc di                                    ; 47
     13584    xchg dx, ax                               ; 92
     13585    dec sp                                    ; 4c
     13586    xchg dx, ax                               ; 92
     13587    dec sp                                    ; 4c
     13588    xchg dx, ax                               ; 92
    1339613589    inc ax                                    ; 40
    13397     nop                                       ; 90
    13398     mov AH, strict byte 090h                  ; b4 90
    13399     inc bp                                    ; 45
    13400     nop                                       ; 90
    13401     mov word [bx+si-06f77h], dx               ; 89 90 89 90
    13402     mov word [bx+si-06f7ch], dx               ; 89 90 84 90
    13403     mov word [bx+si-06f77h], dx               ; 89 90 89 90
    13404     jnl short 08f55h                          ; 7d 90
    13405 _apm_function:                               ; 0xf8fc5 LB 0xf5
     13590    xchg dx, ax                               ; 92
     13591_apm_function:                               ; 0xf9188 LB 0xf5
    1340613592    push bp                                   ; 55
    1340713593    mov bp, sp                                ; 89 e5
     
    1341113597    xor ah, ah                                ; 30 e4
    1341213598    cmp ax, strict word 0000eh                ; 3d 0e 00
    13413     jnbe near 09089h                          ; 0f 87 b0 00
     13599    jnbe near 0924ch                          ; 0f 87 b0 00
    1341413600    mov bx, ax                                ; 89 c3
    1341513601    add bx, ax                                ; 01 c3
    1341613602    mov dx, word [bp+018h]                    ; 8b 56 18
    1341713603    or dl, 001h                               ; 80 ca 01
    13418     jmp word [cs:bx-07059h]                   ; 2e ff a7 a7 8f
     13604    jmp word [cs:bx-06e96h]                   ; 2e ff a7 6a 91
    1341913605    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1342013606    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1342113607    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13422     jmp near 090b4h                           ; e9 ba 00
     13608    jmp near 09277h                           ; e9 ba 00
    1342313609    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13424     mov word [bp+00ch], 09614h                ; c7 46 0c 14 96
     13610    mov word [bp+00ch], 097d4h                ; c7 46 0c d4 97
    1342513611    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1342613612    mov ax, strict word 0fff0h                ; b8 f0 ff
    1342713613    mov word [bp+006h], ax                    ; 89 46 06
    1342813614    mov word [bp+004h], ax                    ; 89 46 04
    13429     jmp near 090b4h                           ; e9 9f 00
     13615    jmp near 09277h                           ; e9 9f 00
    1343013616    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1343113617    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1344013626    mov si, ax                                ; 89 c6
    1344113627    sal esi, 010h                             ; 66 c1 e6 10
    13442     jmp near 090b4h                           ; e9 74 00
     13628    jmp near 09277h                           ; e9 74 00
    1344313629    sti                                       ; fb
    1344413630    hlt                                       ; f4
    13445     jmp near 090b4h                           ; e9 6f 00
     13631    jmp near 09277h                           ; e9 6f 00
    1344613632    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13447     je short 0906ah                           ; 74 1f
     13633    je short 0922dh                           ; 74 1f
    1344813634    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13449     je short 09062h                           ; 74 11
     13635    je short 09225h                           ; 74 11
    1345013636    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13451     jne short 09072h                          ; 75 1b
     13637    jne short 09235h                          ; 75 1b
    1345213638    mov dx, 08900h                            ; ba 00 89
    1345313639    mov ax, 00d12h                            ; b8 12 0d
    13454     call 08f8ch                               ; e8 2c ff
    13455     jmp short 090b4h                          ; eb 52
     13640    call 0914fh                               ; e8 2c ff
     13641    jmp short 09277h                          ; eb 52
    1345613642    mov dx, 08900h                            ; ba 00 89
    1345713643    mov ax, 00d1ah                            ; b8 1a 0d
    13458     jmp short 0905dh                          ; eb f3
     13644    jmp short 09220h                          ; eb f3
    1345913645    mov dx, 08900h                            ; ba 00 89
    1346013646    mov ax, 00d22h                            ; b8 22 0d
    13461     jmp short 0905dh                          ; eb eb
     13647    jmp short 09220h                          ; eb eb
    1346213648    or ah, 00ah                               ; 80 cc 0a
    1346313649    mov word [bp+012h], ax                    ; 89 46 12
    1346413650    mov word [bp+018h], dx                    ; 89 56 18
    13465     jmp short 090b4h                          ; eb 37
     13651    jmp short 09277h                          ; eb 37
    1346613652    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13467     jmp short 090b4h                          ; eb 30
     13653    jmp short 09277h                          ; eb 30
    1346813654    or ah, 080h                               ; 80 cc 80
    13469     jmp short 09075h                          ; eb ec
    13470     mov bx, 00da2h                            ; bb a2 0d
     13655    jmp short 09238h                          ; eb ec
     13656    mov bx, 00da8h                            ; bb a8 0d
    1347113657    mov cx, ds                                ; 8c d9
    1347213658    mov ax, strict word 00004h                ; b8 04 00
    13473     call 01931h                               ; e8 9d 88
     13659    call 01931h                               ; e8 da 86
    1347413660    push word [bp+00ch]                       ; ff 76 0c
    1347513661    push word [bp+012h]                       ; ff 76 12
    1347613662    push 00d2bh                               ; 68 2b 0d
    1347713663    push strict byte 00004h                   ; 6a 04
    13478     call 01972h                               ; e8 d0 88
     13664    call 01972h                               ; e8 0d 87
    1347913665    add sp, strict byte 00008h                ; 83 c4 08
    1348013666    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1348713673    pop bp                                    ; 5d
    1348813674    retn                                      ; c3
    13489 pci16_select_reg_:                           ; 0xf90ba LB 0x24
     13675pci16_select_reg_:                           ; 0xf927d LB 0x24
    1349013676    push bp                                   ; 55
    1349113677    mov bp, sp                                ; 89 e5
     
    1350413690    pop bp                                    ; 5d
    1350513691    retn                                      ; c3
    13506 pci16_find_device_:                          ; 0xf90de LB 0xf7
     13692pci16_find_device_:                          ; 0xf92a1 LB 0xf7
    1350713693    push bp                                   ; 55
    1350813694    mov bp, sp                                ; 89 e5
     
    1351813704    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351913705    test bl, 007h                             ; f6 c3 07
    13520     jne short 09126h                          ; 75 2d
     13706    jne short 092e9h                          ; 75 2d
    1352113707    mov dx, strict word 0000eh                ; ba 0e 00
    1352213708    mov ax, bx                                ; 89 d8
    13523     call 090bah                               ; e8 b9 ff
     13709    call 0927dh                               ; e8 b9 ff
    1352413710    mov dx, 00cfeh                            ; ba fe 0c
    1352513711    in AL, DX                                 ; ec
     
    1352813714    mov byte [bp-006h], al                    ; 88 46 fa
    1352913715    cmp AL, strict byte 0ffh                  ; 3c ff
    13530     jne short 09114h                          ; 75 06
     13716    jne short 092d7h                          ; 75 06
    1353113717    add bx, strict byte 00008h                ; 83 c3 08
    13532     jmp near 091a7h                           ; e9 93 00
     13718    jmp near 0936ah                           ; e9 93 00
    1353313719    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13534     je short 09121h                           ; 74 07
     13720    je short 092e4h                           ; 74 07
    1353513721    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13536     jmp short 09126h                          ; eb 05
     13722    jmp short 092e9h                          ; eb 05
    1353713723    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1353813724    mov al, byte [bp-006h]                    ; 8a 46 fa
    1353913725    and AL, strict byte 007h                  ; 24 07
    1354013726    cmp AL, strict byte 001h                  ; 3c 01
    13541     jne short 0914eh                          ; 75 1f
     13727    jne short 09311h                          ; 75 1f
    1354213728    mov ax, bx                                ; 89 d8
    1354313729    shr ax, 008h                              ; c1 e8 08
    1354413730    test ax, ax                               ; 85 c0
    13545     jne short 0914eh                          ; 75 16
     13731    jne short 09311h                          ; 75 16
    1354613732    mov dx, strict word 0001ah                ; ba 1a 00
    1354713733    mov ax, bx                                ; 89 d8
    13548     call 090bah                               ; e8 7a ff
     13734    call 0927dh                               ; e8 7a ff
    1354913735    mov dx, 00cfeh                            ; ba fe 0c
    1355013736    in AL, DX                                 ; ec
     
    1355213738    ; sub ah, ah                                ; 2a e4
    1355313739    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13554     jbe short 0914eh                          ; 76 03
     13740    jbe short 09311h                          ; 76 03
    1355513741    mov byte [bp-008h], al                    ; 88 46 f8
    1355613742    test di, di                               ; 85 ff
    13557     je short 09157h                           ; 74 05
     13743    je short 0931ah                           ; 74 05
    1355813744    mov dx, strict word 00008h                ; ba 08 00
    13559     jmp short 09159h                          ; eb 02
     13745    jmp short 0931ch                          ; eb 02
    1356013746    xor dx, dx                                ; 31 d2
    1356113747    mov ax, bx                                ; 89 d8
    13562     call 090bah                               ; e8 5c ff
     13748    call 0927dh                               ; e8 5c ff
    1356313749    mov dx, 00cfch                            ; ba fc 0c
    1356413750    in eax, DX                                ; 66 ed
     
    1357113757    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1357213758    test di, di                               ; 85 ff
    13573     je short 09188h                           ; 74 0f
     13759    je short 0934bh                           ; 74 0f
    1357413760    mov cx, strict word 00008h                ; b9 08 00
    1357513761    shr dx, 1                                 ; d1 ea
    1357613762    rcr ax, 1                                 ; d1 d8
    13577     loop 0917ch                               ; e2 fa
     13763    loop 0933fh                               ; e2 fa
    1357813764    mov word [bp-00eh], ax                    ; 89 46 f2
    1357913765    mov word [bp-00ch], dx                    ; 89 56 f4
    1358013766    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1358113767    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13582     jne short 09198h                          ; 75 08
     13768    jne short 0935bh                          ; 75 08
    1358313769    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1358413770    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13585     je short 0919eh                           ; 74 06
     13771    je short 09361h                           ; 74 06
    1358613772    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13587     je short 091a4h                           ; 74 06
     13773    je short 09367h                           ; 74 06
    1358813774    dec si                                    ; 4e
    1358913775    cmp si, strict byte 0ffffh                ; 83 fe ff
    13590     je short 091b6h                           ; 74 12
     13776    je short 09379h                           ; 74 12
    1359113777    add bx, word [bp-00ah]                    ; 03 5e f6
    1359213778    mov dx, bx                                ; 89 da
     
    1359413780    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1359513781    cmp dx, ax                                ; 39 c2
    13596     jbe near 090f4h                           ; 0f 86 3e ff
     13782    jbe near 092b7h                           ; 0f 86 3e ff
    1359713783    cmp si, strict byte 0ffffh                ; 83 fe ff
    13598     jne short 091bfh                          ; 75 04
     13784    jne short 09382h                          ; 75 04
    1359913785    mov ax, bx                                ; 89 d8
    13600     jmp short 091c2h                          ; eb 03
     13786    jmp short 09385h                          ; eb 03
    1360113787    mov ax, strict word 0ffffh                ; b8 ff ff
    1360213788    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1360513791    pop bp                                    ; 5d
    1360613792    retn                                      ; c3
    13607     mov BH, strict byte 092h                  ; b7 92
    13608     rcl word [bp+si-06d1ch], 1                ; d1 92 e4 92
    13609     stc                                       ; f9
    13610     xchg dx, ax                               ; 92
    13611     or AL, strict byte 093h                   ; 0c 93
    13612     pop DS                                    ; 1f
    13613     xchg bx, ax                               ; 93
    13614 _pci16_function:                             ; 0xf91d5 LB 0x1d7
     13793    jp short 09322h                           ; 7a 94
     13794    xchg sp, ax                               ; 94
     13795    xchg sp, ax                               ; 94
     13796    cmpsw                                     ; a7
     13797    xchg sp, ax                               ; 94
     13798    mov sp, 0cf94h                            ; bc 94 cf
     13799    xchg sp, ax                               ; 94
     13800    loop 0932ch                               ; e2 94
     13801_pci16_function:                             ; 0xf9398 LB 0x1d7
    1361513802    push bp                                   ; 55
    1361613803    mov bp, sp                                ; 89 e5
     
    1362613813    xor ah, ah                                ; 30 e4
    1362713814    cmp bx, strict byte 00003h                ; 83 fb 03
    13628     jc short 0920eh                           ; 72 1a
    13629     jbe short 09266h                          ; 76 70
     13815    jc short 093d1h                           ; 72 1a
     13816    jbe short 09429h                          ; 76 70
    1363013817    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13631     je near 09333h                            ; 0f 84 36 01
     13818    je near 094f6h                            ; 0f 84 36 01
    1363213819    cmp bx, strict byte 00008h                ; 83 fb 08
    13633     jc near 09378h                            ; 0f 82 74 01
     13820    jc near 0953bh                            ; 0f 82 74 01
    1363413821    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13635     jbe near 0928bh                           ; 0f 86 80 00
    13636     jmp near 09378h                           ; e9 6a 01
     13822    jbe near 0944eh                           ; 0f 86 80 00
     13823    jmp near 0953bh                           ; e9 6a 01
    1363713824    cmp bx, strict byte 00002h                ; 83 fb 02
    13638     je short 09236h                           ; 74 23
     13825    je short 093f9h                           ; 74 23
    1363913826    cmp bx, strict byte 00001h                ; 83 fb 01
    13640     jne near 09378h                           ; 0f 85 5e 01
     13827    jne near 0953bh                           ; 0f 85 5e 01
    1364113828    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1364213829    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1364413831    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1364513832    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13646     jmp near 093a5h                           ; e9 6f 01
     13833    jmp near 09568h                           ; e9 6f 01
    1364713834    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13648     jne short 09242h                          ; 75 06
     13835    jne short 09405h                          ; 75 06
    1364913836    or ah, 083h                               ; 80 cc 83
    13650     jmp near 0939eh                           ; e9 5c 01
     13837    jmp near 09561h                           ; e9 5c 01
    1365113838    mov bx, word [bp+008h]                    ; 8b 5e 08
    1365213839    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1365313840    mov ax, word [bp+018h]                    ; 8b 46 18
    1365413841    xor cx, cx                                ; 31 c9
    13655     call 090deh                               ; e8 8e fe
     13842    call 092a1h                               ; e8 8e fe
    1365613843    cmp ax, strict word 0ffffh                ; 3d ff ff
    13657     jne short 09260h                          ; 75 0b
     13844    jne short 09423h                          ; 75 0b
    1365813845    mov ax, word [bp+020h]                    ; 8b 46 20
    1365913846    xor ah, ah                                ; 30 e4
    1366013847    or ah, 086h                               ; 80 cc 86
    13661     jmp near 0939eh                           ; e9 3e 01
     13848    jmp near 09561h                           ; e9 3e 01
    1366213849    mov word [bp+014h], ax                    ; 89 46 14
    13663     jmp near 093a5h                           ; e9 3f 01
     13850    jmp near 09568h                           ; e9 3f 01
    1366413851    mov bx, word [bp+008h]                    ; 8b 5e 08
    1366513852    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1366613853    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1366713854    mov cx, strict word 00001h                ; b9 01 00
    13668     call 090deh                               ; e8 69 fe
     13855    call 092a1h                               ; e8 69 fe
    1366913856    cmp ax, strict word 0ffffh                ; 3d ff ff
    13670     jne short 09285h                          ; 75 0b
     13857    jne short 09448h                          ; 75 0b
    1367113858    mov ax, word [bp+020h]                    ; 8b 46 20
    1367213859    xor ah, ah                                ; 30 e4
    1367313860    or ah, 086h                               ; 80 cc 86
    13674     jmp near 0939eh                           ; e9 19 01
     13861    jmp near 09561h                           ; e9 19 01
    1367513862    mov word [bp+014h], ax                    ; 89 46 14
    13676     jmp near 093a5h                           ; e9 1a 01
     13863    jmp near 09568h                           ; e9 1a 01
    1367713864    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13678     jc short 09298h                           ; 72 06
     13865    jc short 0945bh                           ; 72 06
    1367913866    or ah, 087h                               ; 80 cc 87
    13680     jmp near 0939eh                           ; e9 06 01
     13867    jmp near 09561h                           ; e9 06 01
    1368113868    mov dx, word [bp+004h]                    ; 8b 56 04
    1368213869    mov ax, word [bp+014h]                    ; 8b 46 14
    13683     call 090bah                               ; e8 19 fe
     13870    call 0927dh                               ; e8 19 fe
    1368413871    mov bx, word [bp+020h]                    ; 8b 5e 20
    1368513872    xor bh, bh                                ; 30 ff
    1368613873    sub bx, strict byte 00008h                ; 83 eb 08
    1368713874    cmp bx, strict byte 00005h                ; 83 fb 05
    13688     jnbe near 093a5h                          ; 0f 87 f5 00
     13875    jnbe near 09568h                          ; 0f 87 f5 00
    1368913876    add bx, bx                                ; 01 db
    13690     jmp word [cs:bx-06e37h]                   ; 2e ff a7 c9 91
     13877    jmp word [cs:bx-06c74h]                   ; 2e ff a7 8c 93
    1369113878    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1369213879    xor bl, bl                                ; 30 db
     
    1369913886    or bx, ax                                 ; 09 c3
    1370013887    mov word [bp+01ch], bx                    ; 89 5e 1c
    13701     jmp near 093a5h                           ; e9 d4 00
     13888    jmp near 09568h                           ; e9 d4 00
    1370213889    mov dx, word [bp+004h]                    ; 8b 56 04
    1370313890    xor dh, dh                                ; 30 f6
     
    1370613893    in ax, DX                                 ; ed
    1370713894    mov word [bp+01ch], ax                    ; 89 46 1c
    13708     jmp near 093a5h                           ; e9 c1 00
     13895    jmp near 09568h                           ; e9 c1 00
    1370913896    mov dx, 00cfch                            ; ba fc 0c
    1371013897    in eax, DX                                ; 66 ed
     
    1371513902    mov word [bp+01ch], ax                    ; 89 46 1c
    1371613903    mov word [bp+01eh], dx                    ; 89 56 1e
    13717     jmp near 093a5h                           ; e9 ac 00
     13904    jmp near 09568h                           ; e9 ac 00
    1371813905    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1371913906    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1372213909    add dx, 00cfch                            ; 81 c2 fc 0c
    1372313910    out DX, AL                                ; ee
    13724     jmp near 093a5h                           ; e9 99 00
     13911    jmp near 09568h                           ; e9 99 00
    1372513912    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1372613913    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1372913916    add dx, 00cfch                            ; 81 c2 fc 0c
    1373013917    out DX, ax                                ; ef
    13731     jmp near 093a5h                           ; e9 86 00
     13918    jmp near 09568h                           ; e9 86 00
    1373213919    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1373313920    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1373813925    ; mov ax, cx                                ; 8b c1
    1373913926    out DX, eax                               ; 66 ef
    13740     jmp short 093a5h                          ; eb 72
     13927    jmp short 09568h                          ; eb 72
    1374113928    mov bx, word [bp+004h]                    ; 8b 5e 04
    1374213929    mov es, [bp+026h]                         ; 8e 46 26
     
    1374513932    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1374613933    cmp cx, word [es:bx]                      ; 26 3b 0f
    13747     jbe short 09359h                          ; 76 11
     13934    jbe short 0951ch                          ; 76 11
    1374813935    mov ax, word [bp+020h]                    ; 8b 46 20
    1374913936    xor ah, ah                                ; 30 e4
     
    1375113938    mov word [bp+020h], ax                    ; 89 46 20
    1375213939    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13753     jmp short 0936dh                          ; eb 14
     13940    jmp short 09530h                          ; eb 14
    1375413941    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1375513942    mov si, 0f2c0h                            ; be c0 f2
     
    1376313950    les bx, [bp-008h]                         ; c4 5e f8
    1376413951    mov word [es:bx], ax                      ; 26 89 07
    13765     jmp short 093a5h                          ; eb 2d
    13766     mov bx, 00da2h                            ; bb a2 0d
     13952    jmp short 09568h                          ; eb 2d
     13953    mov bx, 00da8h                            ; bb a8 0d
    1376713954    mov cx, ds                                ; 8c d9
    1376813955    mov ax, strict word 00004h                ; b8 04 00
    13769     call 01931h                               ; e8 ae 85
     13956    call 01931h                               ; e8 eb 83
    1377013957    mov ax, word [bp+014h]                    ; 8b 46 14
    1377113958    push ax                                   ; 50
     
    1377413961    push 00d5eh                               ; 68 5e 0d
    1377513962    push strict byte 00004h                   ; 6a 04
    13776     call 01972h                               ; e8 df 85
     13963    call 01972h                               ; e8 1c 84
    1377713964    add sp, strict byte 00008h                ; 83 c4 08
    1377813965    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1378613973    pop bp                                    ; 5d
    1378713974    retn                                      ; c3
    13788 pci_find_classcode_:                         ; 0xf93ac LB 0x2b
     13975pci_find_classcode_:                         ; 0xf956f LB 0x2b
    1378913976    push bp                                   ; 55
    1379013977    mov bp, sp                                ; 89 e5
     
    1380113988    int 01ah                                  ; cd 1a
    1380213989    cmp ah, 000h                              ; 80 fc 00
    13803     je near 093cdh                            ; 0f 84 03 00
     13990    je near 09590h                            ; 0f 84 03 00
    1380413991    mov bx, strict word 0ffffh                ; bb ff ff
    1380513992    mov ax, bx                                ; 89 d8
     
    1381013997    pop bp                                    ; 5d
    1381113998    retn                                      ; c3
    13812 pci_read_config_byte_:                       ; 0xf93d7 LB 0x24
     13999pci_read_config_byte_:                       ; 0xf959a LB 0x24
    1381314000    push bp                                   ; 55
    1381414001    mov bp, sp                                ; 89 e5
     
    1382914016    pop bp                                    ; 5d
    1383014017    retn                                      ; c3
    13831 pci_read_config_word_:                       ; 0xf93fb LB 0x22
     14018pci_read_config_word_:                       ; 0xf95be LB 0x22
    1383214019    push bp                                   ; 55
    1383314020    mov bp, sp                                ; 89 e5
     
    1384814035    pop bp                                    ; 5d
    1384914036    retn                                      ; c3
    13850 pci_read_config_dword_:                      ; 0xf941d LB 0x27
     14037pci_read_config_dword_:                      ; 0xf95e0 LB 0x27
    1385114038    push bp                                   ; 55
    1385214039    mov bp, sp                                ; 89 e5
     
    1386914056    pop bp                                    ; 5d
    1387014057    retn                                      ; c3
    13871 vds_is_present_:                             ; 0xf9444 LB 0x1d
     14058vds_is_present_:                             ; 0xf9607 LB 0x1d
    1387214059    push bx                                   ; 53
    1387314060    push bp                                   ; 55
     
    1387714064    mov es, ax                                ; 8e c0
    1387814065    test byte [es:bx], 020h                   ; 26 f6 07 20
    13879     je short 0945ch                           ; 74 06
     14066    je short 0961fh                           ; 74 06
    1388014067    mov ax, strict word 00001h                ; b8 01 00
    1388114068    pop bp                                    ; 5d
     
    1388614073    pop bx                                    ; 5b
    1388714074    retn                                      ; c3
    13888 vds_real_to_lin_:                            ; 0xf9461 LB 0x1e
     14075vds_real_to_lin_:                            ; 0xf9624 LB 0x1e
    1388914076    push bx                                   ; 53
    1389014077    push cx                                   ; 51
     
    1389714084    sal ax, 1                                 ; d1 e0
    1389814085    rcl dx, 1                                 ; d1 d2
    13899     loop 0946fh                               ; e2 fa
     14086    loop 09632h                               ; e2 fa
    1390014087    xor cx, cx                                ; 31 c9
    1390114088    add ax, bx                                ; 01 d8
     
    1390514092    pop bx                                    ; 5b
    1390614093    retn                                      ; c3
    13907 vds_build_sg_list_:                          ; 0xf947f LB 0x79
     14094vds_build_sg_list_:                          ; 0xf9642 LB 0x79
    1390814095    push bp                                   ; 55
    1390914096    mov bp, sp                                ; 89 e5
     
    1391914106    mov bx, word [bp+006h]                    ; 8b 5e 06
    1392014107    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13921     call 09461h                               ; e8 c3 ff
     14108    call 09624h                               ; e8 c3 ff
    1392214109    mov es, si                                ; 8e c6
    1392314110    mov word [es:di+004h], ax                 ; 26 89 45 04
    1392414111    mov word [es:di+006h], dx                 ; 26 89 55 06
    1392514112    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13926     call 09444h                               ; e8 93 ff
     14113    call 09607h                               ; e8 93 ff
    1392714114    test ax, ax                               ; 85 c0
    13928     je short 094c8h                           ; 74 13
     14115    je short 0968bh                           ; 74 13
    1392914116    mov es, si                                ; 8e c6
    1393014117    mov ax, 08105h                            ; b8 05 81
    1393114118    mov dx, strict word 00000h                ; ba 00 00
    1393214119    int 04bh                                  ; cd 4b
    13933     jc near 094c5h                            ; 0f 82 02 00
     14120    jc near 09688h                            ; 0f 82 02 00
    1393414121    db  032h, 0c0h
    1393514122    ; xor al, al                                ; 32 c0
    1393614123    cbw                                       ; 98
    13937     jmp short 094efh                          ; eb 27
     14124    jmp short 096b2h                          ; eb 27
    1393814125    mov es, si                                ; 8e c6
    1393914126    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1395214139    pop bp                                    ; 5d
    1395314140    retn 00004h                               ; c2 04 00
    13954 vds_free_sg_list_:                           ; 0xf94f8 LB 0x38
     14141vds_free_sg_list_:                           ; 0xf96bb LB 0x35
    1395514142    push bp                                   ; 55
    1395614143    mov bp, sp                                ; 89 e5
     
    1395814145    push di                                   ; 57
    1395914146    mov bx, ax                                ; 89 c3
    13960     call 09444h                               ; e8 42 ff
     14147    call 09607h                               ; e8 42 ff
    1396114148    test ax, ax                               ; 85 c0
    13962     je short 09519h                           ; 74 13
     14149    je short 096dch                           ; 74 13
    1396314150    mov di, bx                                ; 89 df
    1396414151    mov es, dx                                ; 8e c2
     
    1396614153    mov dx, strict word 00000h                ; ba 00 00
    1396714154    int 04bh                                  ; cd 4b
    13968     jc near 09518h                            ; 0f 82 02 00
     14155    jc near 096dbh                            ; 0f 82 02 00
    1396914156    db  032h, 0c0h
    1397014157    ; xor al, al                                ; 32 c0
     
    1397714164    pop bp                                    ; 5d
    1397814165    retn                                      ; c3
    13979     times 0x8 db 0
    13980 __U4D:                                       ; 0xf9530 LB 0x39
     14166    times 0x5 db 0
     14167__U4D:                                       ; 0xf96f0 LB 0x39
    1398114168    pushfw                                    ; 9c
    1398214169    push eax                                  ; 66 50
     
    1400814195    popfw                                     ; 9d
    1400914196    retn                                      ; c3
    14010 __U4M:                                       ; 0xf9569 LB 0x31
     14197__U4M:                                       ; 0xf9729 LB 0x31
    1401114198    pushfw                                    ; 9c
    1401214199    push eax                                  ; 66 50
     
    1403314220    popfw                                     ; 9d
    1403414221    retn                                      ; c3
    14035 _fmemset_:                                   ; 0xf959a LB 0xd
     14222_fmemset_:                                   ; 0xf975a LB 0xd
    1403614223    push di                                   ; 57
    1403714224    mov es, dx                                ; 8e c2
     
    1404314230    pop di                                    ; 5f
    1404414231    retn                                      ; c3
    14045 _fmemcpy_:                                   ; 0xf95a7 LB 0x33
     14232_fmemcpy_:                                   ; 0xf9767 LB 0x33
    1404614233    push bp                                   ; 55
    1404714234    db  08bh, 0ech
     
    1406314250    leave                                     ; c9
    1406414251    retn                                      ; c3
    14065     add al, dh                                ; 00 f0
    14066     xchg bp, ax                               ; 95
    14067     repne xchg bp, ax                         ; f2 95
    14068     not byte [di-06a0ah]                      ; f6 95 f6 95
    14069     not byte [di-06a08h]                      ; f6 95 f8 95
    14070     clc                                       ; f8
    14071     xchg bp, ax                               ; 95
    14072     cli                                       ; fa
    14073     xchg bp, ax                               ; 95
    14074     db  0feh
    14075     xchg bp, ax                               ; 95
    14076     db  0feh
    14077     xchg bp, ax                               ; 95
    14078     add byte [bp-069fbh], dl                  ; 00 96 05 96
    14079     pop ES                                    ; 07
    14080     xchg si, ax                               ; 96
    14081 apm_worker:                                  ; 0xf95da LB 0x3a
     14252    add byte [bx+si-04d69h], dh               ; 00 b0 97 b2
     14253    xchg di, ax                               ; 97
     14254    mov DH, strict byte 097h                  ; b6 97
     14255    mov DH, strict byte 097h                  ; b6 97
     14256    mov DH, strict byte 097h                  ; b6 97
     14257    mov ax, 0b897h                            ; b8 97 b8
     14258    xchg di, ax                               ; 97
     14259    mov dx, 0be97h                            ; ba 97 be
     14260    xchg di, ax                               ; 97
     14261    mov si, 0c097h                            ; be 97 c0
     14262    xchg di, ax                               ; 97
     14263    lds dx, [bx-06839h]                       ; c5 97 c7 97
     14264apm_worker:                                  ; 0xf979a LB 0x3a
    1408214265    sti                                       ; fb
    1408314266    push ax                                   ; 50
     
    1409114274    pop ax                                    ; 58
    1409214275    mov AH, strict byte 053h                  ; b4 53
    14093     jnc short 09610h                          ; 73 25
    14094     jmp word [cs:bp-06a40h]                   ; 2e ff a6 c0 95
    14095     jmp short 0960eh                          ; eb 1c
     14276    jnc short 097d0h                          ; 73 25
     14277    jmp word [cs:bp-06880h]                   ; 2e ff a6 80 97
     14278    jmp short 097ceh                          ; eb 1c
    1409614279    sti                                       ; fb
    1409714280    hlt                                       ; f4
    14098     jmp short 0960eh                          ; eb 18
    14099     jmp short 0960eh                          ; eb 16
    14100     jmp short 09610h                          ; eb 16
     14281    jmp short 097ceh                          ; eb 18
     14282    jmp short 097ceh                          ; eb 16
     14283    jmp short 097d0h                          ; eb 16
    1410114284    mov AH, strict byte 080h                  ; b4 80
    14102     jmp short 09612h                          ; eb 14
    14103     jmp short 09610h                          ; eb 10
     14285    jmp short 097d2h                          ; eb 14
     14286    jmp short 097d0h                          ; eb 10
    1410414287    mov ax, 00102h                            ; b8 02 01
    14105     jmp short 0960eh                          ; eb 09
    14106     jmp short 0960eh                          ; eb 07
     14288    jmp short 097ceh                          ; eb 09
     14289    jmp short 097ceh                          ; eb 07
    1410714290    mov BL, strict byte 000h                  ; b3 00
    1410814291    mov cx, strict word 00000h                ; b9 00 00
    14109     jmp short 0960eh                          ; eb 00
     14292    jmp short 097ceh                          ; eb 00
    1411014293    clc                                       ; f8
    1411114294    retn                                      ; c3
     
    1411314296    stc                                       ; f9
    1411414297    retn                                      ; c3
    14115 apm_pm16_entry:                              ; 0xf9614 LB 0x11
     14298apm_pm16_entry:                              ; 0xf97d4 LB 0x11
    1411614299    mov AH, strict byte 002h                  ; b4 02
    1411714300    push DS                                   ; 1e
     
    1412114304    add bp, strict byte 00008h                ; 83 c5 08
    1412214305    mov ds, bp                                ; 8e dd
    14123     call 095dah                               ; e8 b8 ff
     14306    call 0979ah                               ; e8 b8 ff
    1412414307    pop bp                                    ; 5d
    1412514308    pop DS                                    ; 1f
    1412614309    retf                                      ; cb
    1412714310
    14128   ; Padding 0x43db bytes at 0xf9625
    14129   times 17371 db 0
     14311  ; Padding 0x421b bytes at 0xf97e5
     14312  times 16923 db 0
    1413014313
    1413114314section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1417414357    add bp, strict byte 00008h                ; 83 c5 08
    1417514358    push ebp                                  ; 66 55
    14176     mov bp, 09616h                            ; bd 16 96
     14359    mov bp, 097d6h                            ; bd d6 97
    1417714360    add byte [bx+si], al                      ; 00 00
    1417814361    push ebp                                  ; 66 55
     
    1437014553    xor bx, bx                                ; 31 db
    1437114554    db  00fh, 0b7h, 055h, 00ch
    14372     ; movzx dx, word [di+00ch]                  ; 0f b7 55 0c
     14555    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
    1437314556    db  00fh, 0b7h, 045h, 020h
    14374     ; movzx ax, word [di+020h]                  ; 0f b7 45 20
     14557    ; movzx ax, [di+020h]                       ; 0f b7 45 20
    1437514558    sal ax, 010h                              ; c1 e0 10
    1437614559    db  00fh, 0b7h, 04dh, 01ch
    14377     ; movzx cx, word [di+01ch]                  ; 0f b7 4d 1c
     14560    ; movzx cx, [di+01ch]                       ; 0f b7 4d 1c
    1437814561    or ax, cx                                 ; 09 c8
    1437914562    call 0da81h                               ; e8 66 fe
     
    1439114574    add byte [bx+si], al                      ; 00 00
    1439214575    db  00fh, 0b7h, 055h, 00ch
    14393     ; movzx dx, word [di+00ch]                  ; 0f b7 55 0c
     14576    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
    1439414577    mov ax, word [di+020h]                    ; 8b 45 20
    1439514578    mov bx, strict word 00001h                ; bb 01 00
     
    1441514598    add byte [bx+si], al                      ; 00 00
    1441614599    db  00fh, 0b7h, 055h, 008h
    14417     ; movzx dx, word [di+008h]                  ; 0f b7 55 08
     14600    ; movzx dx, [di+008h]                       ; 0f b7 55 08
    1441814601    db  00fh, 0b7h, 045h, 018h
    14419     ; movzx ax, word [di+018h]                  ; 0f b7 45 18
     14602    ; movzx ax, [di+018h]                       ; 0f b7 45 18
    1442014603    call 0da5fh                               ; e8 d9 fd
    1442114604    db  0ffh
     
    1448414667    add byte [bx+si], al                      ; 00 00
    1448514668    db  00fh, 0b7h, 045h, 020h
    14486     ; movzx ax, word [di+020h]                  ; 0f b7 45 20
     14669    ; movzx ax, [di+020h]                       ; 0f b7 45 20
    1448714670    mov dx, word [di+008h]                    ; 8b 55 08
    1448814671    xor dh, dh                                ; 30 f6
     
    1450114684    jmp short 0ddc3h                          ; eb 70
    1450214685    db  00fh, 0b7h, 045h, 008h
    14503     ; movzx ax, word [di+008h]                  ; 0f b7 45 08
     14686    ; movzx ax, [di+008h]                       ; 0f b7 45 08
    1450414687    mov es, [di+028h]                         ; 8e 45 28
    1450514688    mov [di-010h], es                         ; 8c 45 f0
     
    1478014963    mov dx, 0c800h                            ; ba 00 c8
    1478114964    call 01600h                               ; e8 e7 33
    14782     call 049b4h                               ; e8 98 67
     14965    call 04b77h                               ; e8 5b 69
    1478314966    pop DS                                    ; 1f
    1478414967    mov ax, 0ff53h                            ; b8 53 ff
     
    1489615079    call 01badh                               ; e8 71 38
    1489715080    call 01fa7h                               ; e8 68 3c
    14898     call 08e8eh                               ; e8 4c ab
    14899     call 07ee5h                               ; e8 a0 9b
     15081    call 09051h                               ; e8 0f ad
     15082    call 080a8h                               ; e8 63 9d
    1490015083    call 0ed2fh                               ; e8 e7 09
    1490115084    call 0e2d2h                               ; e8 87 ff
     
    1490715090    mov dx, 0f000h                            ; ba 00 f0
    1490815091    call 01600h                               ; e8 a6 32
    14909     call 03698h                               ; e8 3b 53
     15092    call 0385bh                               ; e8 fe 54
    1491015093    sti                                       ; fb
    1491115094    int 019h                                  ; cd 19
     
    1500515188    pop DS                                    ; 1f
    1500615189    cld                                       ; fc
    15007     call 05d9eh                               ; e8 5c 76
     15190    call 05f61h                               ; e8 1f 78
    1500815191    popaw                                     ; 61
    1500915192    pop ES                                    ; 07
     
    1508015263    pop DS                                    ; 1f
    1508115264    cld                                       ; fc
    15082     call 0510ch                               ; e8 ca 68
     15265    call 052cfh                               ; e8 8d 6a
    1508315266    popaw                                     ; 61
    1508415267    pop DS                                    ; 1f
     
    1509715280    pop DS                                    ; 1f
    1509815281    cld                                       ; fc
    15099     call 0510ch                               ; e8 ac 68
     15282    call 052cfh                               ; e8 6f 6a
    1510015283    popaw                                     ; 61
    1510115284    pop DS                                    ; 1f
     
    1519915382    pop DS                                    ; 1f
    1520015383    cld                                       ; fc
    15201     call 04cb1h                               ; e8 e2 62
     15384    call 04e74h                               ; e8 a5 64
    1520215385    pop ES                                    ; 07
    1520315386    popaw                                     ; 61
     
    1521515398    pop DS                                    ; 1f
    1521615399    cld                                       ; fc
    15217     call 067f6h                               ; e8 11 7e
     15400    call 069b9h                               ; e8 d4 7f
    1521815401    pop DS                                    ; 1f
    1521915402    pop ES                                    ; 07
     
    1523615419    cld                                       ; fc
    1523715420    push 0ece9h                               ; 68 e9 ec
    15238     jmp near 036dch                           ; e9 6b 4a
     15421    jmp near 0389fh                           ; e9 2e 4c
    1523915422    push ES                                   ; 06
    1524015423    push ax                                   ; 50
     
    1524215425    push cx                                   ; 51
    1524315426    push dx                                   ; 52
    15244     call 036b0h                               ; e8 37 4a
     15427    call 03873h                               ; e8 fa 4b
    1524515428    cmp AL, strict byte 000h                  ; 3c 00
    1524615429    je short 0ecabh                           ; 74 2e
    15247     call 036c6h                               ; e8 46 4a
     15430    call 03889h                               ; e8 09 4c
    1524815431    pop dx                                    ; 5a
    1524915432    push dx                                   ; 52
     
    1526315446    cld                                       ; fc
    1526415447    push 0ece9h                               ; 68 e9 ec
    15265     jmp near 03cb0h                           ; e9 19 50
     15448    jmp near 03e73h                           ; e9 dc 51
    1526615449    and dl, 0e0h                              ; 80 e2 e0
    1526715450    db  03ah, 0c2h
     
    1530915492    shr ebx, 010h                             ; 66 c1 eb 10
    1531015493    push bx                                   ; 53
    15311     call 040e4h                               ; e8 0f 54
     15494    call 042a7h                               ; e8 d2 55
    1531215495    pop bx                                    ; 5b
    1531315496    sal ebx, 010h                             ; 66 c1 e3 10
     
    1531615499    cmp ah, 040h                              ; 80 fc 40
    1531715500    jnbe short 0ece6h                         ; 77 05
    15318     call 05491h                               ; e8 ad 67
     15501    call 05654h                               ; e8 70 69
    1531915502    jmp short 0ece9h                          ; eb 03
    15320     call 058d2h                               ; e8 e9 6b
     15503    call 05a95h                               ; e8 ac 6d
    1532115504int13_out:                                   ; 0xfece9 LB 0x4
    1532215505    pop DS                                    ; 1f
     
    1553115714    pop DS                                    ; 1f
    1553215715    cld                                       ; fc
    15533     call 07150h                               ; e8 73 81
     15716    call 07313h                               ; e8 36 83
    1553415717    popaw                                     ; 61
    1553515718    pop ES                                    ; 07
     
    1557915762    mov ax, strict word 00001h                ; b8 01 00
    1558015763    push ax                                   ; 50
    15581     call 0474bh                               ; e8 7b 56
     15764    call 0490eh                               ; e8 3e 58
    1558215765    inc sp                                    ; 44
    1558315766    inc sp                                    ; 44
     
    1558615769    mov ax, strict word 00002h                ; b8 02 00
    1558715770    push ax                                   ; 50
    15588     call 0474bh                               ; e8 6e 56
     15771    call 0490eh                               ; e8 31 58
    1558915772    inc sp                                    ; 44
    1559015773    inc sp                                    ; 44
     
    1559315776    mov ax, strict word 00003h                ; b8 03 00
    1559415777    push strict byte 00003h                   ; 6a 03
    15595     call 0474bh                               ; e8 60 56
     15778    call 0490eh                               ; e8 23 58
    1559615779    inc sp                                    ; 44
    1559715780    inc sp                                    ; 44
     
    1560015783    mov ax, strict word 00004h                ; b8 04 00
    1560115784    push ax                                   ; 50
    15602     call 0474bh                               ; e8 53 56
     15785    call 0490eh                               ; e8 16 58
    1560315786    inc sp                                    ; 44
    1560415787    inc sp                                    ; 44
     
    1589116074    cmp ah, 0c2h                              ; 80 fc c2
    1589216075    je short 0f887h                           ; 74 0e
    15893     call 05fabh                               ; e8 2f 67
     16076    call 0616eh                               ; e8 f2 68
    1589416077    popaw                                     ; 61
    1589516078    pop ES                                    ; 07
     
    1589716080    popfw                                     ; 9d
    1589816081    jmp short 0f895h                          ; eb 13
    15899     call 08fc5h                               ; e8 40 97
     16082    call 09188h                               ; e8 03 99
    1590016083    jmp short 0f87ch                          ; eb f5
    1590116084int15_handler_mouse:                         ; 0xff887 LB 0x5
    15902     call 06dc5h                               ; e8 3b 75
     16085    call 06f88h                               ; e8 fe 76
    1590316086    jmp short 0f87ch                          ; eb f0
    1590416087int15_handler32:                             ; 0xff88c LB 0x9
    1590516088    pushad                                    ; 66 60
    15906     call 06478h                               ; e8 e7 6b
     16089    call 0663bh                               ; e8 aa 6d
    1590716090    popad                                     ; 66 61
    1590816091    jmp short 0f87dh                          ; eb e8
     
    1593416117    pop DS                                    ; 1f
    1593516118    cld                                       ; fc
    15936     call 06cfbh                               ; e8 3e 74
     16119    call 06ebeh                               ; e8 01 76
    1593716120    pop cx                                    ; 59
    1593816121    jcxz 0f8cch                               ; e3 0c
     
    1602616209    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1602716210    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    16028     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 058h, 093h, 066h
    16029     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 007h, 06ch, 061h, 01fh, 007h
     16211    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 01bh, 095h, 066h
     16212    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0cah, 06dh, 061h, 01fh, 007h
    1603016213    db  0cfh
    1603116214int70_handler:                               ; 0xffe8f LB 0x16
     
    1603616219    pop DS                                    ; 1f
    1603716220    cld                                       ; fc
    16038     call 069d4h                               ; e8 3c 6b
     16221    call 06b97h                               ; e8 ff 6c
    1603916222    popaw                                     ; 61
    1604016223    pop DS                                    ; 1f
     
    1608716270    dec di                                    ; 4f
    1608816271    jc short 0ff64h                           ; 72 61
    16089     arpl word [si+065h], bp                   ; 63 6c 65
     16272    arpl [si+065h], bp                        ; 63 6c 65
    1609016273    and byte [bp+04dh], dl                    ; 20 56 4d
    1609116274    and byte [bp+069h], dl                    ; 20 56 69
     
    1613516318cpu_reset:                                   ; 0xffff0 LB 0x10
    1613616319    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16137     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ach
     16320    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 05dh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r52439 r55078  
    1 81504fb40b77397cbba587ef505d6c22 *VBoxPcBios.rom
     152f20c4019f05d0a8b5d96985ecebb03 *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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