VirtualBox

Changeset 42053 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 9, 2012 12:43:31 PM (12 years ago)
Author:
vboxsync
Message:

Regenerated alternative bios source.

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

Legend:

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

    r41512 r42053  
     1; $Id$
     2;; @file
     3; Auto Generated source file. Do not edit.
     4;
     5
     6;
     7; Source file: bios.c
     8;
     9
     10;  Copyright (C) 2006-2011 Oracle Corporation
     11
     12;  This file is part of VirtualBox Open Source Edition (OSE), as
     13;  available from http://www.virtualbox.org. This file is free software;
     14;  you can redistribute it and/or modify it under the terms of the GNU
     15;  General Public License (GPL) as published by the Free Software
     16;  Foundation, in version 2 as it comes in the "COPYING" file of the
     17;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     18;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     19;  --------------------------------------------------------------------
     20
     21;  This code is based on:
     22
     23;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     24
     25;   Copyright (C) 2002  MandrakeSoft S.A.
     26
     27;     MandrakeSoft S.A.
     28;     43, rue d'Aboukir
     29;     75002 Paris - France
     30;     http://www.linux-mandrake.com/
     31;     http://www.mandrakesoft.com/
     32
     33;   This library is free software; you can redistribute it and/or
     34;   modify it under the terms of the GNU Lesser General Public
     35;   License as published by the Free Software Foundation; either
     36;   version 2 of the License, or (at your option) any later version.
     37
     38;   This library is distributed in the hope that it will be useful,
     39;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     40;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     41;   Lesser General Public License for more details.
     42
     43;   You should have received a copy of the GNU Lesser General Public
     44;   License along with this library; if not, write to the Free Software
     45;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     46
     47
     48;
     49; Source file: print.c
     50;
     51
     52;  Copyright (C) 2006-2011 Oracle Corporation
     53
     54;  This file is part of VirtualBox Open Source Edition (OSE), as
     55;  available from http://www.virtualbox.org. This file is free software;
     56;  you can redistribute it and/or modify it under the terms of the GNU
     57;  General Public License (GPL) as published by the Free Software
     58;  Foundation, in version 2 as it comes in the "COPYING" file of the
     59;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     60;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     61;  --------------------------------------------------------------------
     62
     63;  This code is based on:
     64
     65;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     66
     67;   Copyright (C) 2002  MandrakeSoft S.A.
     68
     69;     MandrakeSoft S.A.
     70;     43, rue d'Aboukir
     71;     75002 Paris - France
     72;     http://www.linux-mandrake.com/
     73;     http://www.mandrakesoft.com/
     74
     75;   This library is free software; you can redistribute it and/or
     76;   modify it under the terms of the GNU Lesser General Public
     77;   License as published by the Free Software Foundation; either
     78;   version 2 of the License, or (at your option) any later version.
     79
     80;   This library is distributed in the hope that it will be useful,
     81;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     82;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     83;   Lesser General Public License for more details.
     84
     85;   You should have received a copy of the GNU Lesser General Public
     86;   License along with this library; if not, write to the Free Software
     87;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     88
     89
     90;
     91; Source file: ata.c
     92;
     93
     94;  Copyright (C) 2006-2011 Oracle Corporation
     95
     96;  This file is part of VirtualBox Open Source Edition (OSE), as
     97;  available from http://www.virtualbox.org. This file is free software;
     98;  you can redistribute it and/or modify it under the terms of the GNU
     99;  General Public License (GPL) as published by the Free Software
     100;  Foundation, in version 2 as it comes in the "COPYING" file of the
     101;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     102;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     103;  --------------------------------------------------------------------
     104
     105;  This code is based on:
     106
     107;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     108
     109;   Copyright (C) 2002  MandrakeSoft S.A.
     110
     111;     MandrakeSoft S.A.
     112;     43, rue d'Aboukir
     113;     75002 Paris - France
     114;     http://www.linux-mandrake.com/
     115;     http://www.mandrakesoft.com/
     116
     117;   This library is free software; you can redistribute it and/or
     118;   modify it under the terms of the GNU Lesser General Public
     119;   License as published by the Free Software Foundation; either
     120;   version 2 of the License, or (at your option) any later version.
     121
     122;   This library is distributed in the hope that it will be useful,
     123;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     124;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     125;   Lesser General Public License for more details.
     126
     127;   You should have received a copy of the GNU Lesser General Public
     128;   License along with this library; if not, write to the Free Software
     129;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     130
     131
     132;
     133; Source file: floppy.c
     134;
     135
     136;  Copyright (C) 2006-2011 Oracle Corporation
     137
     138;  This file is part of VirtualBox Open Source Edition (OSE), as
     139;  available from http://www.virtualbox.org. This file is free software;
     140;  you can redistribute it and/or modify it under the terms of the GNU
     141;  General Public License (GPL) as published by the Free Software
     142;  Foundation, in version 2 as it comes in the "COPYING" file of the
     143;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     144;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     145;  --------------------------------------------------------------------
     146
     147;  This code is based on:
     148
     149;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     150
     151;   Copyright (C) 2002  MandrakeSoft S.A.
     152
     153;     MandrakeSoft S.A.
     154;     43, rue d'Aboukir
     155;     75002 Paris - France
     156;     http://www.linux-mandrake.com/
     157;     http://www.mandrakesoft.com/
     158
     159;   This library is free software; you can redistribute it and/or
     160;   modify it under the terms of the GNU Lesser General Public
     161;   License as published by the Free Software Foundation; either
     162;   version 2 of the License, or (at your option) any later version.
     163
     164;   This library is distributed in the hope that it will be useful,
     165;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     166;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     167;   Lesser General Public License for more details.
     168
     169;   You should have received a copy of the GNU Lesser General Public
     170;   License along with this library; if not, write to the Free Software
     171;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     172
     173
     174;
     175; Source file: eltorito.c
     176;
     177
     178;  Copyright (C) 2006-2011 Oracle Corporation
     179
     180;  This file is part of VirtualBox Open Source Edition (OSE), as
     181;  available from http://www.virtualbox.org. This file is free software;
     182;  you can redistribute it and/or modify it under the terms of the GNU
     183;  General Public License (GPL) as published by the Free Software
     184;  Foundation, in version 2 as it comes in the "COPYING" file of the
     185;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     186;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     187;  --------------------------------------------------------------------
     188
     189;  This code is based on:
     190
     191;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     192
     193;   Copyright (C) 2002  MandrakeSoft S.A.
     194
     195;     MandrakeSoft S.A.
     196;     43, rue d'Aboukir
     197;     75002 Paris - France
     198;     http://www.linux-mandrake.com/
     199;     http://www.mandrakesoft.com/
     200
     201;   This library is free software; you can redistribute it and/or
     202;   modify it under the terms of the GNU Lesser General Public
     203;   License as published by the Free Software Foundation; either
     204;   version 2 of the License, or (at your option) any later version.
     205
     206;   This library is distributed in the hope that it will be useful,
     207;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     208;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     209;   Lesser General Public License for more details.
     210
     211;   You should have received a copy of the GNU Lesser General Public
     212;   License along with this library; if not, write to the Free Software
     213;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     214
     215
     216;
     217; Source file: boot.c
     218;
     219
     220;  Copyright (C) 2006-2011 Oracle Corporation
     221
     222;  This file is part of VirtualBox Open Source Edition (OSE), as
     223;  available from http://www.virtualbox.org. This file is free software;
     224;  you can redistribute it and/or modify it under the terms of the GNU
     225;  General Public License (GPL) as published by the Free Software
     226;  Foundation, in version 2 as it comes in the "COPYING" file of the
     227;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     228;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     229;  --------------------------------------------------------------------
     230
     231;  This code is based on:
     232
     233;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     234
     235;   Copyright (C) 2002  MandrakeSoft S.A.
     236
     237;     MandrakeSoft S.A.
     238;     43, rue d'Aboukir
     239;     75002 Paris - France
     240;     http://www.linux-mandrake.com/
     241;     http://www.mandrakesoft.com/
     242
     243;   This library is free software; you can redistribute it and/or
     244;   modify it under the terms of the GNU Lesser General Public
     245;   License as published by the Free Software Foundation; either
     246;   version 2 of the License, or (at your option) any later version.
     247
     248;   This library is distributed in the hope that it will be useful,
     249;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     250;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     251;   Lesser General Public License for more details.
     252
     253;   You should have received a copy of the GNU Lesser General Public
     254;   License along with this library; if not, write to the Free Software
     255;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     256
     257
     258;
     259; Source file: keyboard.c
     260;
     261
     262;  Copyright (C) 2006-2011 Oracle Corporation
     263
     264;  This file is part of VirtualBox Open Source Edition (OSE), as
     265;  available from http://www.virtualbox.org. This file is free software;
     266;  you can redistribute it and/or modify it under the terms of the GNU
     267;  General Public License (GPL) as published by the Free Software
     268;  Foundation, in version 2 as it comes in the "COPYING" file of the
     269;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     270;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     271;  --------------------------------------------------------------------
     272
     273;  This code is based on:
     274
     275;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     276
     277;   Copyright (C) 2002  MandrakeSoft S.A.
     278
     279;     MandrakeSoft S.A.
     280;     43, rue d'Aboukir
     281;     75002 Paris - France
     282;     http://www.linux-mandrake.com/
     283;     http://www.mandrakesoft.com/
     284
     285;   This library is free software; you can redistribute it and/or
     286;   modify it under the terms of the GNU Lesser General Public
     287;   License as published by the Free Software Foundation; either
     288;   version 2 of the License, or (at your option) any later version.
     289
     290;   This library is distributed in the hope that it will be useful,
     291;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     292;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     293;   Lesser General Public License for more details.
     294
     295;   You should have received a copy of the GNU Lesser General Public
     296;   License along with this library; if not, write to the Free Software
     297;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     298
     299
     300;
     301; Source file: disk.c
     302;
     303
     304;  Copyright (C) 2006-2011 Oracle Corporation
     305
     306;  This file is part of VirtualBox Open Source Edition (OSE), as
     307;  available from http://www.virtualbox.org. This file is free software;
     308;  you can redistribute it and/or modify it under the terms of the GNU
     309;  General Public License (GPL) as published by the Free Software
     310;  Foundation, in version 2 as it comes in the "COPYING" file of the
     311;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     312;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     313;  --------------------------------------------------------------------
     314
     315;  This code is based on:
     316
     317;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     318
     319;   Copyright (C) 2002  MandrakeSoft S.A.
     320
     321;     MandrakeSoft S.A.
     322;     43, rue d'Aboukir
     323;     75002 Paris - France
     324;     http://www.linux-mandrake.com/
     325;     http://www.mandrakesoft.com/
     326
     327;   This library is free software; you can redistribute it and/or
     328;   modify it under the terms of the GNU Lesser General Public
     329;   License as published by the Free Software Foundation; either
     330;   version 2 of the License, or (at your option) any later version.
     331
     332;   This library is distributed in the hope that it will be useful,
     333;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     334;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     335;   Lesser General Public License for more details.
     336
     337;   You should have received a copy of the GNU Lesser General Public
     338;   License along with this library; if not, write to the Free Software
     339;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     340
     341
     342;
     343; Source file: serial.c
     344;
     345
     346;  Copyright (C) 2006-2011 Oracle Corporation
     347
     348;  This file is part of VirtualBox Open Source Edition (OSE), as
     349;  available from http://www.virtualbox.org. This file is free software;
     350;  you can redistribute it and/or modify it under the terms of the GNU
     351;  General Public License (GPL) as published by the Free Software
     352;  Foundation, in version 2 as it comes in the "COPYING" file of the
     353;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     354;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     355;  --------------------------------------------------------------------
     356
     357;  This code is based on:
     358
     359;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     360
     361;   Copyright (C) 2002  MandrakeSoft S.A.
     362
     363;     MandrakeSoft S.A.
     364;     43, rue d'Aboukir
     365;     75002 Paris - France
     366;     http://www.linux-mandrake.com/
     367;     http://www.mandrakesoft.com/
     368
     369;   This library is free software; you can redistribute it and/or
     370;   modify it under the terms of the GNU Lesser General Public
     371;   License as published by the Free Software Foundation; either
     372;   version 2 of the License, or (at your option) any later version.
     373
     374;   This library is distributed in the hope that it will be useful,
     375;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     376;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     377;   Lesser General Public License for more details.
     378
     379;   You should have received a copy of the GNU Lesser General Public
     380;   License along with this library; if not, write to the Free Software
     381;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     382
     383
     384;
     385; Source file: system.c
     386;
     387
     388;  Copyright (C) 2006-2011 Oracle Corporation
     389
     390;  This file is part of VirtualBox Open Source Edition (OSE), as
     391;  available from http://www.virtualbox.org. This file is free software;
     392;  you can redistribute it and/or modify it under the terms of the GNU
     393;  General Public License (GPL) as published by the Free Software
     394;  Foundation, in version 2 as it comes in the "COPYING" file of the
     395;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     396;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     397;  --------------------------------------------------------------------
     398
     399;  This code is based on:
     400
     401;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     402
     403;   Copyright (C) 2002  MandrakeSoft S.A.
     404
     405;     MandrakeSoft S.A.
     406;     43, rue d'Aboukir
     407;     75002 Paris - France
     408;     http://www.linux-mandrake.com/
     409;     http://www.mandrakesoft.com/
     410
     411;   This library is free software; you can redistribute it and/or
     412;   modify it under the terms of the GNU Lesser General Public
     413;   License as published by the Free Software Foundation; either
     414;   version 2 of the License, or (at your option) any later version.
     415
     416;   This library is distributed in the hope that it will be useful,
     417;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     418;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     419;   Lesser General Public License for more details.
     420
     421;   You should have received a copy of the GNU Lesser General Public
     422;   License along with this library; if not, write to the Free Software
     423;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     424
     425
     426;
     427; Source file: timepci.c
     428;
     429
     430;  Copyright (C) 2006-2011 Oracle Corporation
     431
     432;  This file is part of VirtualBox Open Source Edition (OSE), as
     433;  available from http://www.virtualbox.org. This file is free software;
     434;  you can redistribute it and/or modify it under the terms of the GNU
     435;  General Public License (GPL) as published by the Free Software
     436;  Foundation, in version 2 as it comes in the "COPYING" file of the
     437;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     438;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     439;  --------------------------------------------------------------------
     440
     441;  This code is based on:
     442
     443;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     444
     445;   Copyright (C) 2002  MandrakeSoft S.A.
     446
     447;     MandrakeSoft S.A.
     448;     43, rue d'Aboukir
     449;     75002 Paris - France
     450;     http://www.linux-mandrake.com/
     451;     http://www.mandrakesoft.com/
     452
     453;   This library is free software; you can redistribute it and/or
     454;   modify it under the terms of the GNU Lesser General Public
     455;   License as published by the Free Software Foundation; either
     456;   version 2 of the License, or (at your option) any later version.
     457
     458;   This library is distributed in the hope that it will be useful,
     459;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     460;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     461;   Lesser General Public License for more details.
     462
     463;   You should have received a copy of the GNU Lesser General Public
     464;   License along with this library; if not, write to the Free Software
     465;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     466
     467
     468;
     469; Source file: ps2mouse.c
     470;
     471
     472;  Copyright (C) 2006-2011 Oracle Corporation
     473
     474;  This file is part of VirtualBox Open Source Edition (OSE), as
     475;  available from http://www.virtualbox.org. This file is free software;
     476;  you can redistribute it and/or modify it under the terms of the GNU
     477;  General Public License (GPL) as published by the Free Software
     478;  Foundation, in version 2 as it comes in the "COPYING" file of the
     479;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     480;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     481;  --------------------------------------------------------------------
     482
     483;  This code is based on:
     484
     485;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     486
     487;   Copyright (C) 2002  MandrakeSoft S.A.
     488
     489;     MandrakeSoft S.A.
     490;     43, rue d'Aboukir
     491;     75002 Paris - France
     492;     http://www.linux-mandrake.com/
     493;     http://www.mandrakesoft.com/
     494
     495;   This library is free software; you can redistribute it and/or
     496;   modify it under the terms of the GNU Lesser General Public
     497;   License as published by the Free Software Foundation; either
     498;   version 2 of the License, or (at your option) any later version.
     499
     500;   This library is distributed in the hope that it will be useful,
     501;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     502;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     503;   Lesser General Public License for more details.
     504
     505;   You should have received a copy of the GNU Lesser General Public
     506;   License along with this library; if not, write to the Free Software
     507;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     508
     509
     510;
     511; Source file: parallel.c
     512;
     513
     514;  Copyright (C) 2006-2011 Oracle Corporation
     515
     516;  This file is part of VirtualBox Open Source Edition (OSE), as
     517;  available from http://www.virtualbox.org. This file is free software;
     518;  you can redistribute it and/or modify it under the terms of the GNU
     519;  General Public License (GPL) as published by the Free Software
     520;  Foundation, in version 2 as it comes in the "COPYING" file of the
     521;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     522;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     523;  --------------------------------------------------------------------
     524
     525;  This code is based on:
     526
     527;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     528
     529;   Copyright (C) 2002  MandrakeSoft S.A.
     530
     531;     MandrakeSoft S.A.
     532;     43, rue d'Aboukir
     533;     75002 Paris - France
     534;     http://www.linux-mandrake.com/
     535;     http://www.mandrakesoft.com/
     536
     537;   This library is free software; you can redistribute it and/or
     538;   modify it under the terms of the GNU Lesser General Public
     539;   License as published by the Free Software Foundation; either
     540;   version 2 of the License, or (at your option) any later version.
     541
     542;   This library is distributed in the hope that it will be useful,
     543;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     544;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     545;   Lesser General Public License for more details.
     546
     547;   You should have received a copy of the GNU Lesser General Public
     548;   License along with this library; if not, write to the Free Software
     549;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     550
     551
     552;
     553; Source file: logo.c
     554;
     555;  $Id$
     556;  Stuff for drawing the BIOS logo.
     557
     558
     559
     560;  Copyright (C) 2004-2011 Oracle Corporation
     561
     562;  This file is part of VirtualBox Open Source Edition (OSE), as
     563;  available from http://www.virtualbox.org. This file is free software;
     564;  you can redistribute it and/or modify it under the terms of the GNU
     565;  General Public License (GPL) as published by the Free Software
     566;  Foundation, in version 2 as it comes in the "COPYING" file of the
     567;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     568;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     569
     570;
     571; Source file: scsi.c
     572;
     573;  $Id$
     574;  SCSI host adapter driver to boot from SCSI disks
     575
     576
     577
     578;  Copyright (C) 2004-2011 Oracle Corporation
     579
     580;  This file is part of VirtualBox Open Source Edition (OSE), as
     581;  available from http://www.virtualbox.org. This file is free software;
     582;  you can redistribute it and/or modify it under the terms of the GNU
     583;  General Public License (GPL) as published by the Free Software
     584;  Foundation, in version 2 as it comes in the "COPYING" file of the
     585;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     586;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     587
     588;
     589; Source file: ahci.c
     590;
     591;  $Id$
     592;  AHCI host adapter driver to boot from SATA disks.
     593
     594
     595
     596;  Copyright (C) 2011 Oracle Corporation
     597
     598;  This file is part of VirtualBox Open Source Edition (OSE), as
     599;  available from http://www.virtualbox.org. This file is free software;
     600;  you can redistribute it and/or modify it under the terms of the GNU
     601;  General Public License (GPL) as published by the Free Software
     602;  Foundation, in version 2 as it comes in the "COPYING" file of the
     603;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     604;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     605
     606;
     607; Source file: pciutil.c
     608;
     609;  Utility routines for calling the PCI BIOS.
     610
     611
     612
     613;  Copyright (C) 2011 Oracle Corporation
     614
     615;  This file is part of VirtualBox Open Source Edition (OSE), as
     616;  available from http://www.virtualbox.org. This file is free software;
     617;  you can redistribute it and/or modify it under the terms of the GNU
     618;  General Public License (GPL) as published by the Free Software
     619;  Foundation, in version 2 as it comes in the "COPYING" file of the
     620;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     621;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     622
     623;
     624; Source file: vds.c
     625;
     626;  Utility routines for calling the Virtual DMA Services.
     627
     628
     629
     630;  Copyright (C) 2011 Oracle Corporation
     631
     632;  This file is part of VirtualBox Open Source Edition (OSE), as
     633;  available from http://www.virtualbox.org. This file is free software;
     634;  you can redistribute it and/or modify it under the terms of the GNU
     635;  General Public License (GPL) as published by the Free Software
     636;  Foundation, in version 2 as it comes in the "COPYING" file of the
     637;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     638;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     639
     640;
     641; Source file: support.asm
     642;
     643;  $Id$
     644;  Compiler support routines.
     645
     646
     647
     648;  Copyright (C) 2012 Oracle Corporation
     649
     650;  This file is part of VirtualBox Open Source Edition (OSE), as
     651;  available from http://www.virtualbox.org. This file is free software;
     652;  you can redistribute it and/or modify it under the terms of the GNU
     653;  General Public License (GPL) as published by the Free Software
     654;  Foundation, in version 2 as it comes in the "COPYING" file of the
     655;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     656;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     657
     658
     659;
     660; Source file: pcibio32.asm
     661;
     662
     663;  Copyright (C) 2006-2011 Oracle Corporation
     664
     665;  This file is part of VirtualBox Open Source Edition (OSE), as
     666;  available from http://www.virtualbox.org. This file is free software;
     667;  you can redistribute it and/or modify it under the terms of the GNU
     668;  General Public License (GPL) as published by the Free Software
     669;  Foundation, in version 2 as it comes in the "COPYING" file of the
     670;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     671;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     672;  --------------------------------------------------------------------
     673
     674;  This code is based on:
     675
     676;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     677
     678;   Copyright (C) 2002  MandrakeSoft S.A.
     679
     680;     MandrakeSoft S.A.
     681;     43, rue d'Aboukir
     682;     75002 Paris - France
     683;     http://www.linux-mandrake.com/
     684;     http://www.mandrakesoft.com/
     685
     686;   This library is free software; you can redistribute it and/or
     687;   modify it under the terms of the GNU Lesser General Public
     688;   License as published by the Free Software Foundation; either
     689;   version 2 of the License, or (at your option) any later version.
     690
     691;   This library is distributed in the hope that it will be useful,
     692;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     693;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     694;   Lesser General Public License for more details.
     695
     696;   You should have received a copy of the GNU Lesser General Public
     697;   License along with this library; if not, write to the Free Software
     698;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     699
     700
     701
     702;
     703; Source file: orgs.asm
     704;
     705
     706;  Copyright (C) 2006-2011 Oracle Corporation
     707
     708;  This file is part of VirtualBox Open Source Edition (OSE), as
     709;  available from http://www.virtualbox.org. This file is free software;
     710;  you can redistribute it and/or modify it under the terms of the GNU
     711;  General Public License (GPL) as published by the Free Software
     712;  Foundation, in version 2 as it comes in the "COPYING" file of the
     713;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     714;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     715;  --------------------------------------------------------------------
     716
     717;  This code is based on:
     718
     719;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
     720
     721;   Copyright (C) 2002  MandrakeSoft S.A.
     722
     723;     MandrakeSoft S.A.
     724;     43, rue d'Aboukir
     725;     75002 Paris - France
     726;     http://www.linux-mandrake.com/
     727;     http://www.mandrakesoft.com/
     728
     729;   This library is free software; you can redistribute it and/or
     730;   modify it under the terms of the GNU Lesser General Public
     731;   License as published by the Free Software Foundation; either
     732;   version 2 of the License, or (at your option) any later version.
     733
     734;   This library is distributed in the hope that it will be useful,
     735;   but WITHOUT ANY WARRANTY; without even the implied warranty of
     736;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     737;   Lesser General Public License for more details.
     738
     739;   You should have received a copy of the GNU Lesser General Public
     740;   License along with this library; if not, write to the Free Software
     741;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
     742
     743
     744
     745
     746
    1747
    2748section _DATA progbits vstart=0x0 align=1 ; size=0x18 class=DATA group=DGROUP
    3749_dskacc:                                     ; 0xf0000 LB 0x18
    4     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 028h, 0a1h, 028h, 000h, 000h, 000h, 000h
    5     db  044h, 077h, 0fch, 077h, 0e3h, 082h, 079h, 083h
     750    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h
     751    db  041h, 073h, 0e3h, 073h, 05eh, 07eh, 0e9h, 07eh
    6752
    7753section CONST progbits vstart=0x18 align=1 ; size=0xbde class=DATA group=DGROUP
     
    111857    db   '%s: DATA_OUT not supported yet', 00ah, 000h
    112858
    113 section CONST2 progbits vstart=0xbf6 align=1 ; size=0x408 class=DATA group=DGROUP
    114 _bios_cvs_version_string:                    ; 0xf0bf6 LB 0x20
    115     db  'VirtualBox VBOX_VERSION_STRING', 000h, 000h
    116 _bios_prefix_string:                         ; 0xf0c16 LB 0x8
     859section CONST2 progbits vstart=0xbf6 align=1 ; size=0x3fa class=DATA group=DGROUP
     860_bios_cvs_version_string:                    ; 0xf0bf6 LB 0x12
     861    db  'VirtualBox 4.1.51', 000h
     862_bios_prefix_string:                         ; 0xf0c08 LB 0x8
    117863    db  'BIOS: ', 000h, 000h
    118 _isotag:                                     ; 0xf0c1e LB 0x6
     864_isotag:                                     ; 0xf0c10 LB 0x6
    119865    db  'CD001', 000h
    120 _eltorito:                                   ; 0xf0c24 LB 0x18
     866_eltorito:                                   ; 0xf0c16 LB 0x18
    121867    db  'EL TORITO SPECIFICATION', 000h
    122 _drivetypes:                                 ; 0xf0c3c LB 0x28
     868_drivetypes:                                 ; 0xf0c2e LB 0x28
    123869    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    124870    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    125871    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    126 _scan_to_scanascii:                          ; 0xf0c64 LB 0x37a
     872_scan_to_scanascii:                          ; 0xf0c56 LB 0x37a
    127873    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    128874    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    181927    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    182928    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    183 _panic_msg_keyb_buffer_full:                 ; 0xf0fde LB 0x20
     929_panic_msg_keyb_buffer_full:                 ; 0xf0fd0 LB 0x20
    184930    db  '%s: keyboard input buffer full', 00ah, 000h
    185931
    186   ; Padding 0x602 bytes at 0xf0ffe
    187   times 1538 db 0
     932  ; Padding 0x610 bytes at 0xf0ff0
     933  times 1552 db 0
    188934
    189 section _TEXT progbits vstart=0x1600 align=1 ; size=0x780f class=CODE group=AUTO
     935section _TEXT progbits vstart=0x1600 align=1 ; size=0x727f class=CODE group=AUTO
    190936read_byte_:                                  ; 0xf1600 LB 0xe
    191937    push bx                                   ; 53
     
    2741020    pop bp                                    ; 5d
    2751021    retn                                      ; c3
    276 _dummy_isr_function:                         ; 0xf167e LB 0x65
    277     push bp                                   ; 55
    278     mov bp, sp                                ; 89 e5
    279     push ax                                   ; 50
     1022_dummy_isr_function:                         ; 0xf167e LB 0x69
     1023    enter 00002h, 000h                        ; c8 02 00 00
    2801024    mov CL, strict byte 0ffh                  ; b1 ff
    2811025    mov AL, strict byte 00bh                  ; b0 0b
     
    2881032    mov byte [bp-002h], al                    ; 88 46 fe
    2891033    test al, al                               ; 84 c0
    290     je short 016d2h                           ; 74 3c
     1034    je short 016d9h                           ; 74 43
    2911035    mov AL, strict byte 00bh                  ; b0 0b
    2921036    mov dx, 000a0h                            ; ba a0 00
     
    2971041    mov cx, ax                                ; 89 c1
    2981042    test al, al                               ; 84 c0
    299     je short 016bah                           ; 74 15
     1043    je short 016bbh                           ; 74 16
    3001044    mov dx, 000a1h                            ; ba a1 00
    3011045    in AL, DX                                 ; ec
    3021046    db  02ah, 0e4h
    3031047    ; sub ah, ah                                ; 2a e4
    304     mov bl, al                                ; 88 c3
    305     mov al, cl                                ; 88 c8
    306     or al, bl                                 ; 08 d8
     1048    xor ah, ah                                ; 30 e4
     1049    movzx bx, cl                              ; 0f b6 d9
     1050    or ax, bx                                 ; 09 d8
    3071051    out DX, AL                                ; ee
    3081052    mov AL, strict byte 020h                  ; b0 20
    3091053    mov dx, 000a0h                            ; ba a0 00
    3101054    out DX, AL                                ; ee
    311     jmp short 016c9h                          ; eb 0f
     1055    jmp short 016d0h                          ; eb 15
    3121056    mov dx, strict word 00021h                ; ba 21 00
    3131057    in AL, DX                                 ; ec
     
    3161060    and bl, 0fbh                              ; 80 e3 fb
    3171061    mov byte [bp-002h], bl                    ; 88 5e fe
    318     or al, bl                                 ; 08 d8
     1062    xor ah, ah                                ; 30 e4
     1063    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     1064    or ax, bx                                 ; 09 d8
    3191065    out DX, AL                                ; ee
    3201066    mov AL, strict byte 020h                  ; b0 20
     
    3221068    out DX, AL                                ; ee
    3231069    mov cl, byte [bp-002h]                    ; 8a 4e fe
    324     mov bl, cl                                ; 88 cb
    325     xor bh, bh                                ; 30 ff
     1070    movzx bx, cl                              ; 0f b6 d9
    3261071    mov dx, strict word 0006bh                ; ba 6b 00
    3271072    mov ax, strict word 00040h                ; b8 40 00
    328     call 0160eh                               ; e8 2f ff
    329     mov sp, bp                                ; 89 ec
    330     pop bp                                    ; 5d
    331     retn                                      ; c3
    332 _nmi_handler_msg:                            ; 0xf16e3 LB 0x13
     1073    call 0160eh                               ; e8 29 ff
     1074    leave                                     ; c9
     1075    retn                                      ; c3
     1076_nmi_handler_msg:                            ; 0xf16e7 LB 0x10
    3331077    push bp                                   ; 55
    3341078    mov bp, sp                                ; 89 e5
    335     mov ax, strict word 00018h                ; b8 18 00
    336     push ax                                   ; 50
    337     mov ax, strict word 00007h                ; b8 07 00
    338     push ax                                   ; 50
    339     call 018fah                               ; e8 09 02
     1079    push strict word 00018h                   ; 68 18 00
     1080    push strict byte 00007h                   ; 6a 07
     1081    call 018e9h                               ; e8 f7 01
    3401082    add sp, strict byte 00004h                ; 83 c4 04
    3411083    pop bp                                    ; 5d
    3421084    retn                                      ; c3
    343 _int18_panic_msg:                            ; 0xf16f6 LB 0x13
     1085_int18_panic_msg:                            ; 0xf16f7 LB 0x10
    3441086    push bp                                   ; 55
    3451087    mov bp, sp                                ; 89 e5
    346     mov ax, strict word 0002ch                ; b8 2c 00
    347     push ax                                   ; 50
    348     mov ax, strict word 00007h                ; b8 07 00
    349     push ax                                   ; 50
    350     call 018fah                               ; e8 f6 01
     1088    push strict word 0002ch                   ; 68 2c 00
     1089    push strict byte 00007h                   ; 6a 07
     1090    call 018e9h                               ; e8 e7 01
    3511091    add sp, strict byte 00004h                ; 83 c4 04
    3521092    pop bp                                    ; 5d
    3531093    retn                                      ; c3
    354 _log_bios_start:                             ; 0xf1709 LB 0x22
     1094_log_bios_start:                             ; 0xf1707 LB 0x1e
    3551095    push bp                                   ; 55
    3561096    mov bp, sp                                ; 89 e5
    357     mov bx, 00c16h                            ; bb 16 0c
     1097    mov bx, 00c08h                            ; bb 08 0c
    3581098    mov cx, ds                                ; 8c d9
    3591099    mov ax, strict word 00004h                ; b8 04 00
    360     call 018bdh                               ; e8 a6 01
    361     mov ax, 00bf6h                            ; b8 f6 0b
    362     push ax                                   ; 50
    363     mov ax, strict word 00041h                ; b8 41 00
    364     push ax                                   ; 50
    365     mov ax, strict word 00004h                ; b8 04 00
    366     push ax                                   ; 50
    367     call 018fah                               ; e8 d4 01
     1100    call 018aeh                               ; e8 99 01
     1101    push 00bf6h                               ; 68 f6 0b
     1102    push strict word 00041h                   ; 68 41 00
     1103    push strict byte 00004h                   ; 6a 04
     1104    call 018e9h                               ; e8 c9 01
    3681105    add sp, strict byte 00006h                ; 83 c4 06
    3691106    pop bp                                    ; 5d
    3701107    retn                                      ; c3
    371 _print_bios_banner:                          ; 0xf172b LB 0x2c
     1108_print_bios_banner:                          ; 0xf1725 LB 0x2c
    3721109    push bp                                   ; 55
    3731110    mov bp, sp                                ; 89 e5
    3741111    mov dx, strict word 00072h                ; ba 72 00
    3751112    mov ax, strict word 00040h                ; b8 40 00
    376     call 0161ch                               ; e8 e5 fe
     1113    call 0161ch                               ; e8 eb fe
    3771114    mov cx, ax                                ; 89 c1
    3781115    xor bx, bx                                ; 31 db
    3791116    mov dx, strict word 00072h                ; ba 72 00
    3801117    mov ax, strict word 00040h                ; b8 40 00
    381     call 0162ah                               ; e8 e6 fe
     1118    call 0162ah                               ; e8 ec fe
    3821119    cmp cx, 01234h                            ; 81 f9 34 12
    383     jne short 01752h                          ; 75 08
     1120    jne short 0174ch                          ; 75 08
    3841121    mov AL, strict byte 003h                  ; b0 03
    3851122    mov AH, strict byte 000h                  ; b4 00
     
    3871124    pop bp                                    ; 5d
    3881125    retn                                      ; c3
    389     call 073e3h                               ; e8 8e 5c
     1126    call 0700fh                               ; e8 c0 58
    3901127    pop bp                                    ; 5d
    3911128    retn                                      ; c3
    392 send_:                                       ; 0xf1757 LB 0x38
     1129send_:                                       ; 0xf1751 LB 0x38
    3931130    push bx                                   ; 53
    3941131    push cx                                   ; 51
     
    3981135    mov cl, dl                                ; 88 d1
    3991136    test AL, strict byte 008h                 ; a8 08
    400     je short 0176ah                           ; 74 06
     1137    je short 01764h                           ; 74 06
    4011138    mov al, dl                                ; 88 d0
    4021139    mov dx, 00403h                            ; ba 03 04
    4031140    out DX, AL                                ; ee
    4041141    test bl, 004h                             ; f6 c3 04
    405     je short 01775h                           ; 74 06
     1142    je short 0176fh                           ; 74 06
    4061143    mov al, cl                                ; 88 c8
    4071144    mov dx, 00504h                            ; ba 04 05
    4081145    out DX, AL                                ; ee
    4091146    test bl, 002h                             ; f6 c3 02
    410     je short 0178bh                           ; 74 11
     1147    je short 01785h                           ; 74 11
    4111148    cmp cl, 00ah                              ; 80 f9 0a
    412     jne short 01785h                          ; 75 06
     1149    jne short 0177fh                          ; 75 06
    4131150    mov AL, strict byte 00dh                  ; b0 0d
    4141151    mov AH, strict byte 00eh                  ; b4 0e
     
    4211158    pop bx                                    ; 5b
    4221159    retn                                      ; c3
    423 put_int_:                                    ; 0xf178f LB 0x62
     1160put_int_:                                    ; 0xf1789 LB 0x5b
    4241161    push si                                   ; 56
    4251162    push di                                   ; 57
    426     push bp                                   ; 55
    427     mov bp, sp                                ; 89 e5
    428     push ax                                   ; 50
    429     push ax                                   ; 50
     1163    enter 00004h, 000h                        ; c8 04 00 00
    4301164    mov si, ax                                ; 89 c6
    4311165    mov word [bp-004h], dx                    ; 89 56 fc
    432     mov di, bx                                ; 89 df
    433     mov bx, strict word 0000ah                ; bb 0a 00
     1166    mov di, strict word 0000ah                ; bf 0a 00
    4341167    mov ax, dx                                ; 89 d0
    4351168    cwd                                       ; 99
    436     idiv bx                                   ; f7 fb
     1169    idiv di                                   ; f7 ff
    4371170    mov word [bp-002h], ax                    ; 89 46 fe
    4381171    test ax, ax                               ; 85 c0
    439     je short 017b8h                           ; 74 0c
    440     lea bx, [di-001h]                         ; 8d 5d ff
     1172    je short 017adh                           ; 74 0a
     1173    dec bx                                    ; 4b
    4411174    mov dx, ax                                ; 89 c2
    4421175    mov ax, si                                ; 89 f0
    443     call 0178fh                               ; e8 d9 ff
    444     jmp short 017d3h                          ; eb 1b
    445     dec di                                    ; 4f
    446     test di, di                               ; 85 ff
    447     jle short 017c7h                          ; 7e 0a
     1176    call 01789h                               ; e8 de ff
     1177    jmp short 017c8h                          ; eb 1b
     1178    dec bx                                    ; 4b
     1179    test bx, bx                               ; 85 db
     1180    jle short 017bch                          ; 7e 0a
    4481181    mov dx, strict word 00020h                ; ba 20 00
    4491182    mov ax, si                                ; 89 f0
    450     call 01757h                               ; e8 92 ff
    451     jmp short 017b8h                          ; eb f1
     1183    call 01751h                               ; e8 97 ff
     1184    jmp short 017adh                          ; eb f1
    4521185    test cx, cx                               ; 85 c9
    453     je short 017d3h                           ; 74 08
     1186    je short 017c8h                           ; 74 08
    4541187    mov dx, strict word 0002dh                ; ba 2d 00
    4551188    mov ax, si                                ; 89 f0
    456     call 01757h                               ; e8 84 ff
     1189    call 01751h                               ; e8 89 ff
    4571190    mov al, byte [bp-002h]                    ; 8a 46 fe
    458     mov BL, strict byte 00ah                  ; b3 0a
    459     mul bl                                    ; f6 e3
    460     mov bl, byte [bp-004h]                    ; 8a 5e fc
    461     sub bl, al                                ; 28 c3
    462     add bl, 030h                              ; 80 c3 30
    463     xor bh, bh                                ; 30 ff
    464     mov dx, bx                                ; 89 da
     1191    mov DL, strict byte 00ah                  ; b2 0a
     1192    mul dl                                    ; f6 e2
     1193    mov dl, byte [bp-004h]                    ; 8a 56 fc
     1194    sub dl, al                                ; 28 c2
     1195    mov al, dl                                ; 88 d0
     1196    add AL, strict byte 030h                  ; 04 30
     1197    movzx dx, al                              ; 0f b6 d0
    4651198    mov ax, si                                ; 89 f0
    466     call 01757h                               ; e8 6c ff
    467     mov sp, bp                                ; 89 ec
    468     pop bp                                    ; 5d
     1199    call 01751h                               ; e8 71 ff
     1200    leave                                     ; c9
    4691201    pop di                                    ; 5f
    4701202    pop si                                    ; 5e
    4711203    retn                                      ; c3
    472 put_uint_:                                   ; 0xf17f1 LB 0x5d
     1204put_uint_:                                   ; 0xf17e4 LB 0x5c
    4731205    push si                                   ; 56
    4741206    push di                                   ; 57
    475     push bp                                   ; 55
    476     mov bp, sp                                ; 89 e5
    477     push ax                                   ; 50
    478     push ax                                   ; 50
     1207    enter 00004h, 000h                        ; c8 04 00 00
    4791208    mov si, ax                                ; 89 c6
    4801209    mov word [bp-004h], dx                    ; 89 56 fc
     
    4851214    mov word [bp-002h], ax                    ; 89 46 fe
    4861215    test ax, ax                               ; 85 c0
    487     je short 01817h                           ; 74 0a
     1216    je short 01809h                           ; 74 0a
    4881217    dec bx                                    ; 4b
    4891218    mov dx, ax                                ; 89 c2
    4901219    mov ax, si                                ; 89 f0
    491     call 017f1h                               ; e8 dc ff
    492     jmp short 01832h                          ; eb 1b
     1220    call 017e4h                               ; e8 dd ff
     1221    jmp short 01824h                          ; eb 1b
    4931222    dec bx                                    ; 4b
    4941223    test bx, bx                               ; 85 db
    495     jle short 01826h                          ; 7e 0a
     1224    jle short 01818h                          ; 7e 0a
    4961225    mov dx, strict word 00020h                ; ba 20 00
    4971226    mov ax, si                                ; 89 f0
    498     call 01757h                               ; e8 33 ff
    499     jmp short 01817h                          ; eb f1
     1227    call 01751h                               ; e8 3b ff
     1228    jmp short 01809h                          ; eb f1
    5001229    test cx, cx                               ; 85 c9
    501     je short 01832h                           ; 74 08
     1230    je short 01824h                           ; 74 08
    5021231    mov dx, strict word 0002dh                ; ba 2d 00
    5031232    mov ax, si                                ; 89 f0
    504     call 01757h                               ; e8 25 ff
     1233    call 01751h                               ; e8 2d ff
    5051234    mov al, byte [bp-002h]                    ; 8a 46 fe
    5061235    mov DL, strict byte 00ah                  ; b2 0a
     
    5081237    mov dl, byte [bp-004h]                    ; 8a 56 fc
    5091238    sub dl, al                                ; 28 c2
    510     add dl, 030h                              ; 80 c2 30
    511     xor dh, dh                                ; 30 f6
     1239    mov al, dl                                ; 88 d0
     1240    add AL, strict byte 030h                  ; 04 30
     1241    movzx dx, al                              ; 0f b6 d0
    5121242    mov ax, si                                ; 89 f0
    513     call 01757h                               ; e8 0f ff
    514     mov sp, bp                                ; 89 ec
    515     pop bp                                    ; 5d
     1243    call 01751h                               ; e8 15 ff
     1244    leave                                     ; c9
    5161245    pop di                                    ; 5f
    5171246    pop si                                    ; 5e
    5181247    retn                                      ; c3
    519 put_luint_:                                  ; 0xf184e LB 0x6f
     1248put_luint_:                                  ; 0xf1840 LB 0x6e
    5201249    push si                                   ; 56
    5211250    push di                                   ; 57
    522     push bp                                   ; 55
    523     mov bp, sp                                ; 89 e5
    524     push ax                                   ; 50
    525     push ax                                   ; 50
     1251    enter 00004h, 000h                        ; c8 04 00 00
    5261252    mov si, ax                                ; 89 c6
    5271253    mov word [bp-002h], bx                    ; 89 5e fe
     
    5311257    mov bx, strict word 0000ah                ; bb 0a 00
    5321258    xor cx, cx                                ; 31 c9
    533     call 08d37h                               ; e8 cf 74
     1259    call 087f0h                               ; e8 97 6f
    5341260    mov word [bp-004h], ax                    ; 89 46 fc
    5351261    mov cx, dx                                ; 89 d1
    5361262    mov dx, ax                                ; 89 c2
    5371263    or dx, cx                                 ; 09 ca
    538     je short 01882h                           ; 74 0f
     1264    je short 01873h                           ; 74 0f
    5391265    push word [bp+008h]                       ; ff 76 08
    5401266    lea dx, [di-001h]                         ; 8d 55 ff
    5411267    mov bx, ax                                ; 89 c3
    5421268    mov ax, si                                ; 89 f0
    543     call 0184eh                               ; e8 ce ff
    544     jmp short 0189fh                          ; eb 1d
     1269    call 01840h                               ; e8 cf ff
     1270    jmp short 01890h                          ; eb 1d
    5451271    dec di                                    ; 4f
    5461272    test di, di                               ; 85 ff
    547     jle short 01891h                          ; 7e 0a
     1273    jle short 01882h                          ; 7e 0a
    5481274    mov dx, strict word 00020h                ; ba 20 00
    5491275    mov ax, si                                ; 89 f0
    550     call 01757h                               ; e8 c8 fe
    551     jmp short 01882h                          ; eb f1
     1276    call 01751h                               ; e8 d1 fe
     1277    jmp short 01873h                          ; eb f1
    5521278    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    553     je short 0189fh                           ; 74 08
     1279    je short 01890h                           ; 74 08
    5541280    mov dx, strict word 0002dh                ; ba 2d 00
    5551281    mov ax, si                                ; 89 f0
    556     call 01757h                               ; e8 b8 fe
     1282    call 01751h                               ; e8 c1 fe
    5571283    mov al, byte [bp-004h]                    ; 8a 46 fc
    5581284    mov DL, strict byte 00ah                  ; b2 0a
     
    5601286    mov dl, byte [bp-002h]                    ; 8a 56 fe
    5611287    sub dl, al                                ; 28 c2
    562     add dl, 030h                              ; 80 c2 30
    563     xor dh, dh                                ; 30 f6
     1288    mov al, dl                                ; 88 d0
     1289    add AL, strict byte 030h                  ; 04 30
     1290    movzx dx, al                              ; 0f b6 d0
    5641291    mov ax, si                                ; 89 f0
    565     call 01757h                               ; e8 a2 fe
    566     mov sp, bp                                ; 89 ec
    567     pop bp                                    ; 5d
     1292    call 01751h                               ; e8 a9 fe
     1293    leave                                     ; c9
    5681294    pop di                                    ; 5f
    5691295    pop si                                    ; 5e
    5701296    retn 00002h                               ; c2 02 00
    571 put_str_:                                    ; 0xf18bd LB 0x1e
     1297put_str_:                                    ; 0xf18ae LB 0x1e
    5721298    push dx                                   ; 52
    5731299    push si                                   ; 56
     
    5781304    mov dl, byte [es:bx]                      ; 26 8a 17
    5791305    test dl, dl                               ; 84 d2
    580     je short 018d7h                           ; 74 0a
     1306    je short 018c8h                           ; 74 0a
    5811307    xor dh, dh                                ; 30 f6
    5821308    mov ax, si                                ; 89 f0
    583     call 01757h                               ; e8 83 fe
     1309    call 01751h                               ; e8 8c fe
    5841310    inc bx                                    ; 43
    585     jmp short 018c4h                          ; eb ed
     1311    jmp short 018b5h                          ; eb ed
    5861312    pop bp                                    ; 5d
    5871313    pop si                                    ; 5e
    5881314    pop dx                                    ; 5a
    5891315    retn                                      ; c3
    590 put_str_near_:                               ; 0xf18db LB 0x1f
     1316put_str_near_:                               ; 0xf18cc LB 0x1d
    5911317    push bx                                   ; 53
    5921318    push cx                                   ; 51
     
    5951321    mov cx, ax                                ; 89 c1
    5961322    mov bx, dx                                ; 89 d3
    597     mov al, byte [bx]                         ; 8a 07
    598     test al, al                               ; 84 c0
    599     je short 018f6h                           ; 74 0c
    600     xor ah, ah                                ; 30 e4
    601     mov dx, ax                                ; 89 c2
     1323    mov dl, byte [bx]                         ; 8a 17
     1324    test dl, dl                               ; 84 d2
     1325    je short 018e5h                           ; 74 0a
     1326    xor dh, dh                                ; 30 f6
    6021327    mov ax, cx                                ; 89 c8
    603     call 01757h                               ; e8 64 fe
     1328    call 01751h                               ; e8 6f fe
    6041329    inc bx                                    ; 43
    605     jmp short 018e4h                          ; eb ee
     1330    jmp short 018d5h                          ; eb f0
    6061331    pop bp                                    ; 5d
    6071332    pop cx                                    ; 59
    6081333    pop bx                                    ; 5b
    6091334    retn                                      ; c3
    610 bios_printf_:                                ; 0xf18fa LB 0x24f
     1335bios_printf_:                                ; 0xf18e9 LB 0x23c
    6111336    push bx                                   ; 53
    6121337    push cx                                   ; 51
     
    6141339    push si                                   ; 56
    6151340    push di                                   ; 57
    616     push bp                                   ; 55
    617     mov bp, sp                                ; 89 e5
    618     sub sp, strict byte 00008h                ; 83 ec 08
     1341    enter 00008h, 000h                        ; c8 08 00 00
    6191342    lea bx, [bp+012h]                         ; 8d 5e 12
    6201343    mov word [bp-008h], bx                    ; 89 5e f8
     
    6251348    and ax, strict word 00007h                ; 25 07 00
    6261349    cmp ax, strict word 00007h                ; 3d 07 00
    627     jne short 01931h                          ; 75 14
     1350    jne short 0191bh                          ; 75 11
    6281351    xor al, al                                ; 30 c0
    6291352    mov dx, 00401h                            ; ba 01 04
    6301353    out DX, AL                                ; ee
    631     mov ax, strict word 00046h                ; b8 46 00
    632     push ax                                   ; 50
    633     mov ax, strict word 00002h                ; b8 02 00
    634     push ax                                   ; 50
    635     call 018fah                               ; e8 cc ff
     1354    push strict word 00046h                   ; 68 46 00
     1355    push strict byte 00002h                   ; 6a 02
     1356    call 018e9h                               ; e8 d1 ff
    6361357    add sp, strict byte 00004h                ; 83 c4 04
    6371358    mov bx, word [bp+010h]                    ; 8b 5e 10
    6381359    mov dl, byte [bx]                         ; 8a 17
    6391360    test dl, dl                               ; 84 d2
    640     je short 01999h                           ; 74 5f
     1361    je near 01b0ch                            ; 0f 84 e6 01
    6411362    cmp dl, 025h                              ; 80 fa 25
    642     jne short 01947h                          ; 75 08
     1363    jne short 01933h                          ; 75 08
    6431364    mov cx, strict word 00001h                ; b9 01 00
    6441365    xor si, si                                ; 31 f6
    645     jmp near 01b28h                           ; e9 e1 01
     1366    jmp near 01b06h                           ; e9 d3 01
    6461367    test cx, cx                               ; 85 c9
    647     je short 0199ch                           ; 74 51
     1368    je near 01afeh                            ; 0f 84 c5 01
    6481369    cmp dl, 030h                              ; 80 fa 30
    649     jc short 0196ah                           ; 72 1a
     1370    jc short 01951h                           ; 72 13
    6501371    cmp dl, 039h                              ; 80 fa 39
    651     jnbe short 0196ah                         ; 77 15
    652     mov bl, dl                                ; 88 d3
    653     xor bh, bh                                ; 30 ff
    654     mov ax, si                                ; 89 f0
    655     mov dx, strict word 0000ah                ; ba 0a 00
    656     mul dx                                    ; f7 e2
    657     sub bx, strict byte 00030h                ; 83 eb 30
    658     mov si, ax                                ; 89 c6
    659     add si, bx                                ; 01 de
    660     jmp near 01b28h                           ; e9 be 01
     1372    jnbe short 01951h                         ; 77 0e
     1373    movzx ax, dl                              ; 0f b6 c2
     1374    imul si, si, strict byte 0000ah           ; 6b f6 0a
     1375    sub ax, strict word 00030h                ; 2d 30 00
     1376    add si, ax                                ; 01 c6
     1377    jmp near 01b06h                           ; e9 b5 01
    6611378    mov ax, word [bp-006h]                    ; 8b 46 fa
    6621379    mov word [bp-006h], ax                    ; 89 46 fa
     
    6661383    mov word [bp-002h], ax                    ; 89 46 fe
    6671384    cmp dl, 078h                              ; 80 fa 78
    668     je short 01988h                           ; 74 05
     1385    je short 0196fh                           ; 74 05
    6691386    cmp dl, 058h                              ; 80 fa 58
    670     jne short 019d6h                          ; 75 4e
     1387    jne short 019b8h                          ; 75 49
    6711388    test si, si                               ; 85 f6
    672     jne short 0198fh                          ; 75 03
     1389    jne short 01976h                          ; 75 03
    6731390    mov si, strict word 00004h                ; be 04 00
    6741391    cmp dl, 078h                              ; 80 fa 78
    675     jne short 0199fh                          ; 75 0b
     1392    jne short 01980h                          ; 75 05
    6761393    mov di, strict word 00061h                ; bf 61 00
    677     jmp short 019a2h                          ; eb 09
    678     jmp near 01b2eh                           ; e9 92 01
    679     jmp near 01b20h                           ; e9 81 01
     1394    jmp short 01983h                          ; eb 03
    6801395    mov di, strict word 00041h                ; bf 41 00
    6811396    lea bx, [si-001h]                         ; 8d 5c ff
    6821397    test bx, bx                               ; 85 db
    683     jl short 019e7h                           ; 7c 3e
     1398    jl near 01afah                            ; 0f 8c 6e 01
    6841399    mov cx, bx                                ; 89 d9
    685     sal cx, 1                                 ; d1 e1
    686     sal cx, 1                                 ; d1 e1
     1400    sal cx, 002h                              ; c1 e1 02
    6871401    mov ax, word [bp-002h]                    ; 8b 46 fe
    6881402    shr ax, CL                                ; d3 e8
     
    6901404    and AL, strict byte 00fh                  ; 24 0f
    6911405    cmp ax, strict word 00009h                ; 3d 09 00
    692     jnbe short 019c4h                         ; 77 07
     1406    jnbe short 019a6h                         ; 77 07
    6931407    mov dx, ax                                ; 89 c2
    6941408    add dx, strict byte 00030h                ; 83 c2 30
    695     jmp short 019cbh                          ; eb 07
     1409    jmp short 019adh                          ; eb 07
    6961410    mov dx, ax                                ; 89 c2
    6971411    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    6991413    xor dh, dh                                ; 30 f6
    7001414    mov ax, word [bp+00eh]                    ; 8b 46 0e
    701     call 01757h                               ; e8 84 fd
     1415    call 01751h                               ; e8 9c fd
    7021416    dec bx                                    ; 4b
    703     jmp short 019a5h                          ; eb cf
     1417    jmp short 01986h                          ; eb ce
    7041418    cmp dl, 075h                              ; 80 fa 75
    705     jne short 019eah                          ; 75 0f
     1419    jne short 019cch                          ; 75 0f
    7061420    xor cx, cx                                ; 31 c9
    7071421    mov bx, si                                ; 89 f3
    7081422    mov dx, ax                                ; 89 c2
    7091423    mov ax, word [bp+00eh]                    ; 8b 46 0e
    710     call 017f1h                               ; e8 0a fe
    711     jmp near 01b1ch                           ; e9 32 01
     1424    call 017e4h                               ; e8 1b fe
     1425    jmp near 01afah                           ; e9 2e 01
    7121426    lea bx, [si-001h]                         ; 8d 5c ff
    7131427    cmp dl, 06ch                              ; 80 fa 6c
    714     jne short 01a4ah                          ; 75 58
     1428    jne near 01a88h                           ; 0f 85 b2 00
    7151429    inc word [bp+010h]                        ; ff 46 10
    7161430    mov di, word [bp+010h]                    ; 8b 7e 10
     
    7231437    mov word [bp-004h], ax                    ; 89 46 fc
    7241438    cmp dl, 064h                              ; 80 fa 64
    725     jne short 01a43h                          ; 75 30
     1439    jne short 01a24h                          ; 75 2d
    7261440    test byte [bp-003h], 080h                 ; f6 46 fd 80
    727     je short 01a30h                           ; 74 17
    728     mov ax, strict word 00001h                ; b8 01 00
    729     push ax                                   ; 50
     1441    je short 01a12h                           ; 74 15
     1442    push strict byte 00001h                   ; 6a 01
    7301443    mov ax, word [bp-002h]                    ; 8b 46 fe
    7311444    mov cx, word [bp-004h]                    ; 8b 4e fc
     
    7351448    mov dx, bx                                ; 89 da
    7361449    mov bx, ax                                ; 89 c3
    737     jmp short 01a3bh                          ; eb 0b
    738     xor ax, ax                                ; 31 c0
    739     push ax                                   ; 50
     1450    jmp short 01a1bh                          ; eb 09
     1451    push strict byte 00000h                   ; 6a 00
    7401452    mov bx, word [bp-002h]                    ; 8b 5e fe
    7411453    mov dx, si                                ; 89 f2
    742     mov cx, word [bp-004h]                    ; 8b 4e fc
     1454    mov cx, ax                                ; 89 c1
    7431455    mov ax, word [bp+00eh]                    ; 8b 46 0e
    744     call 0184eh                               ; e8 0d fe
    745     jmp short 019e7h                          ; eb a4
     1456    call 01840h                               ; e8 1f fe
     1457    jmp near 01afah                           ; e9 d6 00
    7461458    cmp dl, 075h                              ; 80 fa 75
    747     jne short 01a4ch                          ; 75 04
    748     jmp short 01a30h                          ; eb e6
    749     jmp short 01aa6h                          ; eb 5a
     1459    jne short 01a2bh                          ; 75 02
     1460    jmp short 01a12h                          ; eb e7
    7501461    cmp dl, 078h                              ; 80 fa 78
    751     je short 01a56h                           ; 74 05
     1462    je short 01a37h                           ; 74 07
    7521463    cmp dl, 058h                              ; 80 fa 58
    753     jne short 019e7h                          ; 75 91
     1464    jne near 01afah                           ; 0f 85 c3 00
    7541465    test si, si                               ; 85 f6
    755     jne short 01a5dh                          ; 75 03
     1466    jne short 01a3eh                          ; 75 03
    7561467    mov si, strict word 00008h                ; be 08 00
    7571468    cmp dl, 078h                              ; 80 fa 78
    758     jne short 01a67h                          ; 75 05
     1469    jne short 01a48h                          ; 75 05
    7591470    mov di, strict word 00061h                ; bf 61 00
    760     jmp short 01a6ah                          ; eb 03
     1471    jmp short 01a4bh                          ; eb 03
    7611472    mov di, strict word 00041h                ; bf 41 00
    7621473    lea bx, [si-001h]                         ; 8d 5c ff
    7631474    test bx, bx                               ; 85 db
    764     jl short 01ad7h                           ; 7c 66
     1475    jl near 01afah                            ; 0f 8c a6 00
    7651476    mov ax, word [bp-002h]                    ; 8b 46 fe
    7661477    mov cx, bx                                ; 89 d9
    767     sal cx, 1                                 ; d1 e1
    768     sal cx, 1                                 ; d1 e1
     1478    sal cx, 002h                              ; c1 e1 02
    7691479    mov dx, word [bp-004h]                    ; 8b 56 fc
    770     jcxz 01a85h                               ; e3 06
     1480    jcxz 01a67h                               ; e3 06
    7711481    shr dx, 1                                 ; d1 ea
    7721482    rcr ax, 1                                 ; d1 d8
    773     loop 01a7fh                               ; e2 fa
     1483    loop 01a61h                               ; e2 fa
    7741484    and ax, strict word 0000fh                ; 25 0f 00
    7751485    cmp ax, strict word 00009h                ; 3d 09 00
    776     jnbe short 01a94h                         ; 77 07
     1486    jnbe short 01a76h                         ; 77 07
    7771487    mov dx, ax                                ; 89 c2
    7781488    add dx, strict byte 00030h                ; 83 c2 30
    779     jmp short 01a9bh                          ; eb 07
     1489    jmp short 01a7dh                          ; eb 07
    7801490    mov dx, ax                                ; 89 c2
    7811491    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    7831493    xor dh, dh                                ; 30 f6
    7841494    mov ax, word [bp+00eh]                    ; 8b 46 0e
    785     call 01757h                               ; e8 b4 fc
     1495    call 01751h                               ; e8 cc fc
    7861496    dec bx                                    ; 4b
    787     jmp short 01a6dh                          ; eb c7
     1497    jmp short 01a4eh                          ; eb c6
    7881498    cmp dl, 064h                              ; 80 fa 64
    789     jne short 01ac8h                          ; 75 1d
     1499    jne short 01aaah                          ; 75 1d
    7901500    test byte [bp-001h], 080h                 ; f6 46 ff 80
    791     je short 01abah                           ; 74 09
     1501    je short 01a9ch                           ; 74 09
    7921502    mov dx, ax                                ; 89 c2
    7931503    neg dx                                    ; f7 da
    7941504    mov cx, strict word 00001h                ; b9 01 00
    795     jmp short 01ac0h                          ; eb 06
     1505    jmp short 01aa2h                          ; eb 06
    7961506    xor cx, cx                                ; 31 c9
    7971507    mov bx, si                                ; 89 f3
    7981508    mov dx, ax                                ; 89 c2
    7991509    mov ax, word [bp+00eh]                    ; 8b 46 0e
    800     call 0178fh                               ; e8 c9 fc
    801     jmp short 01b1ch                          ; eb 54
     1510    call 01789h                               ; e8 e1 fc
     1511    jmp short 01afah                          ; eb 50
    8021512    cmp dl, 073h                              ; 80 fa 73
    803     jne short 01ad9h                          ; 75 0c
     1513    jne short 01abbh                          ; 75 0c
    8041514    mov cx, ds                                ; 8c d9
    8051515    mov bx, ax                                ; 89 c3
    8061516    mov ax, word [bp+00eh]                    ; 8b 46 0e
    807     call 018bdh                               ; e8 e6 fd
    808     jmp short 01b1ch                          ; eb 43
     1517    call 018aeh                               ; e8 f5 fd
     1518    jmp short 01afah                          ; eb 3f
    8091519    cmp dl, 053h                              ; 80 fa 53
    810     jne short 01afch                          ; 75 1e
     1520    jne short 01adeh                          ; 75 1e
    8111521    mov word [bp-004h], ax                    ; 89 46 fc
    8121522    mov ax, word [bp-006h]                    ; 8b 46 fa
     
    8181528    mov bx, ax                                ; 89 c3
    8191529    mov cx, word [bp-004h]                    ; 8b 4e fc
    820     jmp short 01ad1h                          ; eb d5
     1530    jmp short 01ab3h                          ; eb d5
    8211531    cmp dl, 063h                              ; 80 fa 63
    822     jne short 01b0eh                          ; 75 0d
    823     mov dl, byte [bp-002h]                    ; 8a 56 fe
     1532    jne short 01aefh                          ; 75 0c
     1533    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     1534    mov ax, word [bp+00eh]                    ; 8b 46 0e
     1535    call 01751h                               ; e8 64 fc
     1536    jmp short 01afah                          ; eb 0b
     1537    push strict word 0004eh                   ; 68 4e 00
     1538    push strict byte 00007h                   ; 6a 07
     1539    call 018e9h                               ; e8 f2 fd
     1540    add sp, strict byte 00004h                ; 83 c4 04
     1541    xor cx, cx                                ; 31 c9
     1542    jmp short 01b06h                          ; eb 08
    8241543    xor dh, dh                                ; 30 f6
    8251544    mov ax, word [bp+00eh]                    ; 8b 46 0e
    826     call 01757h                               ; e8 4b fc
    827     jmp short 01b1ch                          ; eb 0e
    828     mov ax, strict word 0004eh                ; b8 4e 00
    829     push ax                                   ; 50
    830     mov ax, strict word 00007h                ; b8 07 00
    831     push ax                                   ; 50
    832     call 018fah                               ; e8 e1 fd
    833     add sp, strict byte 00004h                ; 83 c4 04
    834     xor cx, cx                                ; 31 c9
    835     jmp short 01b28h                          ; eb 08
    836     xor dh, dh                                ; 30 f6
    837     mov ax, word [bp+00eh]                    ; 8b 46 0e
    838     call 01757h                               ; e8 2f fc
     1545    call 01751h                               ; e8 4b fc
    8391546    inc word [bp+010h]                        ; ff 46 10
    840     jmp near 01931h                           ; e9 03 fe
     1547    jmp near 0191bh                           ; e9 0f fe
    8411548    xor ax, ax                                ; 31 c0
    8421549    mov word [bp-008h], ax                    ; 89 46 f8
    8431550    mov word [bp-006h], ax                    ; 89 46 fa
    8441551    test byte [bp+00eh], 001h                 ; f6 46 0e 01
    845     je short 01b40h                           ; 74 04
     1552    je short 01b1eh                           ; 74 04
    8461553    cli                                       ; fa
    8471554    hlt                                       ; f4
    848     jmp short 01b3dh                          ; eb fd
    849     mov sp, bp                                ; 89 ec
    850     pop bp                                    ; 5d
     1555    jmp short 01b1bh                          ; eb fd
     1556    leave                                     ; c9
    8511557    pop di                                    ; 5f
    8521558    pop si                                    ; 5e
     
    8551561    pop bx                                    ; 5b
    8561562    retn                                      ; c3
    857 _ata_init:                                   ; 0xf1b49 LB 0xe4
     1563_ata_init:                                   ; 0xf1b25 LB 0xc1
    8581564    push si                                   ; 56
    859     push di                                   ; 57
    8601565    push bp                                   ; 55
    8611566    mov bp, sp                                ; 89 e5
    8621567    mov dx, strict word 0000eh                ; ba 0e 00
    8631568    mov ax, strict word 00040h                ; b8 40 00
    864     call 0161ch                               ; e8 c5 fa
     1569    call 0161ch                               ; e8 ea fa
    8651570    mov si, 00122h                            ; be 22 01
    866     mov di, ax                                ; 89 c7
    867     xor cl, cl                                ; 30 c9
    868     jmp short 01b65h                          ; eb 05
    869     cmp cl, 004h                              ; 80 f9 04
    870     jnc short 01b92h                          ; 73 2d
    871     mov al, cl                                ; 88 c8
    872     xor ah, ah                                ; 30 e4
    873     mov bx, strict word 00006h                ; bb 06 00
    874     imul bx                                   ; f7 eb
    875     mov es, di                                ; 8e c7
    876     mov bx, si                                ; 89 f3
    877     add bx, ax                                ; 01 c3
     1571    mov dx, ax                                ; 89 c2
     1572    xor al, al                                ; 30 c0
     1573    jmp short 01b3fh                          ; eb 04
     1574    cmp AL, strict byte 004h                  ; 3c 04
     1575    jnc short 01b63h                          ; 73 24
     1576    movzx bx, al                              ; 0f b6 d8
     1577    imul bx, bx, strict byte 00006h           ; 6b db 06
     1578    mov es, dx                                ; 8e c2
     1579    add bx, si                                ; 01 f3
    8781580    mov byte [es:bx+001c0h], 000h             ; 26 c6 87 c0 01 00
    879     mov word [es:bx+001c2h], strict word 00000h ; 26 c7 87 c2 01 00 00
    880     mov word [es:bx+001c4h], strict word 00000h ; 26 c7 87 c4 01 00 00
     1581    db  066h, 026h, 0c7h, 087h, 0c2h, 001h, 000h, 000h, 000h, 000h
     1582    ; mov dword [es:bx+001c2h], strict dword 000000000h ; 66 26 c7 87 c2 01 00 00 00 00
    8811583    mov byte [es:bx+001c1h], 000h             ; 26 c6 87 c1 01 00
    882     db  0feh, 0c1h
    883     ; inc cl                                    ; fe c1
    884     jmp short 01b60h                          ; eb ce
    885     xor cl, cl                                ; 30 c9
    886     jmp short 01b9bh                          ; eb 05
    887     cmp cl, 008h                              ; 80 f9 08
    888     jnc short 01bfah                          ; 73 5f
    889     mov al, cl                                ; 88 c8
    890     xor ah, ah                                ; 30 e4
    891     mov bx, strict word 00018h                ; bb 18 00
    892     imul bx                                   ; f7 eb
    893     mov es, di                                ; 8e c7
    894     mov bx, si                                ; 89 f3
    895     add bx, ax                                ; 01 c3
    896     mov word [es:bx+01eh], strict word 00000h ; 26 c7 47 1e 00 00
    897     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     1584    db  0feh, 0c0h
     1585    ; inc al                                    ; fe c0
     1586    jmp short 01b3bh                          ; eb d8
     1587    xor al, al                                ; 30 c0
     1588    jmp short 01b6bh                          ; eb 04
     1589    cmp AL, strict byte 008h                  ; 3c 08
     1590    jnc short 01bb6h                          ; 73 4b
     1591    movzx bx, al                              ; 0f b6 d8
     1592    imul bx, bx, strict byte 00018h           ; 6b db 18
     1593    mov es, dx                                ; 8e c2
     1594    add bx, si                                ; 01 f3
     1595    db  066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h
     1596    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    8981597    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    8991598    mov word [es:bx+024h], 00200h             ; 26 c7 47 24 00 02
    9001599    mov byte [es:bx+023h], 000h               ; 26 c6 47 23 00
    901     mov word [es:bx+026h], strict word 00000h ; 26 c7 47 26 00 00
    902     mov word [es:bx+028h], strict word 00000h ; 26 c7 47 28 00 00
    903     mov word [es:bx+02ah], strict word 00000h ; 26 c7 47 2a 00 00
    904     mov word [es:bx+02ch], strict word 00000h ; 26 c7 47 2c 00 00
    905     mov word [es:bx+02eh], strict word 00000h ; 26 c7 47 2e 00 00
    906     mov word [es:bx+030h], strict word 00000h ; 26 c7 47 30 00 00
    907     mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
    908     mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
    909     db  0feh, 0c1h
    910     ; inc cl                                    ; fe c1
    911     jmp short 01b96h                          ; eb 9c
    912     xor cl, cl                                ; 30 c9
    913     jmp short 01c03h                          ; eb 05
    914     cmp cl, 010h                              ; 80 f9 10
    915     jnc short 01c1bh                          ; 73 18
    916     mov bl, cl                                ; 88 cb
    917     xor bh, bh                                ; 30 ff
    918     mov es, di                                ; 8e c7
     1600    db  066h, 026h, 0c7h, 047h, 026h, 000h, 000h, 000h, 000h
     1601    ; mov dword [es:bx+026h], strict dword 000000000h ; 66 26 c7 47 26 00 00 00 00
     1602    db  066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h
     1603    ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00
     1604    db  066h, 026h, 0c7h, 047h, 02eh, 000h, 000h, 000h, 000h
     1605    ; mov dword [es:bx+02eh], strict dword 000000000h ; 66 26 c7 47 2e 00 00 00 00
     1606    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     1607    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
     1608    db  0feh, 0c0h
     1609    ; inc al                                    ; fe c0
     1610    jmp short 01b67h                          ; eb b1
     1611    xor al, al                                ; 30 c0
     1612    jmp short 01bbeh                          ; eb 04
     1613    cmp AL, strict byte 010h                  ; 3c 10
     1614    jnc short 01bd5h                          ; 73 17
     1615    movzx bx, al                              ; 0f b6 d8
     1616    mov es, dx                                ; 8e c2
    9191617    add bx, si                                ; 01 f3
    9201618    mov byte [es:bx+0019fh], 010h             ; 26 c6 87 9f 01 10
    9211619    mov byte [es:bx+001b0h], 010h             ; 26 c6 87 b0 01 10
    922     db  0feh, 0c1h
    923     ; inc cl                                    ; fe c1
    924     jmp short 01bfeh                          ; eb e3
    925     mov es, di                                ; 8e c7
     1620    db  0feh, 0c0h
     1621    ; inc al                                    ; fe c0
     1622    jmp short 01bbah                          ; eb e5
     1623    mov es, dx                                ; 8e c2
    9261624    mov byte [es:si+0019eh], 000h             ; 26 c6 84 9e 01 00
    9271625    mov byte [es:si+001afh], 000h             ; 26 c6 84 af 01 00
    9281626    pop bp                                    ; 5d
    929     pop di                                    ; 5f
    9301627    pop si                                    ; 5e
    9311628    retn                                      ; c3
    932 ata_reset_:                                  ; 0xf1c2d LB 0xe4
     1629ata_reset_:                                  ; 0xf1be6 LB 0xda
    9331630    push bx                                   ; 53
    9341631    push cx                                   ; 51
     
    9361633    push si                                   ; 56
    9371634    push di                                   ; 57
    938     push bp                                   ; 55
    939     mov bp, sp                                ; 89 e5
    940     push ax                                   ; 50
    941     push ax                                   ; 50
     1635    enter 00004h, 000h                        ; c8 04 00 00
    9421636    push ax                                   ; 50
    9431637    mov dx, strict word 0000eh                ; ba 0e 00
    9441638    mov ax, strict word 00040h                ; b8 40 00
    945     call 0161ch                               ; e8 db f9
     1639    call 0161ch                               ; e8 23 fa
     1640    mov word [bp-004h], 00122h                ; c7 46 fc 22 01
     1641    mov di, ax                                ; 89 c7
     1642    mov bx, word [bp-006h]                    ; 8b 5e fa
     1643    shr bx, 1                                 ; d1 eb
     1644    mov dl, byte [bp-006h]                    ; 8a 56 fa
     1645    and dl, 001h                              ; 80 e2 01
     1646    mov byte [bp-002h], dl                    ; 88 56 fe
     1647    xor bh, bh                                ; 30 ff
     1648    imul bx, bx, strict byte 00006h           ; 6b db 06
    9461649    mov es, ax                                ; 8e c0
    947     mov di, 00122h                            ; bf 22 01
    948     mov word [bp-004h], ax                    ; 89 46 fc
    949     mov ax, word [bp-006h]                    ; 8b 46 fa
    950     shr ax, 1                                 ; d1 e8
    951     mov ah, byte [bp-006h]                    ; 8a 66 fa
    952     and ah, 001h                              ; 80 e4 01
    953     mov byte [bp-002h], ah                    ; 88 66 fe
    954     xor ah, ah                                ; 30 e4
    955     mov dx, strict word 00006h                ; ba 06 00
    956     imul dx                                   ; f7 ea
    957     mov bx, ax                                ; 89 c3
    958     add bx, di                                ; 01 fb
     1650    add bx, 00122h                            ; 81 c3 22 01
    9591651    mov cx, word [es:bx+001c2h]               ; 26 8b 8f c2 01
    9601652    mov si, word [es:bx+001c4h]               ; 26 8b b7 c4 01
     
    9651657    dec bx                                    ; 4b
    9661658    test bx, bx                               ; 85 db
    967     jbe short 01c86h                          ; 76 0c
     1659    jbe short 01c3dh                          ; 76 0c
    9681660    mov dx, cx                                ; 89 ca
    9691661    add dx, strict byte 00007h                ; 83 c2 07
     
    9721664    ; sub ah, ah                                ; 2a e4
    9731665    test AL, strict byte 080h                 ; a8 80
    974     je short 01c75h                           ; 74 ef
     1666    je short 01c2ch                           ; 74 ef
    9751667    lea dx, [si+006h]                         ; 8d 54 06
    9761668    mov AL, strict byte 00ah                  ; b0 0a
    9771669    out DX, AL                                ; ee
    978     mov ax, word [bp-006h]                    ; 8b 46 fa
    979     mov dx, strict word 00018h                ; ba 18 00
    980     imul dx                                   ; f7 ea
    981     mov es, [bp-004h]                         ; 8e 46 fc
    982     mov bx, di                                ; 89 fb
    983     add bx, ax                                ; 01 c3
     1670    imul bx, word [bp-006h], strict byte 00018h ; 6b 5e fa 18
     1671    mov es, di                                ; 8e c7
     1672    add bx, word [bp-004h]                    ; 03 5e fc
    9841673    cmp byte [es:bx+01eh], 000h               ; 26 80 7f 1e 00
    985     je short 01ceeh                           ; 74 4c
     1674    je short 01c9fh                           ; 74 4c
    9861675    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    987     je short 01cadh                           ; 74 05
     1676    je short 01c5eh                           ; 74 05
    9881677    mov ax, 000b0h                            ; b8 b0 00
    989     jmp short 01cb0h                          ; eb 03
     1678    jmp short 01c61h                          ; eb 03
    9901679    mov ax, 000a0h                            ; b8 a0 00
    9911680    mov dx, cx                                ; 89 ca
     
    10051694    ; sub ah, ah                                ; 2a e4
    10061695    cmp bl, 001h                              ; 80 fb 01
    1007     jne short 01ceeh                          ; 75 22
     1696    jne short 01c9fh                          ; 75 22
    10081697    cmp al, bl                                ; 38 d8
    1009     jne short 01ceeh                          ; 75 1e
     1698    jne short 01c9fh                          ; 75 1e
    10101699    mov bx, strict word 0ffffh                ; bb ff ff
    10111700    dec bx                                    ; 4b
    10121701    test bx, bx                               ; 85 db
    1013     jbe short 01ceeh                          ; 76 16
     1702    jbe short 01c9fh                          ; 76 16
    10141703    mov dx, cx                                ; 89 ca
    10151704    add dx, strict byte 00007h                ; 83 c2 07
     
    10181707    ; sub ah, ah                                ; 2a e4
    10191708    test AL, strict byte 080h                 ; a8 80
    1020     je short 01ceeh                           ; 74 0a
     1709    je short 01c9fh                           ; 74 0a
    10211710    mov ax, strict word 0ffffh                ; b8 ff ff
    10221711    dec ax                                    ; 48
    10231712    test ax, ax                               ; 85 c0
    1024     jnbe short 01ce7h                         ; 77 fb
    1025     jmp short 01cd3h                          ; eb e5
     1713    jnbe short 01c98h                         ; 77 fb
     1714    jmp short 01c84h                          ; eb e5
    10261715    mov bx, strict word 00010h                ; bb 10 00
    10271716    dec bx                                    ; 4b
    10281717    test bx, bx                               ; 85 db
    1029     jbe short 01d02h                          ; 76 0c
     1718    jbe short 01cb3h                          ; 76 0c
    10301719    mov dx, cx                                ; 89 ca
    10311720    add dx, strict byte 00007h                ; 83 c2 07
     
    10341723    ; sub ah, ah                                ; 2a e4
    10351724    test AL, strict byte 040h                 ; a8 40
    1036     je short 01cf1h                           ; 74 ef
     1725    je short 01ca2h                           ; 74 ef
    10371726    lea dx, [si+006h]                         ; 8d 54 06
    10381727    mov AL, strict byte 008h                  ; b0 08
    10391728    out DX, AL                                ; ee
    1040     mov sp, bp                                ; 89 ec
    1041     pop bp                                    ; 5d
     1729    leave                                     ; c9
    10421730    pop di                                    ; 5f
    10431731    pop si                                    ; 5e
     
    10461734    pop bx                                    ; 5b
    10471735    retn                                      ; c3
    1048 ata_cmd_data_in_:                            ; 0xf1d11 LB 0x268
     1736ata_cmd_data_in_:                            ; 0xf1cc0 LB 0x263
    10491737    push si                                   ; 56
    10501738    push di                                   ; 57
    1051     push bp                                   ; 55
    1052     mov bp, sp                                ; 89 e5
    1053     sub sp, strict byte 0001ch                ; 83 ec 1c
     1739    enter 0001ch, 000h                        ; c8 1c 00 00
    10541740    mov si, ax                                ; 89 c6
    1055     mov word [bp-016h], dx                    ; 89 56 ea
    1056     mov word [bp-00eh], bx                    ; 89 5e f2
    1057     mov word [bp-018h], cx                    ; 89 4e e8
     1741    mov word [bp-006h], dx                    ; 89 56 fa
     1742    mov word [bp-012h], bx                    ; 89 5e ee
     1743    mov word [bp-010h], cx                    ; 89 4e f0
    10581744    mov es, dx                                ; 8e c2
    1059     mov cl, byte [es:si+008h]                 ; 26 8a 4c 08
    1060     xor ch, ch                                ; 30 ed
    1061     mov ax, cx                                ; 89 c8
    1062     mov dx, cx                                ; 89 ca
     1745    movzx ax, byte [es:si+008h]               ; 26 0f b6 44 08
     1746    mov dx, ax                                ; 89 c2
    10631747    shr dx, 1                                 ; d1 ea
    1064     and AL, strict byte 001h                  ; 24 01
    1065     mov byte [bp-004h], al                    ; 88 46 fc
    1066     mov al, dl                                ; 88 d0
    1067     mov dx, strict word 00006h                ; ba 06 00
    1068     imul dx                                   ; f7 ea
    1069     mov di, si                                ; 89 f7
    1070     add di, ax                                ; 01 c7
     1748    mov dh, al                                ; 88 c6
     1749    and dh, 001h                              ; 80 e6 01
     1750    mov byte [bp-004h], dh                    ; 88 76 fc
     1751    movzx di, dl                              ; 0f b6 fa
     1752    imul di, di, strict byte 00006h           ; 6b ff 06
     1753    add di, si                                ; 01 f7
    10711754    mov bx, word [es:di+001c2h]               ; 26 8b 9d c2 01
    1072     mov ax, word [es:di+001c4h]               ; 26 8b 85 c4 01
    1073     mov word [bp-00ch], ax                    ; 89 46 f4
    1074     mov ax, cx                                ; 89 c8
    1075     mov dx, strict word 00018h                ; ba 18 00
    1076     imul dx                                   ; f7 ea
     1755    mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
     1756    mov word [bp-018h], dx                    ; 89 56 e8
     1757    imul ax, ax, strict byte 00018h           ; 6b c0 18
    10771758    mov di, si                                ; 89 f7
    10781759    add di, ax                                ; 01 c7
     
    10801761    mov byte [bp-002h], al                    ; 88 46 fe
    10811762    mov ax, word [es:di+024h]                 ; 26 8b 45 24
    1082     mov word [bp-006h], ax                    ; 89 46 fa
     1763    mov word [bp-008h], ax                    ; 89 46 f8
    10831764    test ax, ax                               ; 85 c0
    1084     jne short 01d80h                          ; 75 14
     1765    jne short 01d26h                          ; 75 14
    10851766    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1086     jne short 01d79h                          ; 75 07
    1087     mov word [bp-006h], 04000h                ; c7 46 fa 00 40
    1088     jmp short 01d8ch                          ; eb 13
    1089     mov word [bp-006h], 08000h                ; c7 46 fa 00 80
    1090     jmp short 01d8ch                          ; eb 0c
     1767    jne short 01d1fh                          ; 75 07
     1768    mov word [bp-008h], 04000h                ; c7 46 f8 00 40
     1769    jmp short 01d35h                          ; eb 16
     1770    mov word [bp-008h], 08000h                ; c7 46 f8 00 80
     1771    jmp short 01d35h                          ; eb 0f
    10911772    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1092     jne short 01d89h                          ; 75 03
    1093     shr word [bp-006h], 1                     ; d1 6e fa
    1094     shr word [bp-006h], 1                     ; d1 6e fa
     1773    jne short 01d32h                          ; 75 06
     1774    shr word [bp-008h], 002h                  ; c1 6e f8 02
     1775    jmp short 01d35h                          ; eb 03
     1776    shr word [bp-008h], 1                     ; d1 6e f8
    10951777    lea dx, [bx+007h]                         ; 8d 57 07
    10961778    in AL, DX                                 ; ec
     
    10981780    ; sub ah, ah                                ; 2a e4
    10991781    test AL, strict byte 080h                 ; a8 80
    1100     je short 01da5h                           ; 74 0f
    1101     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1782    je short 01d4eh                           ; 74 0f
     1783    mov dx, word [bp-018h]                    ; 8b 56 e8
    11021784    add dx, strict byte 00006h                ; 83 c2 06
    11031785    mov AL, strict byte 008h                  ; b0 08
    11041786    out DX, AL                                ; ee
    11051787    mov dx, strict word 00001h                ; ba 01 00
    1106     jmp near 01f61h                           ; e9 bc 01
    1107     mov es, [bp-016h]                         ; 8e 46 ea
     1788    jmp near 01f0dh                           ; e9 bf 01
     1789    mov es, [bp-006h]                         ; 8e 46 fa
    11081790    mov ax, word [es:si]                      ; 26 8b 04
    11091791    mov word [bp-01ch], ax                    ; 89 46 e4
     
    11121794    mov di, word [es:si+004h]                 ; 26 8b 7c 04
    11131795    mov ax, word [es:si+006h]                 ; 26 8b 44 06
    1114     mov word [bp-008h], ax                    ; 89 46 f8
     1796    mov word [bp-00ah], ax                    ; 89 46 f6
    11151797    mov ax, word [es:si+012h]                 ; 26 8b 44 12
    1116     mov word [bp-00ah], ax                    ; 89 46 f6
     1798    mov word [bp-00ch], ax                    ; 89 46 f4
    11171799    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
    1118     mov word [bp-012h], ax                    ; 89 46 ee
     1800    mov word [bp-00eh], ax                    ; 89 46 f2
    11191801    mov ax, word [es:si+010h]                 ; 26 8b 44 10
    11201802    mov word [bp-014h], ax                    ; 89 46 ec
    1121     mov ax, word [bp-00ah]                    ; 8b 46 f6
     1803    mov ax, word [bp-00ch]                    ; 8b 46 f4
    11221804    test ax, ax                               ; 85 c0
    1123     jne short 01e3fh                          ; 75 63
     1805    jne short 01dech                          ; 75 67
    11241806    mov dx, word [bp-01ch]                    ; 8b 56 e4
    1125     add dx, word [bp-018h]                    ; 03 56 e8
     1807    add dx, word [bp-010h]                    ; 03 56 f0
    11261808    adc ax, word [bp-01ah]                    ; 13 46 e6
    11271809    cmp ax, 01000h                            ; 3d 00 10
    1128     jnbe short 01dech                         ; 77 02
    1129     jne short 01e13h                          ; 75 27
     1810    jnbe short 01d95h                         ; 77 02
     1811    jne short 01dc0h                          ; 75 2b
    11301812    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1131     mov al, ah                                ; 88 e0
    1132     xor ah, ah                                ; 30 e4
    1133     mov word [bp-00ah], ax                    ; 89 46 f6
    1134     mov ax, word [bp-018h]                    ; 8b 46 e8
    1135     mov al, ah                                ; 88 e0
     1813    xor al, al                                ; 30 c0
     1814    shr ax, 008h                              ; c1 e8 08
     1815    mov word [bp-00ch], ax                    ; 89 46 f4
     1816    mov ax, word [bp-010h]                    ; 8b 46 f0
     1817    xor al, al                                ; 30 c0
     1818    shr ax, 008h                              ; c1 e8 08
    11361819    lea dx, [bx+002h]                         ; 8d 57 02
    11371820    out DX, AL                                ; ee
    11381821    lea dx, [bx+003h]                         ; 8d 57 03
    1139     mov al, byte [bp-00ah]                    ; 8a 46 f6
     1822    mov al, byte [bp-00ch]                    ; 8a 46 f4
    11401823    out DX, AL                                ; ee
    11411824    lea dx, [bx+004h]                         ; 8d 57 04
     
    11471830    mov ax, word [bp-01ch]                    ; 8b 46 e4
    11481831    xor ah, ah                                ; 30 e4
    1149     mov word [bp-00ah], ax                    ; 89 46 f6
     1832    mov word [bp-00ch], ax                    ; 89 46 f4
    11501833    mov cx, strict word 00008h                ; b9 08 00
    11511834    shr word [bp-01ah], 1                     ; d1 6e e6
    11521835    rcr word [bp-01ch], 1                     ; d1 5e e4
    1153     loop 01e1eh                               ; e2 f8
     1836    loop 01dcbh                               ; e2 f8
    11541837    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1155     mov word [bp-012h], ax                    ; 89 46 ee
     1838    mov word [bp-00eh], ax                    ; 89 46 f2
    11561839    mov ax, word [bp-01ah]                    ; 8b 46 e6
    11571840    mov word [bp-01ch], ax                    ; 89 46 e4
     
    11601843    or AL, strict byte 040h                   ; 0c 40
    11611844    mov word [bp-014h], ax                    ; 89 46 ec
    1162     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1845    mov dx, word [bp-018h]                    ; 8b 56 e8
    11631846    add dx, strict byte 00006h                ; 83 c2 06
    11641847    mov AL, strict byte 00ah                  ; b0 0a
     
    11681851    out DX, AL                                ; ee
    11691852    lea dx, [bx+002h]                         ; 8d 57 02
    1170     mov al, byte [bp-018h]                    ; 8a 46 e8
     1853    mov al, byte [bp-010h]                    ; 8a 46 f0
    11711854    out DX, AL                                ; ee
    11721855    lea dx, [bx+003h]                         ; 8d 57 03
    1173     mov al, byte [bp-00ah]                    ; 8a 46 f6
    1174     out DX, AL                                ; ee
    1175     mov ax, word [bp-012h]                    ; 8b 46 ee
     1856    mov al, byte [bp-00ch]                    ; 8a 46 f4
     1857    out DX, AL                                ; ee
     1858    mov ax, word [bp-00eh]                    ; 8b 46 f2
    11761859    lea dx, [bx+004h]                         ; 8d 57 04
    11771860    out DX, AL                                ; ee
    1178     mov al, byte [bp-011h]                    ; 8a 46 ef
     1861    shr ax, 008h                              ; c1 e8 08
    11791862    lea dx, [bx+005h]                         ; 8d 57 05
    11801863    out DX, AL                                ; ee
    11811864    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    1182     je short 01e75h                           ; 74 05
     1865    je short 01e22h                           ; 74 05
    11831866    mov ax, 000b0h                            ; b8 b0 00
    1184     jmp short 01e78h                          ; eb 03
     1867    jmp short 01e25h                          ; eb 03
    11851868    mov ax, 000a0h                            ; b8 a0 00
    1186     mov dl, byte [bp-014h]                    ; 8a 56 ec
    1187     xor dh, dh                                ; 30 f6
     1869    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    11881870    or ax, dx                                 ; 09 d0
    11891871    lea dx, [bx+006h]                         ; 8d 57 06
    11901872    out DX, AL                                ; ee
    11911873    lea dx, [bx+007h]                         ; 8d 57 07
    1192     mov al, byte [bp-00eh]                    ; 8a 46 f2
    1193     out DX, AL                                ; ee
    1194     mov ax, word [bp-00eh]                    ; 8b 46 f2
     1874    mov al, byte [bp-012h]                    ; 8a 46 ee
     1875    out DX, AL                                ; ee
     1876    mov ax, word [bp-012h]                    ; 8b 46 ee
    11951877    cmp ax, 000c4h                            ; 3d c4 00
    1196     je short 01e97h                           ; 74 05
     1878    je short 01e43h                           ; 74 05
    11971879    cmp ax, strict word 00029h                ; 3d 29 00
    1198     jne short 01ea4h                          ; 75 0d
    1199     mov ax, word [bp-018h]                    ; 8b 46 e8
    1200     mov word [bp-010h], ax                    ; 89 46 f0
    1201     mov word [bp-018h], strict word 00001h    ; c7 46 e8 01 00
    1202     jmp short 01ea9h                          ; eb 05
     1880    jne short 01e50h                          ; 75 0d
     1881    mov ax, word [bp-010h]                    ; 8b 46 f0
     1882    mov word [bp-016h], ax                    ; 89 46 ea
    12031883    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
     1884    jmp short 01e55h                          ; eb 05
     1885    mov word [bp-016h], strict word 00001h    ; c7 46 ea 01 00
    12041886    lea dx, [bx+007h]                         ; 8d 57 07
    12051887    in AL, DX                                 ; ec
     
    12081890    mov dl, al                                ; 88 c2
    12091891    test AL, strict byte 080h                 ; a8 80
    1210     jne short 01ea9h                          ; 75 f4
     1892    jne short 01e55h                          ; 75 f4
    12111893    test AL, strict byte 001h                 ; a8 01
    1212     je short 01ec8h                           ; 74 0f
    1213     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1894    je short 01e74h                           ; 74 0f
     1895    mov dx, word [bp-018h]                    ; 8b 56 e8
    12141896    add dx, strict byte 00006h                ; 83 c2 06
    12151897    mov AL, strict byte 008h                  ; b0 08
    12161898    out DX, AL                                ; ee
    12171899    mov dx, strict word 00002h                ; ba 02 00
    1218     jmp near 01f61h                           ; e9 99 00
     1900    jmp near 01f0dh                           ; e9 99 00
    12191901    test dl, 008h                             ; f6 c2 08
    1220     jne short 01edch                          ; 75 0f
    1221     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1902    jne short 01e88h                          ; 75 0f
     1903    mov dx, word [bp-018h]                    ; 8b 56 e8
    12221904    add dx, strict byte 00006h                ; 83 c2 06
    12231905    mov AL, strict byte 008h                  ; b0 08
    12241906    out DX, AL                                ; ee
    12251907    mov dx, strict word 00003h                ; ba 03 00
    1226     jmp near 01f61h                           ; e9 85 00
     1908    jmp near 01f0dh                           ; e9 85 00
    12271909    sti                                       ; fb
    12281910    cmp di, 0f800h                            ; 81 ff 00 f8
    1229     jc short 01ef0h                           ; 72 0d
     1911    jc short 01e9ch                           ; 72 0d
    12301912    sub di, 00800h                            ; 81 ef 00 08
    1231     mov ax, word [bp-008h]                    ; 8b 46 f8
     1913    mov ax, word [bp-00ah]                    ; 8b 46 f6
    12321914    add ax, 00080h                            ; 05 80 00
    1233     mov word [bp-008h], ax                    ; 89 46 f8
     1915    mov word [bp-00ah], ax                    ; 89 46 f6
    12341916    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1235     jne short 01f03h                          ; 75 0d
     1917    jne short 01eafh                          ; 75 0d
    12361918    mov dx, bx                                ; 89 da
    1237     mov cx, word [bp-006h]                    ; 8b 4e fa
    1238     mov es, [bp-008h]                         ; 8e 46 f8
     1919    mov cx, word [bp-008h]                    ; 8b 4e f8
     1920    mov es, [bp-00ah]                         ; 8e 46 f6
    12391921    db  0f3h, 066h, 06dh
    12401922    ; rep insd                                  ; f3 66 6d
    1241     jmp short 01f0dh                          ; eb 0a
     1923    jmp short 01eb9h                          ; eb 0a
    12421924    mov dx, bx                                ; 89 da
    1243     mov cx, word [bp-006h]                    ; 8b 4e fa
    1244     mov es, [bp-008h]                         ; 8e 46 f8
     1925    mov cx, word [bp-008h]                    ; 8b 4e f8
     1926    mov es, [bp-00ah]                         ; 8e 46 f6
    12451927    rep insw                                  ; f3 6d
    1246     mov ax, word [bp-010h]                    ; 8b 46 f0
    1247     mov es, [bp-016h]                         ; 8e 46 ea
     1928    mov ax, word [bp-016h]                    ; 8b 46 ea
     1929    mov es, [bp-006h]                         ; 8e 46 fa
    12481930    add word [es:si+014h], ax                 ; 26 01 44 14
    1249     dec word [bp-018h]                        ; ff 4e e8
     1931    dec word [bp-010h]                        ; ff 4e f0
    12501932    lea dx, [bx+007h]                         ; 8d 57 07
    12511933    in AL, DX                                 ; ec
     
    12541936    mov dl, al                                ; 88 c2
    12551937    test AL, strict byte 080h                 ; a8 80
    1256     jne short 01f1ah                          ; 75 f4
    1257     cmp word [bp-018h], strict byte 00000h    ; 83 7e e8 00
    1258     jne short 01f40h                          ; 75 14
     1938    jne short 01ec6h                          ; 75 f4
     1939    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
     1940    jne short 01eech                          ; 75 14
    12591941    and AL, strict byte 0c9h                  ; 24 c9
    12601942    cmp AL, strict byte 040h                  ; 3c 40
    1261     je short 01f56h                           ; 74 24
    1262     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1943    je short 01f02h                           ; 74 24
     1944    mov dx, word [bp-018h]                    ; 8b 56 e8
    12631945    add dx, strict byte 00006h                ; 83 c2 06
    12641946    mov AL, strict byte 008h                  ; b0 08
    12651947    out DX, AL                                ; ee
    12661948    mov dx, strict word 00004h                ; ba 04 00
    1267     jmp short 01f61h                          ; eb 21
     1949    jmp short 01f0dh                          ; eb 21
    12681950    mov al, dl                                ; 88 d0
    12691951    and AL, strict byte 0c9h                  ; 24 c9
    12701952    cmp AL, strict byte 048h                  ; 3c 48
    1271     je short 01eddh                           ; 74 95
    1272     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1953    je short 01e89h                           ; 74 95
     1954    mov dx, word [bp-018h]                    ; 8b 56 e8
    12731955    add dx, strict byte 00006h                ; 83 c2 06
    12741956    mov AL, strict byte 008h                  ; b0 08
    12751957    out DX, AL                                ; ee
    12761958    mov dx, strict word 00005h                ; ba 05 00
    1277     jmp short 01f61h                          ; eb 0b
    1278     mov dx, word [bp-00ch]                    ; 8b 56 f4
     1959    jmp short 01f0dh                          ; eb 0b
     1960    mov dx, word [bp-018h]                    ; 8b 56 e8
    12791961    add dx, strict byte 00006h                ; 83 c2 06
    12801962    mov AL, strict byte 008h                  ; b0 08
     
    12821964    xor dx, dx                                ; 31 d2
    12831965    mov ax, dx                                ; 89 d0
    1284     mov sp, bp                                ; 89 ec
    1285     pop bp                                    ; 5d
     1966    leave                                     ; c9
    12861967    pop di                                    ; 5f
    12871968    pop si                                    ; 5e
    12881969    retn                                      ; c3
    1289     sal word [bx+di], 0f7h                    ; c1 21 f7
    1290     and bx, di                                ; 21 fb
    1291     and di, di                                ; 21 ff
    1292     and word [bp+di], ax                      ; 21 03
    1293     and al, byte [bx]                         ; 22 07
    1294     and cl, byte [bp+di]                      ; 22 0b
    1295     and cl, byte [bx]                         ; 22 0f
    1296     db  022h
    1297 _ata_detect:                                 ; 0xf1f79 LB 0x695
     1970    dec bp                                    ; 4d
     1971    and word [di-076dfh], ax                  ; 21 85 21 89
     1972    and word [di-06edfh], cx                  ; 21 8d 21 91
     1973    and word [di-066dfh], dx                  ; 21 95 21 99
     1974    db  021h
     1975    popfw                                     ; 9d
     1976    db  021h
     1977_ata_detect:                                 ; 0xf1f23 LB 0x621
    12981978    push si                                   ; 56
    12991979    push di                                   ; 57
    1300     push bp                                   ; 55
    1301     mov bp, sp                                ; 89 e5
    1302     sub sp, 00262h                            ; 81 ec 62 02
     1980    enter 0025ah, 000h                        ; c8 5a 02 00
    13031981    mov dx, strict word 0000eh                ; ba 0e 00
    13041982    mov ax, strict word 00040h                ; b8 40 00
    1305     call 0161ch                               ; e8 91 f6
    1306     mov word [bp-01eh], ax                    ; 89 46 e2
     1983    call 0161ch                               ; e8 ea f6
     1984    mov word [bp-022h], ax                    ; 89 46 de
    13071985    mov bx, 00122h                            ; bb 22 01
    13081986    mov es, ax                                ; 8e c0
    13091987    mov si, bx                                ; 89 de
    1310     mov word [bp-022h], ax                    ; 89 46 de
     1988    mov word [bp-026h], ax                    ; 89 46 da
    13111989    mov byte [es:bx+001c0h], 000h             ; 26 c6 87 c0 01 00
    1312     mov word [es:bx+001c2h], 001f0h           ; 26 c7 87 c2 01 f0 01
    1313     mov word [es:bx+001c4h], 003f0h           ; 26 c7 87 c4 01 f0 03
     1990    db  066h, 026h, 0c7h, 087h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h
     1991    ; mov dword [es:bx+001c2h], strict dword 003f001f0h ; 66 26 c7 87 c2 01 f0 01 f0 03
    13141992    mov byte [es:bx+001c1h], 00eh             ; 26 c6 87 c1 01 0e
    13151993    mov byte [es:bx+001c6h], 000h             ; 26 c6 87 c6 01 00
    1316     mov word [es:bx+001c8h], 00170h           ; 26 c7 87 c8 01 70 01
    1317     mov word [es:bx+001cah], 00370h           ; 26 c7 87 ca 01 70 03
     1994    db  066h, 026h, 0c7h, 087h, 0c8h, 001h, 070h, 001h, 070h, 003h
     1995    ; mov dword [es:bx+001c8h], strict dword 003700170h ; 66 26 c7 87 c8 01 70 01 70 03
    13181996    mov byte [es:bx+001c7h], 00fh             ; 26 c6 87 c7 01 0f
    13191997    xor al, al                                ; 30 c0
    1320     mov byte [bp-008h], al                    ; 88 46 f8
     1998    mov byte [bp-006h], al                    ; 88 46 fa
    13211999    mov byte [bp-014h], al                    ; 88 46 ec
    1322     mov byte [bp-00ch], al                    ; 88 46 f4
    1323     jmp near 02591h                           ; e9 b7 05
     2000    mov byte [bp-016h], al                    ; 88 46 ea
     2001    jmp near 024cfh                           ; e9 56 05
    13242002    mov ax, 000a0h                            ; b8 a0 00
    13252003    lea dx, [bx+006h]                         ; 8d 57 06
    13262004    out DX, AL                                ; ee
    1327     lea cx, [bx+002h]                         ; 8d 4f 02
     2005    lea di, [bx+002h]                         ; 8d 7f 02
     2006    mov AL, strict byte 055h                  ; b0 55
     2007    mov dx, di                                ; 89 fa
     2008    out DX, AL                                ; ee
     2009    lea cx, [bx+003h]                         ; 8d 4f 03
     2010    mov AL, strict byte 0aah                  ; b0 aa
     2011    mov dx, cx                                ; 89 ca
     2012    out DX, AL                                ; ee
     2013    mov dx, di                                ; 89 fa
     2014    out DX, AL                                ; ee
    13282015    mov AL, strict byte 055h                  ; b0 55
    13292016    mov dx, cx                                ; 89 ca
    13302017    out DX, AL                                ; ee
    1331     lea di, [bx+003h]                         ; 8d 7f 03
     2018    mov dx, di                                ; 89 fa
     2019    out DX, AL                                ; ee
    13322020    mov AL, strict byte 0aah                  ; b0 aa
     2021    mov dx, cx                                ; 89 ca
     2022    out DX, AL                                ; ee
    13332023    mov dx, di                                ; 89 fa
    1334     out DX, AL                                ; ee
    1335     mov dx, cx                                ; 89 ca
    1336     out DX, AL                                ; ee
    1337     mov AL, strict byte 055h                  ; b0 55
    1338     mov dx, di                                ; 89 fa
    1339     out DX, AL                                ; ee
    1340     mov dx, cx                                ; 89 ca
    1341     out DX, AL                                ; ee
    1342     mov AL, strict byte 0aah                  ; b0 aa
    1343     mov dx, di                                ; 89 fa
    1344     out DX, AL                                ; ee
     2024    in AL, DX                                 ; ec
     2025    db  02ah, 0e4h
     2026    ; sub ah, ah                                ; 2a e4
     2027    mov word [bp-028h], ax                    ; 89 46 d8
    13452028    mov dx, cx                                ; 89 ca
    13462029    in AL, DX                                 ; ec
    13472030    db  02ah, 0e4h
    13482031    ; sub ah, ah                                ; 2a e4
    1349     mov cx, ax                                ; 89 c1
    1350     mov dx, di                                ; 89 fa
    1351     in AL, DX                                 ; ec
    1352     db  02ah, 0e4h
    1353     ; sub ah, ah                                ; 2a e4
    1354     cmp cl, 055h                              ; 80 f9 55
    1355     jne short 0205dh                          ; 75 4b
     2032    cmp byte [bp-028h], 055h                  ; 80 7e d8 55
     2033    jne near 02084h                           ; 0f 85 cf 00
    13562034    cmp AL, strict byte 0aah                  ; 3c aa
    1357     jne short 0205dh                          ; 75 47
    1358     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1359     xor ah, ah                                ; 30 e4
    1360     mov dx, strict word 00018h                ; ba 18 00
    1361     imul dx                                   ; f7 ea
    1362     mov es, [bp-022h]                         ; 8e 46 de
     2035    jne near 02084h                           ; 0f 85 c9 00
     2036    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2037    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2038    mov es, [bp-026h]                         ; 8e 46 da
    13632039    mov di, si                                ; 89 f7
    13642040    add di, ax                                ; 01 c7
    13652041    mov byte [es:di+01eh], 001h               ; 26 c6 45 1e 01
    1366     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1367     xor ah, ah                                ; 30 e4
    1368     call 01c2dh                               ; e8 f9 fb
    1369     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    1370     je short 0203fh                           ; 74 05
     2042    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2043    call 01be6h                               ; e8 11 fc
     2044    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     2045    je short 01fe0h                           ; 74 05
    13712046    mov ax, 000b0h                            ; b8 b0 00
    1372     jmp short 02042h                          ; eb 03
     2047    jmp short 01fe3h                          ; eb 03
    13732048    mov ax, 000a0h                            ; b8 a0 00
    13742049    lea dx, [bx+006h]                         ; 8d 57 06
     
    13842059    ; sub ah, ah                                ; 2a e4
    13852060    cmp cl, 001h                              ; 80 f9 01
    1386     jne short 0209fh                          ; 75 46
     2061    jne near 02084h                           ; 0f 85 88 00
    13872062    cmp al, cl                                ; 38 c8
    1388     je short 0205fh                           ; 74 02
    1389     jmp short 0209fh                          ; eb 40
     2063    jne near 02084h                           ; 0f 85 82 00
    13902064    lea dx, [bx+004h]                         ; 8d 57 04
    13912065    in AL, DX                                 ; ec
    13922066    db  02ah, 0e4h
    13932067    ; sub ah, ah                                ; 2a e4
    1394     mov cx, ax                                ; 89 c1
    1395     mov ch, al                                ; 88 c5
     2068    mov word [bp-028h], ax                    ; 89 46 d8
     2069    mov al, byte [bp-028h]                    ; 8a 46 d8
     2070    mov byte [bp-00ch], al                    ; 88 46 f4
    13962071    lea dx, [bx+005h]                         ; 8d 57 05
    13972072    in AL, DX                                 ; ec
    13982073    db  02ah, 0e4h
    13992074    ; sub ah, ah                                ; 2a e4
    1400     mov word [bp-01ah], ax                    ; 89 46 e6
    1401     mov al, byte [bp-01ah]                    ; 8a 46 e6
    1402     mov byte [bp-002h], al                    ; 88 46 fe
     2075    mov cx, ax                                ; 89 c1
     2076    mov byte [bp-00ah], al                    ; 88 46 f6
    14032077    lea dx, [bx+007h]                         ; 8d 57 07
    14042078    in AL, DX                                 ; ec
    14052079    db  02ah, 0e4h
    14062080    ; sub ah, ah                                ; 2a e4
    1407     cmp cl, 014h                              ; 80 f9 14
    1408     jne short 020a1h                          ; 75 1e
    1409     cmp byte [bp-01ah], 0ebh                  ; 80 7e e6 eb
    1410     jne short 020a1h                          ; 75 18
    1411     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1412     xor ah, ah                                ; 30 e4
    1413     mov dx, strict word 00018h                ; ba 18 00
    1414     imul dx                                   ; f7 ea
    1415     mov es, [bp-022h]                         ; 8e 46 de
    1416     mov bx, si                                ; 89 f3
    1417     add bx, ax                                ; 01 c3
     2081    cmp byte [bp-028h], 014h                  ; 80 7e d8 14
     2082    jne short 02040h                          ; 75 18
     2083    cmp cl, 0ebh                              ; 80 f9 eb
     2084    jne short 02040h                          ; 75 13
     2085    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     2086    imul bx, bx, strict byte 00018h           ; 6b db 18
     2087    mov es, [bp-026h]                         ; 8e 46 da
     2088    add bx, si                                ; 01 f3
    14182089    mov byte [es:bx+01eh], 003h               ; 26 c6 47 1e 03
    1419     jmp short 020e7h                          ; eb 46
    1420     test ch, ch                               ; 84 ed
    1421     jne short 020c7h                          ; 75 22
    1422     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    1423     jne short 020c7h                          ; 75 1c
     2090    jmp short 02084h                          ; eb 44
     2091    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     2092    jne short 02065h                          ; 75 1f
     2093    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     2094    jne short 02065h                          ; 75 19
    14242095    test al, al                               ; 84 c0
    1425     je short 020c7h                           ; 74 18
    1426     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1427     xor ah, ah                                ; 30 e4
    1428     mov dx, strict word 00018h                ; ba 18 00
    1429     imul dx                                   ; f7 ea
    1430     mov es, [bp-022h]                         ; 8e 46 de
     2096    je short 02065h                           ; 74 15
     2097    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2098    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2099    mov es, [bp-026h]                         ; 8e 46 da
    14312100    mov bx, si                                ; 89 f3
    14322101    add bx, ax                                ; 01 c3
    14332102    mov byte [es:bx+01eh], 002h               ; 26 c6 47 1e 02
    1434     jmp short 020e7h                          ; eb 20
    1435     cmp ch, 0ffh                              ; 80 fd ff
    1436     jne short 020e7h                          ; 75 1b
    1437     cmp ch, byte [bp-002h]                    ; 3a 6e fe
    1438     jne short 020e7h                          ; 75 16
    1439     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1440     xor ah, ah                                ; 30 e4
    1441     mov dx, strict word 00018h                ; ba 18 00
    1442     imul dx                                   ; f7 ea
    1443     mov es, [bp-022h]                         ; 8e 46 de
     2103    jmp short 02084h                          ; eb 1f
     2104    cmp byte [bp-00ch], 0ffh                  ; 80 7e f4 ff
     2105    jne short 02084h                          ; 75 19
     2106    cmp byte [bp-00ah], 0ffh                  ; 80 7e f6 ff
     2107    jne short 02084h                          ; 75 13
     2108    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2109    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2110    mov es, [bp-026h]                         ; 8e 46 da
    14442111    mov bx, si                                ; 89 f3
    14452112    add bx, ax                                ; 01 c3
    14462113    mov byte [es:bx+01eh], 000h               ; 26 c6 47 1e 00
    1447     mov dx, word [bp-030h]                    ; 8b 56 d0
     2114    mov dx, word [bp-02ch]                    ; 8b 56 d4
    14482115    add dx, strict byte 00006h                ; 83 c2 06
    14492116    mov AL, strict byte 008h                  ; b0 08
    14502117    out DX, AL                                ; ee
    1451     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1452     xor ah, ah                                ; 30 e4
    1453     mov dx, strict word 00018h                ; ba 18 00
    1454     imul dx                                   ; f7 ea
    1455     mov es, [bp-022h]                         ; 8e 46 de
     2118    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2119    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2120    mov es, [bp-026h]                         ; 8e 46 da
    14562121    mov bx, si                                ; 89 f3
    14572122    add bx, ax                                ; 01 c3
    14582123    mov al, byte [es:bx+01eh]                 ; 26 8a 47 1e
    1459     mov byte [bp-00eh], al                    ; 88 46 f2
     2124    mov byte [bp-002h], al                    ; 88 46 fe
    14602125    cmp AL, strict byte 002h                  ; 3c 02
    1461     jne short 02166h                          ; 75 5a
     2126    jne near 022a3h                           ; 0f 85 fb 01
    14622127    mov byte [es:bx+01fh], 0ffh               ; 26 c6 47 1f ff
    14632128    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    1464     lea dx, [bp-00262h]                       ; 8d 96 9e fd
     2129    lea dx, [bp-0025ah]                       ; 8d 96 a6 fd
    14652130    mov word [es:si+004h], dx                 ; 26 89 54 04
    14662131    mov [es:si+006h], ss                      ; 26 8c 54 06
    1467     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2132    mov al, byte [bp-016h]                    ; 8a 46 ea
    14682133    mov byte [es:si+008h], al                 ; 26 88 44 08
    14692134    mov cx, strict word 00001h                ; b9 01 00
     
    14712136    mov ax, si                                ; 89 f0
    14722137    mov dx, es                                ; 8c c2
    1473     call 01d11h                               ; e8 db fb
     2138    call 01cc0h                               ; e8 ee fb
    14742139    test ax, ax                               ; 85 c0
    1475     je short 02148h                           ; 74 0e
    1476     mov ax, strict word 0006ch                ; b8 6c 00
    1477     push ax                                   ; 50
    1478     mov ax, strict word 00007h                ; b8 07 00
    1479     push ax                                   ; 50
    1480     call 018fah                               ; e8 b5 f7
     2140    je short 020e1h                           ; 74 0b
     2141    push strict word 0006ch                   ; 68 6c 00
     2142    push strict byte 00007h                   ; 6a 07
     2143    call 018e9h                               ; e8 0b f8
    14812144    add sp, strict byte 00004h                ; 83 c4 04
    1482     test byte [bp-00262h], 080h               ; f6 86 9e fd 80
    1483     je short 02154h                           ; 74 05
    1484     mov ax, strict word 00001h                ; b8 01 00
    1485     jmp short 02156h                          ; eb 02
    1486     xor ax, ax                                ; 31 c0
    1487     mov byte [bp-018h], al                    ; 88 46 e8
    1488     mov al, byte [bp-00202h]                  ; 8a 86 fe fd
    1489     test al, al                               ; 84 c0
    1490     je short 02169h                           ; 74 08
    1491     mov ax, strict word 00001h                ; b8 01 00
    1492     jmp short 0216bh                          ; eb 05
    1493     jmp near 0232fh                           ; e9 c6 01
     2145    test byte [bp-0025ah], 080h               ; f6 86 a6 fd 80
     2146    db  00fh, 095h, 0c0h
     2147    ; setne al                                  ; 0f 95 c0
    14942148    xor ah, ah                                ; 30 e4
    1495     mov byte [bp-012h], al                    ; 88 46 ee
    1496     mov word [bp-032h], 00200h                ; c7 46 ce 00 02
    1497     mov ax, word [bp-00260h]                  ; 8b 86 a0 fd
    1498     mov word [bp-024h], ax                    ; 89 46 dc
    1499     mov ax, word [bp-0025ch]                  ; 8b 86 a4 fd
    1500     mov word [bp-02eh], ax                    ; 89 46 d2
    1501     mov ax, word [bp-00256h]                  ; 8b 86 aa fd
    1502     mov word [bp-028h], ax                    ; 89 46 d8
    1503     mov ax, word [bp-001eah]                  ; 8b 86 16 fe
     2149    mov byte [bp-008h], al                    ; 88 46 f8
     2150    cmp byte [bp-001fah], 000h                ; 80 be 06 fe 00
     2151    db  00fh, 095h, 0c0h
     2152    ; setne al                                  ; 0f 95 c0
     2153    xor ah, ah                                ; 30 e4
     2154    mov byte [bp-00eh], al                    ; 88 46 f2
     2155    mov word [bp-024h], 00200h                ; c7 46 dc 00 02
     2156    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
     2157    mov word [bp-01eh], ax                    ; 89 46 e2
     2158    mov ax, word [bp-00254h]                  ; 8b 86 ac fd
    15042159    mov word [bp-01ch], ax                    ; 89 46 e4
    1505     mov ax, word [bp-001e8h]                  ; 8b 86 18 fe
    1506     mov word [bp-02ch], ax                    ; 89 46 d4
     2160    mov ax, word [bp-0024eh]                  ; 8b 86 b2 fd
     2161    mov word [bp-018h], ax                    ; 89 46 e8
     2162    mov ax, word [bp-001e2h]                  ; 8b 86 1e fe
     2163    mov word [bp-020h], ax                    ; 89 46 e0
     2164    mov ax, word [bp-001e0h]                  ; 8b 86 20 fe
     2165    mov word [bp-02ah], ax                    ; 89 46 d6
    15072166    cmp ax, 00fffh                            ; 3d ff 0f
    1508     jne short 021afh                          ; 75 14
    1509     cmp word [bp-01ch], strict byte 0ffffh    ; 83 7e e4 ff
    1510     jne short 021afh                          ; 75 0e
    1511     mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    1512     mov word [bp-01ch], ax                    ; 89 46 e4
    1513     mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    1514     mov word [bp-02ch], ax                    ; 89 46 d4
    1515     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2167    jne short 0213ch                          ; 75 14
     2168    cmp word [bp-020h], strict byte 0ffffh    ; 83 7e e0 ff
     2169    jne short 0213ch                          ; 75 0e
     2170    mov ax, word [bp-00192h]                  ; 8b 86 6e fe
     2171    mov word [bp-020h], ax                    ; 89 46 e0
     2172    mov ax, word [bp-00190h]                  ; 8b 86 70 fe
     2173    mov word [bp-02ah], ax                    ; 89 46 d6
     2174    mov al, byte [bp-016h]                    ; 8a 46 ea
    15162175    cmp AL, strict byte 007h                  ; 3c 07
    1517     jnbe short 02213h                         ; 77 5d
    1518     mov bl, al                                ; 88 c3
    1519     xor bh, bh                                ; 30 ff
    1520     sal bx, 1                                 ; d1 e3
    1521     jmp word [cs:bx+01f69h]                   ; 2e ff a7 69 1f
     2176    jnbe short 021a1h                         ; 77 5e
     2177    movzx bx, al                              ; 0f b6 d8
     2178    add bx, bx                                ; 01 db
     2179    jmp word [cs:bx+01f13h]                   ; 2e ff a7 13 1f
    15222180    mov BL, strict byte 01eh                  ; b3 1e
    15232181    mov al, bl                                ; 88 d8
     
    15252183    ; inc al                                    ; fe c0
    15262184    xor ah, ah                                ; 30 e4
    1527     call 0165ch                               ; e8 90 f4
    1528     mov dh, al                                ; 88 c6
    1529     xor dl, dl                                ; 30 d2
    1530     mov al, bl                                ; 88 d8
    1531     xor ah, ah                                ; 30 e4
    1532     call 0165ch                               ; e8 85 f4
     2185    call 0165ch                               ; e8 04 f5
    15332186    xor ah, ah                                ; 30 e4
    15342187    mov di, ax                                ; 89 c7
    1535     add di, dx                                ; 01 d7
     2188    sal di, 008h                              ; c1 e7 08
     2189    movzx ax, bl                              ; 0f b6 c3
     2190    call 0165ch                               ; e8 f7 f4
     2191    xor ah, ah                                ; 30 e4
     2192    add di, ax                                ; 01 c7
    15362193    mov al, bl                                ; 88 d8
    15372194    add AL, strict byte 002h                  ; 04 02
    1538     call 0165ch                               ; e8 78 f4
    15392195    xor ah, ah                                ; 30 e4
    1540     mov word [bp-02ah], ax                    ; 89 46 d6
     2196    call 0165ch                               ; e8 ea f4
     2197    movzx dx, al                              ; 0f b6 d0
    15412198    mov al, bl                                ; 88 d8
    15422199    add AL, strict byte 007h                  ; 04 07
    1543     call 0165ch                               ; e8 6c f4
    15442200    xor ah, ah                                ; 30 e4
    1545     mov word [bp-020h], ax                    ; 89 46 e0
    1546     jmp short 0221bh                          ; eb 24
     2201    call 0165ch                               ; e8 de f4
     2202    xor ah, ah                                ; 30 e4
     2203    mov word [bp-01ah], ax                    ; 89 46 e6
     2204    jmp short 021a8h                          ; eb 23
    15472205    mov BL, strict byte 026h                  ; b3 26
    1548     jmp short 021c3h                          ; eb c8
     2206    jmp short 0214fh                          ; eb c6
    15492207    mov BL, strict byte 067h                  ; b3 67
    1550     jmp short 021c3h                          ; eb c4
     2208    jmp short 0214fh                          ; eb c2
    15512209    mov BL, strict byte 070h                  ; b3 70
    1552     jmp short 021c3h                          ; eb c0
     2210    jmp short 0214fh                          ; eb be
    15532211    mov BL, strict byte 040h                  ; b3 40
    1554     jmp short 021c3h                          ; eb bc
     2212    jmp short 0214fh                          ; eb ba
    15552213    mov BL, strict byte 048h                  ; b3 48
    1556     jmp short 021c3h                          ; eb b8
     2214    jmp short 0214fh                          ; eb b6
    15572215    mov BL, strict byte 050h                  ; b3 50
    1558     jmp short 021c3h                          ; eb b4
     2216    jmp short 0214fh                          ; eb b2
    15592217    mov BL, strict byte 058h                  ; b3 58
    1560     jmp short 021c3h                          ; eb b0
     2218    jmp short 0214fh                          ; eb ae
    15612219    xor di, di                                ; 31 ff
    1562     mov word [bp-02ah], di                    ; 89 7e d6
    1563     mov word [bp-020h], di                    ; 89 7e e0
    1564     mov bx, 00c16h                            ; bb 16 0c
     2220    xor dx, dx                                ; 31 d2
     2221    mov word [bp-01ah], di                    ; 89 7e e6
     2222    mov bx, 00c08h                            ; bb 08 0c
    15652223    mov cx, ds                                ; 8c d9
    15662224    mov ax, strict word 00004h                ; b8 04 00
    1567     call 018bdh                               ; e8 97 f6
    1568     push word [bp-020h]                       ; ff 76 e0
    1569     push word [bp-02ah]                       ; ff 76 d6
     2225    call 018aeh                               ; e8 fb f6
     2226    push word [bp-01ah]                       ; ff 76 e6
     2227    push dx                                   ; 52
    15702228    push di                                   ; 57
    1571     push word [bp-028h]                       ; ff 76 d8
    1572     push word [bp-02eh]                       ; ff 76 d2
    1573     push word [bp-024h]                       ; ff 76 dc
    1574     mov al, byte [bp-00ah]                    ; 8a 46 f6
    1575     xor ah, ah                                ; 30 e4
     2229    push word [bp-018h]                       ; ff 76 e8
     2230    push dword [bp-01eh]                      ; 66 ff 76 e2
     2231    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    15762232    push ax                                   ; 50
    1577     mov al, byte [bp-010h]                    ; 8a 46 f0
     2233    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    15782234    push ax                                   ; 50
    1579     mov ax, 00095h                            ; b8 95 00
    1580     push ax                                   ; 50
    1581     mov ax, strict word 00004h                ; b8 04 00
    1582     push ax                                   ; 50
    1583     call 018fah                               ; e8 af f6
     2235    push 00095h                               ; 68 95 00
     2236    push strict byte 00004h                   ; 6a 04
     2237    call 018e9h                               ; e8 18 f7
    15842238    add sp, strict byte 00014h                ; 83 c4 14
    1585     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1586     xor ah, ah                                ; 30 e4
    1587     mov dx, strict word 00018h                ; ba 18 00
    1588     imul dx                                   ; f7 ea
    1589     mov es, [bp-022h]                         ; 8e 46 de
     2239    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2240    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2241    mov es, [bp-026h]                         ; 8e 46 da
    15902242    mov bx, si                                ; 89 f3
    15912243    add bx, ax                                ; 01 c3
    15922244    mov byte [es:bx+01fh], 0ffh               ; 26 c6 47 1f ff
     2245    mov al, byte [bp-008h]                    ; 8a 46 f8
     2246    mov byte [es:bx+020h], al                 ; 26 88 47 20
     2247    mov al, byte [bp-00eh]                    ; 8a 46 f2
     2248    mov byte [es:bx+022h], al                 ; 26 88 47 22
     2249    mov ax, word [bp-024h]                    ; 8b 46 dc
     2250    mov word [es:bx+024h], ax                 ; 26 89 47 24
     2251    mov ax, word [bp-01ch]                    ; 8b 46 e4
     2252    mov word [es:bx+02ch], ax                 ; 26 89 47 2c
     2253    mov ax, word [bp-01eh]                    ; 8b 46 e2
     2254    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     2255    mov ax, word [bp-018h]                    ; 8b 46 e8
     2256    mov word [es:bx+030h], ax                 ; 26 89 47 30
     2257    mov ax, word [bp-020h]                    ; 8b 46 e0
     2258    mov word [es:bx+032h], ax                 ; 26 89 47 32
     2259    mov ax, word [bp-02ah]                    ; 8b 46 d6
     2260    mov word [es:bx+034h], ax                 ; 26 89 47 34
     2261    mov word [es:bx+026h], dx                 ; 26 89 57 26
     2262    mov word [es:bx+028h], di                 ; 26 89 7f 28
     2263    mov ax, word [bp-01ah]                    ; 8b 46 e6
     2264    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
     2265    mov al, byte [bp-016h]                    ; 8a 46 ea
     2266    cmp AL, strict byte 002h                  ; 3c 02
     2267    jnc short 0228fh                          ; 73 5a
     2268    test al, al                               ; 84 c0
     2269    jne short 0223eh                          ; 75 05
     2270    mov bx, strict word 0003dh                ; bb 3d 00
     2271    jmp short 02241h                          ; eb 03
     2272    mov bx, strict word 0004dh                ; bb 4d 00
     2273    mov cx, word [bp-022h]                    ; 8b 4e de
     2274    mov es, cx                                ; 8e c1
     2275    mov word [es:bx], di                      ; 26 89 3f
     2276    mov byte [es:bx+002h], dl                 ; 26 88 57 02
     2277    mov byte [es:bx+003h], 0a0h               ; 26 c6 47 03 a0
    15932278    mov al, byte [bp-018h]                    ; 8a 46 e8
    1594     mov byte [es:bx+020h], al                 ; 26 88 47 20
    1595     mov al, byte [bp-012h]                    ; 8a 46 ee
    1596     mov byte [es:bx+022h], al                 ; 26 88 47 22
    1597     mov ax, word [bp-032h]                    ; 8b 46 ce
    1598     mov word [es:bx+024h], ax                 ; 26 89 47 24
    1599     mov ax, word [bp-02eh]                    ; 8b 46 d2
    1600     mov word [es:bx+02ch], ax                 ; 26 89 47 2c
    1601     mov ax, word [bp-024h]                    ; 8b 46 dc
    1602     mov word [es:bx+02eh], ax                 ; 26 89 47 2e
    1603     mov ax, word [bp-028h]                    ; 8b 46 d8
    1604     mov word [es:bx+030h], ax                 ; 26 89 47 30
    1605     mov ax, word [bp-01ch]                    ; 8b 46 e4
    1606     mov word [es:bx+032h], ax                 ; 26 89 47 32
    1607     mov ax, word [bp-02ch]                    ; 8b 46 d4
    1608     mov word [es:bx+034h], ax                 ; 26 89 47 34
    1609     mov ax, word [bp-02ah]                    ; 8b 46 d6
    1610     mov word [es:bx+026h], ax                 ; 26 89 47 26
    1611     mov word [es:bx+028h], di                 ; 26 89 7f 28
    1612     mov ax, word [bp-020h]                    ; 8b 46 e0
    1613     mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1614     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1615     cmp AL, strict byte 002h                  ; 3c 02
    1616     jnc short 0231ah                          ; 73 65
    1617     test al, al                               ; 84 c0
    1618     jne short 022beh                          ; 75 05
    1619     mov bx, strict word 0003dh                ; bb 3d 00
    1620     jmp short 022c1h                          ; eb 03
    1621     mov bx, strict word 0004dh                ; bb 4d 00
     2279    mov byte [es:bx+004h], al                 ; 26 88 47 04
    16222280    mov ax, word [bp-01eh]                    ; 8b 46 e2
    1623     mov word [bp-026h], ax                    ; 89 46 da
     2281    mov word [es:bx+009h], ax                 ; 26 89 47 09
     2282    mov al, byte [bp-01ch]                    ; 8a 46 e4
     2283    mov byte [es:bx+00bh], al                 ; 26 88 47 0b
     2284    mov al, byte [bp-018h]                    ; 8a 46 e8
     2285    mov byte [es:bx+00eh], al                 ; 26 88 47 0e
     2286    xor al, al                                ; 30 c0
     2287    xor ah, ah                                ; 30 e4
     2288    jmp short 02279h                          ; eb 05
     2289    cmp ah, 00fh                              ; 80 fc 0f
     2290    jnc short 02287h                          ; 73 0e
     2291    movzx di, ah                              ; 0f b6 fc
     2292    mov es, cx                                ; 8e c1
     2293    add di, bx                                ; 01 df
     2294    add al, byte [es:di]                      ; 26 02 05
     2295    db  0feh, 0c4h
     2296    ; inc ah                                    ; fe c4
     2297    jmp short 02274h                          ; eb ed
     2298    neg al                                    ; f6 d8
     2299    mov es, cx                                ; 8e c1
     2300    mov byte [es:bx+00fh], al                 ; 26 88 47 0f
     2301    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
    16242302    mov es, [bp-026h]                         ; 8e 46 da
    1625     mov word [es:bx], di                      ; 26 89 3f
    1626     mov al, byte [bp-02ah]                    ; 8a 46 d6
    1627     mov byte [es:bx+002h], al                 ; 26 88 47 02
    1628     mov byte [es:bx+003h], 0a0h               ; 26 c6 47 03 a0
    1629     mov al, byte [bp-028h]                    ; 8a 46 d8
    1630     mov byte [es:bx+004h], al                 ; 26 88 47 04
    1631     mov ax, word [bp-024h]                    ; 8b 46 dc
    1632     mov word [es:bx+009h], ax                 ; 26 89 47 09
    1633     mov al, byte [bp-02eh]                    ; 8a 46 d2
    1634     mov byte [es:bx+00bh], al                 ; 26 88 47 0b
    1635     mov al, byte [bp-028h]                    ; 8a 46 d8
    1636     mov byte [es:bx+00eh], al                 ; 26 88 47 0e
    1637     xor cl, cl                                ; 30 c9
    1638     xor al, al                                ; 30 c0
    1639     jmp short 022ffh                          ; eb 04
    1640     cmp AL, strict byte 00fh                  ; 3c 0f
    1641     jnc short 02311h                          ; 73 12
    1642     mov dl, al                                ; 88 c2
    1643     xor dh, dh                                ; 30 f6
    1644     mov es, [bp-026h]                         ; 8e 46 da
    1645     mov di, bx                                ; 89 df
    1646     add di, dx                                ; 01 d7
    1647     add cl, byte [es:di]                      ; 26 02 0d
    1648     db  0feh, 0c0h
    1649     ; inc al                                    ; fe c0
    1650     jmp short 022fbh                          ; eb ea
    1651     neg cl                                    ; f6 d9
    1652     mov es, [bp-026h]                         ; 8e 46 da
    1653     mov byte [es:bx+00fh], cl                 ; 26 88 4f 0f
    1654     mov bl, byte [bp-014h]                    ; 8a 5e ec
    1655     xor bh, bh                                ; 30 ff
    1656     mov es, [bp-022h]                         ; 8e 46 de
    16572303    add bx, si                                ; 01 f3
    1658     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2304    mov al, byte [bp-016h]                    ; 8a 46 ea
    16592305    mov byte [es:bx+0019fh], al               ; 26 88 87 9f 01
    16602306    inc byte [bp-014h]                        ; fe 46 ec
    1661     cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    1662     jne short 02397h                          ; 75 62
    1663     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1664     xor ah, ah                                ; 30 e4
    1665     mov dx, strict word 00018h                ; ba 18 00
    1666     imul dx                                   ; f7 ea
    1667     mov es, [bp-022h]                         ; 8e 46 de
     2307    cmp byte [bp-002h], 003h                  ; 80 7e fe 03
     2308    jne near 0233eh                           ; 0f 85 93 00
     2309    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2310    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2311    mov es, [bp-026h]                         ; 8e 46 da
    16682312    mov bx, si                                ; 89 f3
    16692313    add bx, ax                                ; 01 c3
    16702314    mov byte [es:bx+01fh], 005h               ; 26 c6 47 1f 05
    16712315    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    1672     lea dx, [bp-00262h]                       ; 8d 96 9e fd
     2316    lea dx, [bp-0025ah]                       ; 8d 96 a6 fd
    16732317    mov word [es:si+004h], dx                 ; 26 89 54 04
    16742318    mov [es:si+006h], ss                      ; 26 8c 54 06
    1675     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2319    mov al, byte [bp-016h]                    ; 8a 46 ea
    16762320    mov byte [es:si+008h], al                 ; 26 88 44 08
    16772321    mov cx, strict word 00001h                ; b9 01 00
     
    16792323    mov ax, si                                ; 89 f0
    16802324    mov dx, es                                ; 8c c2
    1681     call 01d11h                               ; e8 a1 f9
     2325    call 01cc0h                               ; e8 dd f9
    16822326    test ax, ax                               ; 85 c0
    1683     je short 02382h                           ; 74 0e
    1684     mov ax, 000bch                            ; b8 bc 00
    1685     push ax                                   ; 50
    1686     mov ax, strict word 00007h                ; b8 07 00
    1687     push ax                                   ; 50
    1688     call 018fah                               ; e8 7b f5
     2327    je short 022f2h                           ; 74 0b
     2328    push 000bch                               ; 68 bc 00
     2329    push strict byte 00007h                   ; 6a 07
     2330    call 018e9h                               ; e8 fa f5
    16892331    add sp, strict byte 00004h                ; 83 c4 04
    1690     mov al, byte [bp-00261h]                  ; 8a 86 9f fd
    1691     and AL, strict byte 01fh                  ; 24 1f
    1692     mov byte [bp-016h], al                    ; 88 46 ea
    1693     test byte [bp-00262h], 080h               ; f6 86 9e fd 80
    1694     je short 02399h                           ; 74 07
    1695     mov ax, strict word 00001h                ; b8 01 00
    1696     jmp short 0239bh                          ; eb 04
    1697     jmp short 023e7h                          ; eb 4e
    1698     xor ax, ax                                ; 31 c0
    1699     mov byte [bp-004h], al                    ; 88 46 fc
    1700     cmp byte [bp-00202h], 000h                ; 80 be fe fd 00
    1701     je short 023aah                           ; 74 05
    1702     mov cx, strict word 00001h                ; b9 01 00
    1703     jmp short 023ach                          ; eb 02
    1704     xor cx, cx                                ; 31 c9
    1705     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2332    mov dl, byte [bp-00259h]                  ; 8a 96 a7 fd
     2333    and dl, 01fh                              ; 80 e2 1f
     2334    test byte [bp-0025ah], 080h               ; f6 86 a6 fd 80
     2335    db  00fh, 095h, 0c0h
     2336    ; setne al                                  ; 0f 95 c0
    17062337    xor ah, ah                                ; 30 e4
    1707     mov dx, strict word 00018h                ; ba 18 00
    1708     imul dx                                   ; f7 ea
    1709     mov es, [bp-022h]                         ; 8e 46 de
    1710     mov bx, si                                ; 89 f3
    1711     add bx, ax                                ; 01 c3
     2338    mov cx, ax                                ; 89 c1
     2339    cmp byte [bp-001fah], 000h                ; 80 be 06 fe 00
     2340    db  00fh, 095h, 0c0h
     2341    ; setne al                                  ; 0f 95 c0
     2342    xor ah, ah                                ; 30 e4
     2343    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     2344    imul bx, bx, strict byte 00018h           ; 6b db 18
     2345    mov es, [bp-026h]                         ; 8e 46 da
     2346    add bx, si                                ; 01 f3
     2347    mov byte [es:bx+01fh], dl                 ; 26 88 57 1f
     2348    mov byte [es:bx+020h], cl                 ; 26 88 4f 20
     2349    mov byte [es:bx+022h], al                 ; 26 88 47 22
     2350    mov word [es:bx+024h], 00800h             ; 26 c7 47 24 00 08
     2351    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     2352    add bx, si                                ; 01 f3
    17122353    mov al, byte [bp-016h]                    ; 8a 46 ea
    1713     mov byte [es:bx+01fh], al                 ; 26 88 47 1f
    1714     mov al, byte [bp-004h]                    ; 8a 46 fc
    1715     mov byte [es:bx+020h], al                 ; 26 88 47 20
    1716     mov byte [es:bx+022h], cl                 ; 26 88 4f 22
    1717     mov word [es:bx+024h], 00800h             ; 26 c7 47 24 00 08
    1718     mov bl, byte [bp-008h]                    ; 8a 5e f8
    1719     xor bh, bh                                ; 30 ff
    1720     add bx, si                                ; 01 f3
    1721     mov al, byte [bp-00ch]                    ; 8a 46 f4
    17222354    mov byte [es:bx+001b0h], al               ; 26 88 87 b0 01
    1723     inc byte [bp-008h]                        ; fe 46 f8
    1724     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2355    inc byte [bp-006h]                        ; fe 46 fa
     2356    mov al, byte [bp-002h]                    ; 8a 46 fe
    17252357    cmp AL, strict byte 003h                  ; 3c 03
    1726     je short 0241ch                           ; 74 2e
     2358    je short 02372h                           ; 74 2d
    17272359    cmp AL, strict byte 002h                  ; 3c 02
    1728     jne short 0245dh                          ; 75 6b
    1729     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1730     xor ah, ah                                ; 30 e4
    1731     mov dx, strict word 00018h                ; ba 18 00
    1732     imul dx                                   ; f7 ea
    1733     mov es, [bp-022h]                         ; 8e 46 de
     2360    jne near 023d7h                           ; 0f 85 8c 00
     2361    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2362    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2363    mov es, [bp-026h]                         ; 8e 46 da
    17342364    mov bx, si                                ; 89 f3
    17352365    add bx, ax                                ; 01 c3
    17362366    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
    1737     mov word [bp-038h], ax                    ; 89 46 c8
     2367    mov word [bp-030h], ax                    ; 89 46 d0
    17382368    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    1739     mov word [bp-036h], ax                    ; 89 46 ca
     2369    mov word [bp-02eh], ax                    ; 89 46 d2
    17402370    mov cx, strict word 0000bh                ; b9 0b 00
    1741     shr word [bp-036h], 1                     ; d1 6e ca
    1742     rcr word [bp-038h], 1                     ; d1 5e c8
    1743     loop 02414h                               ; e2 f8
    1744     mov ah, byte [bp-001c1h]                  ; 8a a6 3f fe
    1745     mov al, byte [bp-001c2h]                  ; 8a 86 3e fe
    1746     mov byte [bp-006h], 00fh                  ; c6 46 fa 0f
    1747     jmp short 02433h                          ; eb 09
    1748     dec byte [bp-006h]                        ; fe 4e fa
    1749     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    1750     jbe short 0243fh                          ; 76 0c
    1751     mov cl, byte [bp-006h]                    ; 8a 4e fa
    1752     mov dx, strict word 00001h                ; ba 01 00
    1753     sal dx, CL                                ; d3 e2
    1754     test ax, dx                               ; 85 d0
    1755     je short 0242ah                           ; 74 eb
     2371    shr word [bp-02eh], 1                     ; d1 6e d2
     2372    rcr word [bp-030h], 1                     ; d1 5e d0
     2373    loop 0236ah                               ; e2 f8
     2374    movzx dx, byte [bp-001b9h]                ; 0f b6 96 47 fe
     2375    sal dx, 008h                              ; c1 e2 08
     2376    movzx ax, byte [bp-001bah]                ; 0f b6 86 46 fe
     2377    or dx, ax                                 ; 09 c2
     2378    mov byte [bp-010h], 00fh                  ; c6 46 f0 0f
     2379    jmp short 02390h                          ; eb 09
     2380    dec byte [bp-010h]                        ; fe 4e f0
     2381    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2382    jbe short 0239dh                          ; 76 0d
     2383    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
     2384    mov ax, strict word 00001h                ; b8 01 00
     2385    sal ax, CL                                ; d3 e0
     2386    test dx, ax                               ; 85 c2
     2387    je short 02387h                           ; 74 ea
    17562388    xor bx, bx                                ; 31 db
    1757     jmp short 02448h                          ; eb 05
     2389    jmp short 023a6h                          ; eb 05
    17582390    cmp bx, strict byte 00014h                ; 83 fb 14
    1759     jnl short 0245fh                          ; 7d 17
     2391    jnl short 023bbh                          ; 7d 15
    17602392    mov di, bx                                ; 89 df
    1761     sal di, 1                                 ; d1 e7
    1762     mov al, byte [bp+di-0022bh]               ; 8a 83 d5 fd
    1763     mov byte [bp+di-062h], al                 ; 88 43 9e
    1764     mov al, byte [bp+di-0022ch]               ; 8a 83 d4 fd
    1765     mov byte [bp+di-061h], al                 ; 88 43 9f
     2393    add di, bx                                ; 01 df
     2394    mov al, byte [bp+di-00223h]               ; 8a 83 dd fd
     2395    mov byte [bp+di-05ah], al                 ; 88 43 a6
     2396    mov al, byte [bp+di-00224h]               ; 8a 83 dc fd
     2397    mov byte [bp+di-059h], al                 ; 88 43 a7
    17662398    inc bx                                    ; 43
    1767     jmp short 02443h                          ; eb e6
    1768     jmp short 0247bh                          ; eb 1c
    1769     mov byte [bp-03ah], 000h                  ; c6 46 c6 00
     2399    jmp short 023a1h                          ; eb e6
     2400    mov byte [bp-032h], 000h                  ; c6 46 ce 00
    17702401    mov bx, strict word 00027h                ; bb 27 00
    1771     jmp short 0246dh                          ; eb 05
     2402    jmp short 023c9h                          ; eb 05
    17722403    dec bx                                    ; 4b
    17732404    test bx, bx                               ; 85 db
    1774     jle short 0247bh                          ; 7e 0e
     2405    jle short 023d7h                          ; 7e 0e
    17752406    mov di, bx                                ; 89 df
    1776     cmp byte [bp+di-062h], 020h               ; 80 7b 9e 20
    1777     jne short 0247bh                          ; 75 06
    1778     mov byte [bp+di-062h], 000h               ; c6 43 9e 00
    1779     jmp short 02468h                          ; eb ed
    1780     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2407    cmp byte [bp+di-05ah], 020h               ; 80 7b a6 20
     2408    jne short 023d7h                          ; 75 06
     2409    mov byte [bp+di-05ah], 000h               ; c6 43 a6 00
     2410    jmp short 023c4h                          ; eb ed
     2411    mov al, byte [bp-002h]                    ; 8a 46 fe
    17812412    cmp AL, strict byte 003h                  ; 3c 03
    1782     je short 024eah                           ; 74 68
     2413    je short 0243ch                           ; 74 5e
    17832414    cmp AL, strict byte 002h                  ; 3c 02
    1784     je short 0248dh                           ; 74 07
     2415    je short 023ebh                           ; 74 09
    17852416    cmp AL, strict byte 001h                  ; 3c 01
    1786     je short 024f5h                           ; 74 6b
    1787     jmp near 02588h                           ; e9 fb 00
    1788     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    1789     je short 02498h                           ; 74 05
     2417    je near 024a7h                            ; 0f 84 bf 00
     2418    jmp near 024c6h                           ; e9 db 00
     2419    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     2420    je short 023f6h                           ; 74 05
    17902421    mov ax, 000e7h                            ; b8 e7 00
    1791     jmp short 0249bh                          ; eb 03
     2422    jmp short 023f9h                          ; eb 03
    17922423    mov ax, 000eeh                            ; b8 ee 00
    17932424    push ax                                   ; 50
    1794     mov al, byte [bp-010h]                    ; 8a 46 f0
    1795     xor ah, ah                                ; 30 e4
     2425    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    17962426    push ax                                   ; 50
    1797     mov ax, 000f5h                            ; b8 f5 00
    1798     push ax                                   ; 50
    1799     mov ax, strict word 00002h                ; b8 02 00
    1800     push ax                                   ; 50
    1801     call 018fah                               ; e8 4d f4
     2427    push 000f5h                               ; 68 f5 00
     2428    push strict byte 00002h                   ; 6a 02
     2429    call 018e9h                               ; e8 e2 f4
    18022430    add sp, strict byte 00008h                ; 83 c4 08
    18032431    xor bx, bx                                ; 31 db
    18042432    mov di, bx                                ; 89 df
    1805     mov al, byte [bp+di-062h]                 ; 8a 43 9e
    1806     xor ah, ah                                ; 30 e4
     2433    movzx ax, byte [bp+di-05ah]               ; 0f b6 43 a6
    18072434    inc bx                                    ; 43
    18082435    test ax, ax                               ; 85 c0
    1809     je short 024cfh                           ; 74 11
     2436    je short 02425h                           ; 74 0e
    18102437    push ax                                   ; 50
    1811     mov ax, 00100h                            ; b8 00 01
     2438    push 00100h                               ; 68 00 01
     2439    push strict byte 00002h                   ; 6a 02
     2440    call 018e9h                               ; e8 c9 f4
     2441    add sp, strict byte 00006h                ; 83 c4 06
     2442    jmp short 0240ch                          ; eb e7
     2443    push dword [bp-030h]                      ; 66 ff 76 d0
     2444    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    18122445    push ax                                   ; 50
    1813     mov ax, strict word 00002h                ; b8 02 00
    1814     push ax                                   ; 50
    1815     call 018fah                               ; e8 30 f4
    1816     add sp, strict byte 00006h                ; 83 c4 06
    1817     jmp short 024b2h                          ; eb e3
    1818     push word [bp-036h]                       ; ff 76 ca
    1819     push word [bp-038h]                       ; ff 76 c8
    1820     mov al, byte [bp-006h]                    ; 8a 46 fa
    1821     push ax                                   ; 50
    1822     mov ax, 00103h                            ; b8 03 01
    1823     push ax                                   ; 50
    1824     mov ax, strict word 00002h                ; b8 02 00
    1825     push ax                                   ; 50
    1826     call 018fah                               ; e8 16 f4
     2446    push 00103h                               ; 68 03 01
     2447    push strict byte 00002h                   ; 6a 02
     2448    call 018e9h                               ; e8 b3 f4
    18272449    add sp, strict byte 0000ah                ; 83 c4 0a
    1828     jmp near 02588h                           ; e9 9e 00
    1829     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    1830     je short 024f7h                           ; 74 07
     2450    jmp near 024c6h                           ; e9 8a 00
     2451    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     2452    je short 02447h                           ; 74 05
    18312453    mov ax, 000e7h                            ; b8 e7 00
    1832     jmp short 024fah                          ; eb 05
    1833     jmp short 02565h                          ; eb 6e
     2454    jmp short 0244ah                          ; eb 03
    18342455    mov ax, 000eeh                            ; b8 ee 00
    18352456    push ax                                   ; 50
    1836     mov al, byte [bp-010h]                    ; 8a 46 f0
    1837     xor ah, ah                                ; 30 e4
     2457    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    18382458    push ax                                   ; 50
    1839     mov ax, 000f5h                            ; b8 f5 00
    1840     push ax                                   ; 50
    1841     mov ax, strict word 00002h                ; b8 02 00
    1842     push ax                                   ; 50
    1843     call 018fah                               ; e8 ee f3
     2459    push 000f5h                               ; 68 f5 00
     2460    push strict byte 00002h                   ; 6a 02
     2461    call 018e9h                               ; e8 91 f4
    18442462    add sp, strict byte 00008h                ; 83 c4 08
    18452463    xor bx, bx                                ; 31 db
    18462464    mov di, bx                                ; 89 df
    1847     mov al, byte [bp+di-062h]                 ; 8a 43 9e
    1848     xor ah, ah                                ; 30 e4
     2465    movzx ax, byte [bp+di-05ah]               ; 0f b6 43 a6
    18492466    inc bx                                    ; 43
    18502467    test ax, ax                               ; 85 c0
    1851     je short 0252eh                           ; 74 11
     2468    je short 02476h                           ; 74 0e
    18522469    push ax                                   ; 50
    1853     mov ax, 00100h                            ; b8 00 01
    1854     push ax                                   ; 50
    1855     mov ax, strict word 00002h                ; b8 02 00
    1856     push ax                                   ; 50
    1857     call 018fah                               ; e8 d1 f3
     2470    push 00100h                               ; 68 00 01
     2471    push strict byte 00002h                   ; 6a 02
     2472    call 018e9h                               ; e8 78 f4
    18582473    add sp, strict byte 00006h                ; 83 c4 06
    1859     jmp short 02511h                          ; eb e3
    1860     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1861     mov dx, strict word 00018h                ; ba 18 00
    1862     imul dx                                   ; f7 ea
    1863     mov es, [bp-022h]                         ; 8e 46 de
     2474    jmp short 0245dh                          ; eb e7
     2475    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2476    imul ax, ax, strict byte 00018h           ; 6b c0 18
     2477    mov es, [bp-026h]                         ; 8e 46 da
    18642478    mov bx, si                                ; 89 f3
    18652479    add bx, ax                                ; 01 c3
    18662480    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    1867     jne short 0254fh                          ; 75 0b
    1868     mov al, byte [bp-006h]                    ; 8a 46 fa
    1869     xor ah, ah                                ; 30 e4
     2481    jne short 02495h                          ; 75 0a
     2482    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    18702483    push ax                                   ; 50
    1871     mov ax, 00123h                            ; b8 23 01
    1872     jmp short 02558h                          ; eb 09
    1873     mov al, byte [bp-006h]                    ; 8a 46 fa
    1874     xor ah, ah                                ; 30 e4
     2484    push 00123h                               ; 68 23 01
     2485    jmp short 0249dh                          ; eb 08
     2486    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    18752487    push ax                                   ; 50
    1876     mov ax, 0013dh                            ; b8 3d 01
    1877     push ax                                   ; 50
    1878     mov ax, strict word 00002h                ; b8 02 00
    1879     push ax                                   ; 50
    1880     call 018fah                               ; e8 9a f3
     2488    push 0013dh                               ; 68 3d 01
     2489    push strict byte 00002h                   ; 6a 02
     2490    call 018e9h                               ; e8 47 f4
    18812491    add sp, strict byte 00006h                ; 83 c4 06
    1882     jmp short 02588h                          ; eb 23
    1883     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    1884     je short 02570h                           ; 74 05
     2492    jmp short 024c6h                          ; eb 1f
     2493    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     2494    je short 024b2h                           ; 74 05
    18852495    mov ax, 000e7h                            ; b8 e7 00
    1886     jmp short 02573h                          ; eb 03
     2496    jmp short 024b5h                          ; eb 03
    18872497    mov ax, 000eeh                            ; b8 ee 00
    18882498    push ax                                   ; 50
    1889     mov al, byte [bp-010h]                    ; 8a 46 f0
    1890     xor ah, ah                                ; 30 e4
     2499    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    18912500    push ax                                   ; 50
    1892     mov ax, 0014fh                            ; b8 4f 01
    1893     push ax                                   ; 50
    1894     mov ax, strict word 00002h                ; b8 02 00
    1895     push ax                                   ; 50
    1896     call 018fah                               ; e8 75 f3
     2501    push 0014fh                               ; 68 4f 01
     2502    push strict byte 00002h                   ; 6a 02
     2503    call 018e9h                               ; e8 26 f4
    18972504    add sp, strict byte 00008h                ; 83 c4 08
    1898     inc byte [bp-00ch]                        ; fe 46 f4
    1899     cmp byte [bp-00ch], 008h                  ; 80 7e f4 08
    1900     jnc short 025e7h                          ; 73 56
    1901     mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1902     xor bh, bh                                ; 30 ff
     2505    inc byte [bp-016h]                        ; fe 46 ea
     2506    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
     2507    jnc short 02520h                          ; 73 51
     2508    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    19032509    mov ax, bx                                ; 89 d8
    19042510    cwd                                       ; 99
     
    19072513    sar ax, 1                                 ; d1 f8
    19082514    mov cx, ax                                ; 89 c1
    1909     mov byte [bp-010h], al                    ; 88 46 f0
     2515    mov byte [bp-012h], al                    ; 88 46 ee
    19102516    mov ax, bx                                ; 89 d8
    19112517    cwd                                       ; 99
    19122518    mov bx, strict word 00002h                ; bb 02 00
    19132519    idiv bx                                   ; f7 fb
    1914     mov word [bp-034h], dx                    ; 89 56 cc
    1915     mov al, byte [bp-034h]                    ; 8a 46 cc
    1916     mov byte [bp-00ah], al                    ; 88 46 f6
    1917     mov al, cl                                ; 88 c8
    1918     xor ah, ah                                ; 30 e4
    1919     mov dx, strict word 00006h                ; ba 06 00
    1920     imul dx                                   ; f7 ea
    1921     mov es, [bp-022h]                         ; 8e 46 de
     2520    mov word [bp-028h], dx                    ; 89 56 d8
     2521    mov al, byte [bp-028h]                    ; 8a 46 d8
     2522    mov byte [bp-004h], al                    ; 88 46 fc
     2523    movzx ax, cl                              ; 0f b6 c1
     2524    imul ax, ax, strict byte 00006h           ; 6b c0 06
     2525    mov es, [bp-026h]                         ; 8e 46 da
    19222526    mov di, si                                ; 89 f7
    19232527    add di, ax                                ; 01 c7
    19242528    mov bx, word [es:di+001c2h]               ; 26 8b 9d c2 01
    19252529    mov ax, word [es:di+001c4h]               ; 26 8b 85 c4 01
    1926     mov word [bp-030h], ax                    ; 89 46 d0
     2530    mov word [bp-02ch], ax                    ; 89 46 d4
    19272531    mov dx, ax                                ; 89 c2
    19282532    add dx, strict byte 00006h                ; 83 c2 06
    19292533    mov AL, strict byte 00ah                  ; b0 0a
    19302534    out DX, AL                                ; ee
    1931     cmp byte [bp-034h], 000h                  ; 80 7e cc 00
    1932     jne short 025e1h                          ; 75 03
    1933     jmp near 01fdah                           ; e9 f9 f9
     2535    cmp byte [bp-028h], 000h                  ; 80 7e d8 00
     2536    je near 01f79h                            ; 0f 84 5f fa
    19342537    mov ax, 000b0h                            ; b8 b0 00
    1935     jmp near 01fddh                           ; e9 f6 f9
     2538    jmp near 01f7ch                           ; e9 5c fa
    19362539    mov al, byte [bp-014h]                    ; 8a 46 ec
    1937     mov es, [bp-022h]                         ; 8e 46 de
     2540    mov es, [bp-026h]                         ; 8e 46 da
    19382541    mov byte [es:si+0019eh], al               ; 26 88 84 9e 01
    1939     mov al, byte [bp-008h]                    ; 8a 46 f8
     2542    mov al, byte [bp-006h]                    ; 8a 46 fa
    19402543    mov byte [es:si+001afh], al               ; 26 88 84 af 01
    1941     mov bl, byte [bp-014h]                    ; 8a 5e ec
    1942     xor bh, bh                                ; 30 ff
     2544    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
    19432545    mov dx, strict word 00075h                ; ba 75 00
    19442546    mov ax, strict word 00040h                ; b8 40 00
    1945     call 0160eh                               ; e8 06 f0
    1946     mov sp, bp                                ; 89 ec
    1947     pop bp                                    ; 5d
     2547    call 0160eh                               ; e8 ce f0
     2548    leave                                     ; c9
    19482549    pop di                                    ; 5f
    19492550    pop si                                    ; 5e
    19502551    retn                                      ; c3
    1951 ata_cmd_data_out_:                           ; 0xf260e LB 0x21d
     2552ata_cmd_data_out_:                           ; 0xf2544 LB 0x215
    19522553    push si                                   ; 56
    19532554    push di                                   ; 57
    1954     push bp                                   ; 55
    1955     mov bp, sp                                ; 89 e5
    1956     sub sp, strict byte 0001ah                ; 83 ec 1a
     2555    enter 0001ah, 000h                        ; c8 1a 00 00
    19572556    mov di, ax                                ; 89 c7
    1958     mov word [bp-016h], dx                    ; 89 56 ea
    1959     mov word [bp-012h], bx                    ; 89 5e ee
    1960     mov word [bp-014h], cx                    ; 89 4e ec
     2557    mov word [bp-006h], dx                    ; 89 56 fa
     2558    mov word [bp-016h], bx                    ; 89 5e ea
     2559    mov word [bp-00ah], cx                    ; 89 4e f6
    19612560    mov es, dx                                ; 8e c2
    1962     mov cl, byte [es:di+008h]                 ; 26 8a 4d 08
    1963     xor ch, ch                                ; 30 ed
    1964     mov ax, cx                                ; 89 c8
    1965     mov dx, cx                                ; 89 ca
     2561    movzx ax, byte [es:di+008h]               ; 26 0f b6 45 08
     2562    mov dx, ax                                ; 89 c2
    19662563    shr dx, 1                                 ; d1 ea
    1967     and AL, strict byte 001h                  ; 24 01
    1968     mov byte [bp-004h], al                    ; 88 46 fc
    1969     mov al, dl                                ; 88 d0
    1970     mov dx, strict word 00006h                ; ba 06 00
    1971     imul dx                                   ; f7 ea
    1972     mov si, di                                ; 89 fe
    1973     add si, ax                                ; 01 c6
     2564    mov dh, al                                ; 88 c6
     2565    and dh, 001h                              ; 80 e6 01
     2566    mov byte [bp-002h], dh                    ; 88 76 fe
     2567    movzx si, dl                              ; 0f b6 f2
     2568    imul si, si, strict byte 00006h           ; 6b f6 06
     2569    add si, di                                ; 01 fe
    19742570    mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    1975     mov ax, word [es:si+001c4h]               ; 26 8b 84 c4 01
    1976     mov word [bp-006h], ax                    ; 89 46 fa
    1977     mov ax, cx                                ; 89 c8
    1978     mov dx, strict word 00018h                ; ba 18 00
    1979     imul dx                                   ; f7 ea
     2571    mov dx, word [es:si+001c4h]               ; 26 8b 94 c4 01
     2572    mov word [bp-008h], dx                    ; 89 56 f8
     2573    imul ax, ax, strict byte 00018h           ; 6b c0 18
    19802574    mov si, di                                ; 89 fe
    19812575    add si, ax                                ; 01 c6
    19822576    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    1983     mov byte [bp-002h], al                    ; 88 46 fe
     2577    mov byte [bp-004h], al                    ; 88 46 fc
    19842578    cmp AL, strict byte 001h                  ; 3c 01
    1985     jne short 02669h                          ; 75 07
    1986     mov word [bp-00ch], 00080h                ; c7 46 f4 80 00
    1987     jmp short 0266eh                          ; eb 05
    1988     mov word [bp-00ch], 00100h                ; c7 46 f4 00 01
     2579    jne short 02596h                          ; 75 07
     2580    mov word [bp-00eh], 00080h                ; c7 46 f2 80 00
     2581    jmp short 0259bh                          ; eb 05
     2582    mov word [bp-00eh], 00100h                ; c7 46 f2 00 01
    19892583    lea dx, [bx+007h]                         ; 8d 57 07
    19902584    in AL, DX                                 ; ec
     
    19922586    ; sub ah, ah                                ; 2a e4
    19932587    test AL, strict byte 080h                 ; a8 80
    1994     je short 02687h                           ; 74 0f
    1995     mov dx, word [bp-006h]                    ; 8b 56 fa
     2588    je short 025b4h                           ; 74 0f
     2589    mov dx, word [bp-008h]                    ; 8b 56 f8
    19962590    add dx, strict byte 00006h                ; 83 c2 06
    19972591    mov AL, strict byte 008h                  ; b0 08
    19982592    out DX, AL                                ; ee
    19992593    mov dx, strict word 00001h                ; ba 01 00
    2000     jmp near 02823h                           ; e9 9c 01
    2001     mov es, [bp-016h]                         ; 8e 46 ea
     2594    jmp near 02753h                           ; e9 9f 01
     2595    mov es, [bp-006h]                         ; 8e 46 fa
    20022596    mov ax, word [es:di]                      ; 26 8b 05
    20032597    mov word [bp-01ah], ax                    ; 89 46 e6
     
    20062600    mov si, word [es:di+004h]                 ; 26 8b 75 04
    20072601    mov ax, word [es:di+006h]                 ; 26 8b 45 06
    2008     mov word [bp-008h], ax                    ; 89 46 f8
     2602    mov word [bp-014h], ax                    ; 89 46 ec
    20092603    mov ax, word [es:di+012h]                 ; 26 8b 45 12
    2010     mov word [bp-00ah], ax                    ; 89 46 f6
     2604    mov word [bp-00ch], ax                    ; 89 46 f4
    20112605    mov ax, word [es:di+00eh]                 ; 26 8b 45 0e
     2606    mov word [bp-012h], ax                    ; 89 46 ee
     2607    mov ax, word [es:di+010h]                 ; 26 8b 45 10
    20122608    mov word [bp-010h], ax                    ; 89 46 f0
    2013     mov ax, word [es:di+010h]                 ; 26 8b 45 10
    2014     mov word [bp-00eh], ax                    ; 89 46 f2
    2015     mov ax, word [bp-00ah]                    ; 8b 46 f6
     2609    mov ax, word [bp-00ch]                    ; 8b 46 f4
    20162610    test ax, ax                               ; 85 c0
    2017     jne short 02721h                          ; 75 63
     2611    jne short 02652h                          ; 75 67
    20182612    mov dx, word [bp-01ah]                    ; 8b 56 e6
    2019     add dx, word [bp-014h]                    ; 03 56 ec
     2613    add dx, word [bp-00ah]                    ; 03 56 f6
    20202614    adc ax, word [bp-018h]                    ; 13 46 e8
    20212615    cmp ax, 01000h                            ; 3d 00 10
    2022     jnbe short 026ceh                         ; 77 02
    2023     jne short 026f5h                          ; 75 27
     2616    jnbe short 025fbh                         ; 77 02
     2617    jne short 02626h                          ; 75 2b
    20242618    mov ax, word [bp-018h]                    ; 8b 46 e8
    2025     mov al, ah                                ; 88 e0
    2026     xor ah, ah                                ; 30 e4
    2027     mov word [bp-00ah], ax                    ; 89 46 f6
    2028     mov ax, word [bp-014h]                    ; 8b 46 ec
    2029     mov al, ah                                ; 88 e0
     2619    xor al, al                                ; 30 c0
     2620    shr ax, 008h                              ; c1 e8 08
     2621    mov word [bp-00ch], ax                    ; 89 46 f4
     2622    mov ax, word [bp-00ah]                    ; 8b 46 f6
     2623    xor al, al                                ; 30 c0
     2624    shr ax, 008h                              ; c1 e8 08
    20302625    lea dx, [bx+002h]                         ; 8d 57 02
    20312626    out DX, AL                                ; ee
    20322627    lea dx, [bx+003h]                         ; 8d 57 03
    2033     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2628    mov al, byte [bp-00ch]                    ; 8a 46 f4
    20342629    out DX, AL                                ; ee
    20352630    lea dx, [bx+004h]                         ; 8d 57 04
     
    20412636    mov ax, word [bp-01ah]                    ; 8b 46 e6
    20422637    xor ah, ah                                ; 30 e4
    2043     mov word [bp-00ah], ax                    ; 89 46 f6
     2638    mov word [bp-00ch], ax                    ; 89 46 f4
    20442639    mov cx, strict word 00008h                ; b9 08 00
    20452640    shr word [bp-018h], 1                     ; d1 6e e8
    20462641    rcr word [bp-01ah], 1                     ; d1 5e e6
    2047     loop 02700h                               ; e2 f8
     2642    loop 02631h                               ; e2 f8
    20482643    mov ax, word [bp-01ah]                    ; 8b 46 e6
    2049     mov word [bp-010h], ax                    ; 89 46 f0
     2644    mov word [bp-012h], ax                    ; 89 46 ee
    20502645    mov ax, word [bp-018h]                    ; 8b 46 e8
    20512646    mov word [bp-01ah], ax                    ; 89 46 e6
     
    20532648    and ax, strict word 0000fh                ; 25 0f 00
    20542649    or AL, strict byte 040h                   ; 0c 40
    2055     mov word [bp-00eh], ax                    ; 89 46 f2
    2056     mov dx, word [bp-006h]                    ; 8b 56 fa
     2650    mov word [bp-010h], ax                    ; 89 46 f0
     2651    mov dx, word [bp-008h]                    ; 8b 56 f8
    20572652    add dx, strict byte 00006h                ; 83 c2 06
    20582653    mov AL, strict byte 00ah                  ; b0 0a
     
    20622657    out DX, AL                                ; ee
    20632658    lea dx, [bx+002h]                         ; 8d 57 02
    2064     mov al, byte [bp-014h]                    ; 8a 46 ec
     2659    mov al, byte [bp-00ah]                    ; 8a 46 f6
    20652660    out DX, AL                                ; ee
    20662661    lea dx, [bx+003h]                         ; 8d 57 03
    2067     mov al, byte [bp-00ah]                    ; 8a 46 f6
    2068     out DX, AL                                ; ee
    2069     mov ax, word [bp-010h]                    ; 8b 46 f0
     2662    mov al, byte [bp-00ch]                    ; 8a 46 f4
     2663    out DX, AL                                ; ee
     2664    mov ax, word [bp-012h]                    ; 8b 46 ee
    20702665    lea dx, [bx+004h]                         ; 8d 57 04
    20712666    out DX, AL                                ; ee
    2072     mov al, byte [bp-00fh]                    ; 8a 46 f1
     2667    shr ax, 008h                              ; c1 e8 08
    20732668    lea dx, [bx+005h]                         ; 8d 57 05
    20742669    out DX, AL                                ; ee
    2075     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2076     je short 02757h                           ; 74 05
     2670    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     2671    je short 02688h                           ; 74 05
    20772672    mov ax, 000b0h                            ; b8 b0 00
    2078     jmp short 0275ah                          ; eb 03
     2673    jmp short 0268bh                          ; eb 03
    20792674    mov ax, 000a0h                            ; b8 a0 00
    2080     mov dl, byte [bp-00eh]                    ; 8a 56 f2
    2081     xor dh, dh                                ; 30 f6
     2675    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    20822676    or ax, dx                                 ; 09 d0
    20832677    lea dx, [bx+006h]                         ; 8d 57 06
    20842678    out DX, AL                                ; ee
    20852679    lea dx, [bx+007h]                         ; 8d 57 07
    2086     mov al, byte [bp-012h]                    ; 8a 46 ee
     2680    mov al, byte [bp-016h]                    ; 8a 46 ea
    20872681    out DX, AL                                ; ee
    20882682    lea dx, [bx+007h]                         ; 8d 57 07
     
    20922686    mov dl, al                                ; 88 c2
    20932687    test AL, strict byte 080h                 ; a8 80
    2094     jne short 0276ch                          ; 75 f4
     2688    jne short 0269ch                          ; 75 f4
    20952689    test AL, strict byte 001h                 ; a8 01
    2096     je short 0278bh                           ; 74 0f
    2097     mov dx, word [bp-006h]                    ; 8b 56 fa
     2690    je short 026bbh                           ; 74 0f
     2691    mov dx, word [bp-008h]                    ; 8b 56 f8
    20982692    add dx, strict byte 00006h                ; 83 c2 06
    20992693    mov AL, strict byte 008h                  ; b0 08
    21002694    out DX, AL                                ; ee
    21012695    mov dx, strict word 00002h                ; ba 02 00
    2102     jmp near 02823h                           ; e9 98 00
     2696    jmp near 02753h                           ; e9 98 00
    21032697    test dl, 008h                             ; f6 c2 08
    2104     jne short 0279fh                          ; 75 0f
    2105     mov dx, word [bp-006h]                    ; 8b 56 fa
     2698    jne short 026cfh                          ; 75 0f
     2699    mov dx, word [bp-008h]                    ; 8b 56 f8
    21062700    add dx, strict byte 00006h                ; 83 c2 06
    21072701    mov AL, strict byte 008h                  ; b0 08
    21082702    out DX, AL                                ; ee
    21092703    mov dx, strict word 00003h                ; ba 03 00
    2110     jmp near 02823h                           ; e9 84 00
     2704    jmp near 02753h                           ; e9 84 00
    21112705    sti                                       ; fb
    21122706    cmp si, 0f800h                            ; 81 fe 00 f8
    2113     jc short 027b3h                           ; 72 0d
     2707    jc short 026e3h                           ; 72 0d
    21142708    sub si, 00800h                            ; 81 ee 00 08
    2115     mov ax, word [bp-008h]                    ; 8b 46 f8
     2709    mov ax, word [bp-014h]                    ; 8b 46 ec
    21162710    add ax, 00080h                            ; 05 80 00
    2117     mov word [bp-008h], ax                    ; 89 46 f8
    2118     cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    2119     jne short 027c7h                          ; 75 0e
     2711    mov word [bp-014h], ax                    ; 89 46 ec
     2712    cmp byte [bp-004h], 001h                  ; 80 7e fc 01
     2713    jne short 026f7h                          ; 75 0e
    21202714    mov dx, bx                                ; 89 da
    2121     mov cx, word [bp-00ch]                    ; 8b 4e f4
    2122     mov es, [bp-008h]                         ; 8e 46 f8
     2715    mov cx, word [bp-00eh]                    ; 8b 4e f2
     2716    mov es, [bp-014h]                         ; 8e 46 ec
    21232717    db  0f3h, 066h, 026h, 06fh
    21242718    ; rep es outsd                              ; f3 66 26 6f
    2125     jmp short 027d2h                          ; eb 0b
     2719    jmp short 02702h                          ; eb 0b
    21262720    mov dx, bx                                ; 89 da
    2127     mov cx, word [bp-00ch]                    ; 8b 4e f4
    2128     mov es, [bp-008h]                         ; 8e 46 f8
     2721    mov cx, word [bp-00eh]                    ; 8b 4e f2
     2722    mov es, [bp-014h]                         ; 8e 46 ec
    21292723    db  0f3h, 026h, 06fh
    21302724    ; rep es outsw                              ; f3 26 6f
    2131     mov es, [bp-016h]                         ; 8e 46 ea
     2725    mov es, [bp-006h]                         ; 8e 46 fa
    21322726    inc word [es:di+014h]                     ; 26 ff 45 14
    2133     dec word [bp-014h]                        ; ff 4e ec
     2727    dec word [bp-00ah]                        ; ff 4e f6
    21342728    lea dx, [bx+007h]                         ; 8d 57 07
    21352729    in AL, DX                                 ; ec
     
    21382732    mov dl, al                                ; 88 c2
    21392733    test AL, strict byte 080h                 ; a8 80
    2140     jne short 027dch                          ; 75 f4
    2141     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    2142     jne short 02802h                          ; 75 14
     2734    jne short 0270ch                          ; 75 f4
     2735    cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
     2736    jne short 02732h                          ; 75 14
    21432737    and AL, strict byte 0e9h                  ; 24 e9
    21442738    cmp AL, strict byte 040h                  ; 3c 40
    2145     je short 02818h                           ; 74 24
    2146     mov dx, word [bp-006h]                    ; 8b 56 fa
     2739    je short 02748h                           ; 74 24
     2740    mov dx, word [bp-008h]                    ; 8b 56 f8
    21472741    add dx, strict byte 00006h                ; 83 c2 06
    21482742    mov AL, strict byte 008h                  ; b0 08
    21492743    out DX, AL                                ; ee
    21502744    mov dx, strict word 00006h                ; ba 06 00
    2151     jmp short 02823h                          ; eb 21
     2745    jmp short 02753h                          ; eb 21
    21522746    mov al, dl                                ; 88 d0
    21532747    and AL, strict byte 0c9h                  ; 24 c9
    21542748    cmp AL, strict byte 048h                  ; 3c 48
    2155     je short 027a0h                           ; 74 96
    2156     mov dx, word [bp-006h]                    ; 8b 56 fa
     2749    je short 026d0h                           ; 74 96
     2750    mov dx, word [bp-008h]                    ; 8b 56 f8
    21572751    add dx, strict byte 00006h                ; 83 c2 06
    21582752    mov AL, strict byte 008h                  ; b0 08
    21592753    out DX, AL                                ; ee
    21602754    mov dx, strict word 00007h                ; ba 07 00
    2161     jmp short 02823h                          ; eb 0b
    2162     mov dx, word [bp-006h]                    ; 8b 56 fa
     2755    jmp short 02753h                          ; eb 0b
     2756    mov dx, word [bp-008h]                    ; 8b 56 f8
    21632757    add dx, strict byte 00006h                ; 83 c2 06
    21642758    mov AL, strict byte 008h                  ; b0 08
     
    21662760    xor dx, dx                                ; 31 d2
    21672761    mov ax, dx                                ; 89 d0
    2168     mov sp, bp                                ; 89 ec
    2169     pop bp                                    ; 5d
     2762    leave                                     ; c9
    21702763    pop di                                    ; 5f
    21712764    pop si                                    ; 5e
    21722765    retn                                      ; c3
    2173 @ata_read_sectors:                           ; 0xf282b LB 0x76
     2766@ata_read_sectors:                           ; 0xf2759 LB 0x77
    21742767    push si                                   ; 56
    21752768    push di                                   ; 57
    2176     push bp                                   ; 55
    2177     mov bp, sp                                ; 89 e5
    2178     push ax                                   ; 50
     2769    enter 00002h, 000h                        ; c8 02 00 00
    21792770    mov si, word [bp+008h]                    ; 8b 76 08
    21802771    mov es, [bp+00ah]                         ; 8e 46 0a
    2181     mov al, byte [es:si+008h]                 ; 26 8a 44 08
    2182     mov bx, word [es:si+00ah]                 ; 26 8b 5c 0a
    2183     mov CL, strict byte 009h                  ; b1 09
    2184     mov dx, bx                                ; 89 da
    2185     sal dx, CL                                ; d3 e2
    2186     mov cx, dx                                ; 89 d1
    2187     cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    2188     jne short 02872h                          ; 75 24
    2189     xor di, di                                ; 31 ff
    2190     mov dx, word [es:si]                      ; 26 8b 14
    2191     add dx, bx                                ; 01 da
    2192     mov word [bp-002h], dx                    ; 89 56 fe
    2193     adc di, word [es:si+002h]                 ; 26 13 7c 02
    2194     cmp di, 01000h                            ; 81 ff 00 10
    2195     jnbe short 02864h                         ; 77 02
    2196     jne short 02872h                          ; 75 0e
    2197     mov cx, bx                                ; 89 d9
     2772    mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
     2773    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
     2774    mov dx, cx                                ; 89 ca
     2775    sal dx, 009h                              ; c1 e2 09
     2776    mov ax, word [es:si+012h]                 ; 26 8b 44 12
     2777    test ax, ax                               ; 85 c0
     2778    je short 02787h                           ; 74 0d
     2779    movzx di, bl                              ; 0f b6 fb
     2780    imul di, di, strict byte 00018h           ; 6b ff 18
     2781    mov [bp-002h], es                         ; 8c 46 fe
     2782    add di, si                                ; 01 f7
     2783    jmp short 027b3h                          ; eb 2c
     2784    mov di, word [es:si]                      ; 26 8b 3c
     2785    add di, cx                                ; 01 cf
     2786    mov word [bp-002h], di                    ; 89 7e fe
     2787    adc ax, word [es:si+002h]                 ; 26 13 44 02
     2788    cmp ax, 01000h                            ; 3d 00 10
     2789    jnbe short 0279ah                         ; 77 02
     2790    jne short 027a6h                          ; 75 0c
    21982791    mov bx, strict word 00024h                ; bb 24 00
    21992792    mov ax, si                                ; 89 f0
    22002793    mov dx, es                                ; 8c c2
    2201     call 01d11h                               ; e8 a1 f4
    2202     jmp short 02899h                          ; eb 27
    2203     xor ah, ah                                ; 30 e4
    2204     mov di, strict word 00018h                ; bf 18 00
    2205     imul di                                   ; f7 ef
    2206     mov dx, es                                ; 8c c2
     2794    call 01cc0h                               ; e8 1c f5
     2795    jmp short 027cah                          ; eb 24
     2796    movzx ax, bl                              ; 0f b6 c3
     2797    imul ax, ax, strict byte 00018h           ; 6b c0 18
    22072798    mov [bp-002h], es                         ; 8c 46 fe
    22082799    mov di, si                                ; 89 f7
    22092800    add di, ax                                ; 01 c7
    2210     mov word [es:di+024h], cx                 ; 26 89 4d 24
    2211     mov cx, bx                                ; 89 d9
     2801    mov word [es:di+024h], dx                 ; 26 89 55 24
    22122802    mov bx, 000c4h                            ; bb c4 00
    22132803    mov ax, si                                ; 89 f0
    2214     call 01d11h                               ; e8 81 f4
     2804    mov dx, es                                ; 8c c2
     2805    call 01cc0h                               ; e8 ff f4
    22152806    mov es, [bp-002h]                         ; 8e 46 fe
    22162807    mov word [es:di+024h], 00200h             ; 26 c7 45 24 00 02
    2217     mov sp, bp                                ; 89 ec
    2218     pop bp                                    ; 5d
     2808    leave                                     ; c9
    22192809    pop di                                    ; 5f
    22202810    pop si                                    ; 5e
    22212811    retn 00004h                               ; c2 04 00
    2222 @ata_write_sectors:                          ; 0xf28a1 LB 0x3a
     2812@ata_write_sectors:                          ; 0xf27d0 LB 0x3a
    22232813    push si                                   ; 56
    22242814    push bp                                   ; 55
     
    22272817    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    22282818    cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    2229     je short 028bfh                           ; 74 0c
     2819    je short 027eeh                           ; 74 0c
    22302820    mov bx, strict word 00030h                ; bb 30 00
    22312821    mov ax, si                                ; 89 f0
    22322822    mov dx, es                                ; 8c c2
    2233     call 0260eh                               ; e8 51 fd
    2234     jmp short 028d6h                          ; eb 17
     2823    call 02544h                               ; e8 58 fd
     2824    jmp short 02805h                          ; eb 17
    22352825    xor ax, ax                                ; 31 c0
    22362826    mov dx, word [es:si]                      ; 26 8b 14
     
    22382828    adc ax, word [es:si+002h]                 ; 26 13 44 02
    22392829    cmp ax, 01000h                            ; 3d 00 10
    2240     jnbe short 028d1h                         ; 77 02
    2241     jne short 028b3h                          ; 75 e2
     2830    jnbe short 02800h                         ; 77 02
     2831    jne short 027e2h                          ; 75 e2
    22422832    mov bx, strict word 00034h                ; bb 34 00
    2243     jmp short 028b6h                          ; eb e0
     2833    jmp short 027e5h                          ; eb e0
    22442834    pop bp                                    ; 5d
    22452835    pop si                                    ; 5e
    22462836    retn 00004h                               ; c2 04 00
    2247 ata_cmd_packet_:                             ; 0xf28db LB 0x2ef
     2837ata_cmd_packet_:                             ; 0xf280a LB 0x2e3
    22482838    push si                                   ; 56
    22492839    push di                                   ; 57
    2250     push bp                                   ; 55
    2251     mov bp, sp                                ; 89 e5
    2252     sub sp, strict byte 00014h                ; 83 ec 14
     2840    enter 00014h, 000h                        ; c8 14 00 00
    22532841    push ax                                   ; 50
    22542842    mov byte [bp-004h], dl                    ; 88 56 fc
    22552843    mov di, bx                                ; 89 df
    2256     mov word [bp-010h], cx                    ; 89 4e f0
    22572844    mov dx, strict word 0000eh                ; ba 0e 00
    22582845    mov ax, strict word 00040h                ; b8 40 00
    2259     call 0161ch                               ; e8 27 ed
    2260     mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
    2261     mov word [bp-008h], ax                    ; 89 46 f8
     2846    call 0161ch                               ; e8 fd ed
     2847    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     2848    mov word [bp-00ah], ax                    ; 89 46 f6
    22622849    mov ax, word [bp-016h]                    ; 8b 46 ea
    22632850    shr ax, 1                                 ; d1 e8
    2264     mov cl, byte [bp-016h]                    ; 8a 4e ea
    2265     and cl, 001h                              ; 80 e1 01
     2851    mov ah, byte [bp-016h]                    ; 8a 66 ea
     2852    and ah, 001h                              ; 80 e4 01
     2853    mov byte [bp-002h], ah                    ; 88 66 fe
    22662854    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    2267     jne short 02931h                          ; 75 23
    2268     mov bx, 00c16h                            ; bb 16 0c
     2855    jne short 0285ah                          ; 75 1f
     2856    mov bx, 00c08h                            ; bb 08 0c
    22692857    mov cx, ds                                ; 8c d9
    22702858    mov ax, strict word 00004h                ; b8 04 00
    2271     call 018bdh                               ; e8 a4 ef
    2272     mov ax, 00169h                            ; b8 69 01
    2273     push ax                                   ; 50
    2274     mov ax, 00178h                            ; b8 78 01
    2275     push ax                                   ; 50
    2276     mov ax, strict word 00004h                ; b8 04 00
    2277     push ax                                   ; 50
    2278     call 018fah                               ; e8 d2 ef
     2859    call 018aeh                               ; e8 68 f0
     2860    push 00169h                               ; 68 69 01
     2861    push 00178h                               ; 68 78 01
     2862    push strict byte 00004h                   ; 6a 04
     2863    call 018e9h                               ; e8 98 f0
    22792864    add sp, strict byte 00006h                ; 83 c4 06
    22802865    mov dx, strict word 00001h                ; ba 01 00
    2281     jmp near 02bc0h                           ; e9 8f 02
     2866    jmp near 02ae5h                           ; e9 8b 02
    22822867    test byte [bp+008h], 001h                 ; f6 46 08 01
    2283     jne short 0292bh                          ; 75 f4
     2868    jne short 02854h                          ; 75 f4
    22842869    xor ah, ah                                ; 30 e4
    2285     mov dx, strict word 00006h                ; ba 06 00
    2286     imul dx                                   ; f7 ea
    2287     les si, [bp-00ah]                         ; c4 76 f6
     2870    imul ax, ax, strict byte 00006h           ; 6b c0 06
     2871    mov es, [bp-00ah]                         ; 8e 46 f6
     2872    mov si, word [bp-00eh]                    ; 8b 76 f2
    22882873    add si, ax                                ; 01 c6
    22892874    mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    22902875    mov ax, word [es:si+001c4h]               ; 26 8b 84 c4 01
    22912876    mov word [bp-00ch], ax                    ; 89 46 f4
    2292     mov ax, word [bp-016h]                    ; 8b 46 ea
    2293     mov dx, strict word 00018h                ; ba 18 00
    2294     imul dx                                   ; f7 ea
    2295     mov si, word [bp-00ah]                    ; 8b 76 f6
    2296     add si, ax                                ; 01 c6
     2877    imul si, word [bp-016h], strict byte 00018h ; 6b 76 ea 18
     2878    add si, word [bp-00eh]                    ; 03 76 f2
    22972879    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2298     mov byte [bp-002h], al                    ; 88 46 fe
     2880    mov byte [bp-006h], al                    ; 88 46 fa
    22992881    xor ax, ax                                ; 31 c0
     2882    mov word [bp-014h], ax                    ; 89 46 ec
    23002883    mov word [bp-012h], ax                    ; 89 46 ee
    2301     mov word [bp-00eh], ax                    ; 89 46 f2
    23022884    mov al, byte [bp-004h]                    ; 8a 46 fc
    23032885    cmp AL, strict byte 00ch                  ; 3c 0c
    2304     jnc short 02979h                          ; 73 06
     2886    jnc short 0289dh                          ; 73 06
    23052887    mov byte [bp-004h], 00ch                  ; c6 46 fc 0c
    2306     jmp short 0297fh                          ; eb 06
    2307     jbe short 0297fh                          ; 76 04
     2888    jmp short 028a3h                          ; eb 06
     2889    jbe short 028a3h                          ; 76 04
    23082890    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    23092891    shr byte [bp-004h], 1                     ; d0 6e fc
    2310     les si, [bp-00ah]                         ; c4 76 f6
    2311     mov word [es:si+014h], strict word 00000h ; 26 c7 44 14 00 00
    2312     mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
     2892    mov es, [bp-00ah]                         ; 8e 46 f6
     2893    mov si, word [bp-00eh]                    ; 8b 76 f2
     2894    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     2895    ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
    23132896    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    23142897    lea dx, [bx+007h]                         ; 8d 57 07
     
    23172900    ; sub ah, ah                                ; 2a e4
    23182901    test AL, strict byte 080h                 ; a8 80
    2319     je short 029a7h                           ; 74 06
     2902    je short 028cbh                           ; 74 06
    23202903    mov dx, strict word 00002h                ; ba 02 00
    2321     jmp near 02bc0h                           ; e9 19 02
     2904    jmp near 02ae5h                           ; e9 1a 02
    23222905    mov dx, word [bp-00ch]                    ; 8b 56 f4
    23232906    add dx, strict byte 00006h                ; 83 c2 06
     
    23302913    mov AL, strict byte 0ffh                  ; b0 ff
    23312914    out DX, AL                                ; ee
    2332     test cl, cl                               ; 84 c9
    2333     je short 029c5h                           ; 74 05
     2915    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     2916    je short 028ebh                           ; 74 05
    23342917    mov ax, 000b0h                            ; b8 b0 00
    2335     jmp short 029c8h                          ; eb 03
     2918    jmp short 028eeh                          ; eb 03
    23362919    mov ax, 000a0h                            ; b8 a0 00
    23372920    lea dx, [bx+006h]                         ; 8d 57 06
     
    23462929    mov dl, al                                ; 88 c2
    23472930    test AL, strict byte 080h                 ; a8 80
    2348     jne short 029d2h                          ; 75 f4
     2931    jne short 028f8h                          ; 75 f4
    23492932    test AL, strict byte 001h                 ; a8 01
    2350     je short 029f1h                           ; 74 0f
     2933    je short 02917h                           ; 74 0f
    23512934    mov dx, word [bp-00ch]                    ; 8b 56 f4
    23522935    add dx, strict byte 00006h                ; 83 c2 06
     
    23542937    out DX, AL                                ; ee
    23552938    mov dx, strict word 00003h                ; ba 03 00
    2356     jmp near 02bc0h                           ; e9 cf 01
     2939    jmp near 02ae5h                           ; e9 ce 01
    23572940    test dl, 008h                             ; f6 c2 08
    2358     jne short 02a05h                          ; 75 0f
     2941    jne short 0292bh                          ; 75 0f
    23592942    mov dx, word [bp-00ch]                    ; 8b 56 f4
    23602943    add dx, strict byte 00006h                ; 83 c2 06
     
    23622945    out DX, AL                                ; ee
    23632946    mov dx, strict word 00004h                ; ba 04 00
    2364     jmp near 02bc0h                           ; e9 bb 01
     2947    jmp near 02ae5h                           ; e9 ba 01
    23652948    sti                                       ; fb
    2366     mov CL, strict byte 004h                  ; b1 04
    23672949    mov ax, di                                ; 89 f8
    2368     shr ax, CL                                ; d3 e8
    2369     add ax, word [bp-010h]                    ; 03 46 f0
     2950    shr ax, 004h                              ; c1 e8 04
     2951    add ax, cx                                ; 01 c8
    23702952    mov si, di                                ; 89 fe
    23712953    and si, strict byte 0000fh                ; 83 e6 0f
    2372     mov cl, byte [bp-004h]                    ; 8a 4e fc
    2373     xor ch, ch                                ; 30 ed
     2954    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
    23742955    mov dx, bx                                ; 89 da
    23752956    mov es, ax                                ; 8e c0
     
    23772958    ; rep es outsw                              ; f3 26 6f
    23782959    cmp byte [bp+00eh], 000h                  ; 80 7e 0e 00
    2379     jne short 02a31h                          ; 75 0b
     2960    jne short 02954h                          ; 75 0b
    23802961    lea dx, [bx+007h]                         ; 8d 57 07
    23812962    in AL, DX                                 ; ec
     
    23832964    ; sub ah, ah                                ; 2a e4
    23842965    mov dl, al                                ; 88 c2
    2385     jmp near 02ba1h                           ; e9 70 01
     2966    jmp near 02ac6h                           ; e9 72 01
    23862967    lea dx, [bx+007h]                         ; 8d 57 07
    23872968    in AL, DX                                 ; ec
     
    23902971    mov dl, al                                ; 88 c2
    23912972    test AL, strict byte 080h                 ; a8 80
    2392     jne short 02a31h                          ; 75 f4
     2973    jne short 02954h                          ; 75 f4
    23932974    test AL, strict byte 088h                 ; a8 88
    2394     je short 02aa1h                           ; 74 60
     2975    je near 02ac6h                            ; 0f 84 60 01
    23952976    test AL, strict byte 001h                 ; a8 01
    2396     je short 02a50h                           ; 74 0b
     2977    je short 02975h                           ; 74 0b
    23972978    mov dx, word [bp-00ch]                    ; 8b 56 f4
    23982979    add dx, strict byte 00006h                ; 83 c2 06
    23992980    mov AL, strict byte 008h                  ; b0 08
    24002981    out DX, AL                                ; ee
    2401     jmp short 029ebh                          ; eb 9b
     2982    jmp short 02911h                          ; eb 9c
    24022983    mov al, dl                                ; 88 d0
    24032984    and AL, strict byte 0c9h                  ; 24 c9
    24042985    cmp AL, strict byte 048h                  ; 3c 48
    2405     je short 02a63h                           ; 74 0b
     2986    je short 02988h                           ; 74 0b
    24062987    mov dx, word [bp-00ch]                    ; 8b 56 f4
    24072988    add dx, strict byte 00006h                ; 83 c2 06
    24082989    mov AL, strict byte 008h                  ; b0 08
    24092990    out DX, AL                                ; ee
    2410     jmp short 029ffh                          ; eb 9c
    2411     mov CL, strict byte 004h                  ; b1 04
     2991    jmp short 02925h                          ; eb 9d
    24122992    mov ax, word [bp+010h]                    ; 8b 46 10
    2413     shr ax, CL                                ; d3 e8
    2414     add ax, word [bp+012h]                    ; 03 46 12
    2415     mov dx, word [bp+010h]                    ; 8b 56 10
    2416     and dx, strict byte 0000fh                ; 83 e2 0f
    2417     mov word [bp+010h], dx                    ; 89 56 10
    2418     mov word [bp+012h], ax                    ; 89 46 12
     2993    shr ax, 004h                              ; c1 e8 04
     2994    mov dx, word [bp+012h]                    ; 8b 56 12
     2995    add dx, ax                                ; 01 c2
     2996    mov ax, word [bp+010h]                    ; 8b 46 10
     2997    and ax, strict word 0000fh                ; 25 0f 00
     2998    mov word [bp+010h], ax                    ; 89 46 10
     2999    mov word [bp+012h], dx                    ; 89 56 12
    24193000    lea dx, [bx+005h]                         ; 8d 57 05
    24203001    in AL, DX                                 ; ec
    24213002    db  02ah, 0e4h
    24223003    ; sub ah, ah                                ; 2a e4
    2423     mov ch, al                                ; 88 c5
    2424     xor cl, cl                                ; 30 c9
     3004    mov cx, ax                                ; 89 c1
     3005    sal cx, 008h                              ; c1 e1 08
    24253006    lea dx, [bx+004h]                         ; 8d 57 04
    24263007    in AL, DX                                 ; ec
     
    24283009    ; sub ah, ah                                ; 2a e4
    24293010    add cx, ax                                ; 01 c1
    2430     mov word [bp-006h], cx                    ; 89 4e fa
     3011    mov word [bp-010h], cx                    ; 89 4e f0
    24313012    mov ax, word [bp+008h]                    ; 8b 46 08
    24323013    cmp ax, cx                                ; 39 c8
    2433     jbe short 02aa4h                          ; 76 0f
     3014    jbe short 029c8h                          ; 76 0c
    24343015    mov ax, cx                                ; 89 c8
    24353016    sub word [bp+008h], cx                    ; 29 4e 08
    24363017    xor ax, cx                                ; 31 c8
    2437     mov word [bp-006h], ax                    ; 89 46 fa
    2438     jmp short 02aaeh                          ; eb 0d
    2439     jmp near 02ba1h                           ; e9 fd 00
     3018    mov word [bp-010h], ax                    ; 89 46 f0
     3019    jmp short 029d2h                          ; eb 0a
    24403020    mov cx, ax                                ; 89 c1
    24413021    mov word [bp+008h], strict word 00000h    ; c7 46 08 00 00
    2442     sub word [bp-006h], ax                    ; 29 46 fa
     3022    sub word [bp-010h], ax                    ; 29 46 f0
    24433023    xor ax, ax                                ; 31 c0
    24443024    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    2445     jne short 02ad7h                          ; 75 21
    2446     mov dx, word [bp-006h]                    ; 8b 56 fa
     3025    jne short 029fbh                          ; 75 21
     3026    mov dx, word [bp-010h]                    ; 8b 56 f0
    24473027    cmp dx, word [bp+00ah]                    ; 3b 56 0a
    2448     jbe short 02ad7h                          ; 76 19
    2449     mov ax, word [bp-006h]                    ; 8b 46 fa
     3028    jbe short 029fbh                          ; 76 19
     3029    mov ax, word [bp-010h]                    ; 8b 46 f0
    24503030    sub ax, word [bp+00ah]                    ; 2b 46 0a
    2451     mov word [bp-014h], ax                    ; 89 46 ec
     3031    mov word [bp-008h], ax                    ; 89 46 f8
    24523032    mov ax, word [bp+00ah]                    ; 8b 46 0a
    2453     mov word [bp-006h], ax                    ; 89 46 fa
     3033    mov word [bp-010h], ax                    ; 89 46 f0
    24543034    xor ax, ax                                ; 31 c0
    24553035    mov word [bp+00ah], ax                    ; 89 46 0a
    24563036    mov word [bp+00ch], ax                    ; 89 46 0c
    2457     jmp short 02ae3h                          ; eb 0c
    2458     mov word [bp-014h], ax                    ; 89 46 ec
    2459     mov dx, word [bp-006h]                    ; 8b 56 fa
     3037    jmp short 02a07h                          ; eb 0c
     3038    mov word [bp-008h], ax                    ; 89 46 f8
     3039    mov dx, word [bp-010h]                    ; 8b 56 f0
    24603040    sub word [bp+00ah], dx                    ; 29 56 0a
    24613041    sbb word [bp+00ch], ax                    ; 19 46 0c
    2462     mov si, word [bp-006h]                    ; 8b 76 fa
    2463     mov al, byte [bp-002h]                    ; 8a 46 fe
     3042    mov si, word [bp-010h]                    ; 8b 76 f0
     3043    mov al, byte [bp-006h]                    ; 8a 46 fa
    24643044    test cl, 003h                             ; f6 c1 03
    2465     je short 02af0h                           ; 74 02
     3045    je short 02a14h                           ; 74 02
    24663046    xor al, al                                ; 30 c0
    2467     test byte [bp-006h], 003h                 ; f6 46 fa 03
    2468     je short 02af8h                           ; 74 02
     3047    test byte [bp-010h], 003h                 ; f6 46 f0 03
     3048    je short 02a1ch                           ; 74 02
    24693049    xor al, al                                ; 30 c0
    2470     test byte [bp-014h], 003h                 ; f6 46 ec 03
    2471     je short 02b00h                           ; 74 02
     3050    test byte [bp-008h], 003h                 ; f6 46 f8 03
     3051    je short 02a24h                           ; 74 02
    24723052    xor al, al                                ; 30 c0
    2473     test byte [bp-006h], 001h                 ; f6 46 fa 01
    2474     je short 02b18h                           ; 74 12
    2475     inc word [bp-006h]                        ; ff 46 fa
    2476     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    2477     jbe short 02b18h                          ; 76 09
    2478     test byte [bp-014h], 001h                 ; f6 46 ec 01
    2479     je short 02b18h                           ; 74 03
    2480     dec word [bp-014h]                        ; ff 4e ec
     3053    test byte [bp-010h], 001h                 ; f6 46 f0 01
     3054    je short 02a3ch                           ; 74 12
     3055    inc word [bp-010h]                        ; ff 46 f0
     3056    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
     3057    jbe short 02a3ch                          ; 76 09
     3058    test byte [bp-008h], 001h                 ; f6 46 f8 01
     3059    je short 02a3ch                           ; 74 03
     3060    dec word [bp-008h]                        ; ff 4e f8
    24813061    cmp AL, strict byte 001h                  ; 3c 01
    2482     jne short 02b2bh                          ; 75 0f
    2483     shr word [bp-006h], 1                     ; d1 6e fa
    2484     shr word [bp-006h], 1                     ; d1 6e fa
     3062    jne short 02a4dh                          ; 75 0d
     3063    shr word [bp-010h], 002h                  ; c1 6e f0 02
     3064    shr cx, 002h                              ; c1 e9 02
     3065    shr word [bp-008h], 002h                  ; c1 6e f8 02
     3066    jmp short 02a55h                          ; eb 08
     3067    shr word [bp-010h], 1                     ; d1 6e f0
    24853068    shr cx, 1                                 ; d1 e9
    2486     shr cx, 1                                 ; d1 e9
    2487     shr word [bp-014h], 1                     ; d1 6e ec
    2488     jmp short 02b30h                          ; eb 05
    2489     shr word [bp-006h], 1                     ; d1 6e fa
    2490     shr cx, 1                                 ; d1 e9
    2491     shr word [bp-014h], 1                     ; d1 6e ec
     3069    shr word [bp-008h], 1                     ; d1 6e f8
    24923070    cmp AL, strict byte 001h                  ; 3c 01
    2493     jne short 02b63h                          ; 75 2c
     3071    jne short 02a85h                          ; 75 2c
    24943072    test cx, cx                               ; 85 c9
    2495     je short 02b45h                           ; 74 0a
     3073    je short 02a67h                           ; 74 0a
    24963074    mov dx, bx                                ; 89 da
    24973075    push eax                                  ; 66 50
    24983076    in eax, DX                                ; 66 ed
    2499     loop 02b3fh                               ; e2 fc
     3077    loop 02a61h                               ; e2 fc
    25003078    pop eax                                   ; 66 58
    25013079    mov dx, bx                                ; 89 da
    2502     mov cx, word [bp-006h]                    ; 8b 4e fa
     3080    mov cx, word [bp-010h]                    ; 8b 4e f0
    25033081    les di, [bp+010h]                         ; c4 7e 10
    25043082    db  0f3h, 066h, 06dh
    25053083    ; rep insd                                  ; f3 66 6d
    2506     mov ax, word [bp-014h]                    ; 8b 46 ec
     3084    mov ax, word [bp-008h]                    ; 8b 46 f8
    25073085    test ax, ax                               ; 85 c0
    2508     je short 02b82h                           ; 74 2b
     3086    je short 02aa4h                           ; 74 2b
    25093087    mov cx, ax                                ; 89 c1
    25103088    push eax                                  ; 66 50
    25113089    in eax, DX                                ; 66 ed
    2512     loop 02b5bh                               ; e2 fc
     3090    loop 02a7dh                               ; e2 fc
    25133091    pop eax                                   ; 66 58
    2514     jmp short 02b82h                          ; eb 1f
     3092    jmp short 02aa4h                          ; eb 1f
    25153093    test cx, cx                               ; 85 c9
    2516     je short 02b6ch                           ; 74 05
     3094    je short 02a8eh                           ; 74 05
    25173095    mov dx, bx                                ; 89 da
    25183096    in ax, DX                                 ; ed
    2519     loop 02b69h                               ; e2 fd
     3097    loop 02a8bh                               ; e2 fd
    25203098    mov dx, bx                                ; 89 da
    2521     mov cx, word [bp-006h]                    ; 8b 4e fa
     3099    mov cx, word [bp-010h]                    ; 8b 4e f0
    25223100    les di, [bp+010h]                         ; c4 7e 10
    25233101    rep insw                                  ; f3 6d
    2524     mov ax, word [bp-014h]                    ; 8b 46 ec
     3102    mov ax, word [bp-008h]                    ; 8b 46 f8
    25253103    test ax, ax                               ; 85 c0
    2526     je short 02b82h                           ; 74 05
     3104    je short 02aa4h                           ; 74 05
    25273105    mov cx, ax                                ; 89 c1
    25283106    in ax, DX                                 ; ed
    2529     loop 02b7fh                               ; e2 fd
     3107    loop 02aa1h                               ; e2 fd
    25303108    add word [bp+010h], si                    ; 01 76 10
    25313109    xor ax, ax                                ; 31 c0
    2532     add word [bp-012h], si                    ; 01 76 ee
    2533     adc word [bp-00eh], ax                    ; 11 46 f2
     3110    add word [bp-014h], si                    ; 01 76 ec
     3111    adc word [bp-012h], ax                    ; 11 46 ee
     3112    mov ax, word [bp-014h]                    ; 8b 46 ec
     3113    mov es, [bp-00ah]                         ; 8e 46 f6
     3114    mov si, word [bp-00eh]                    ; 8b 76 f2
     3115    mov word [es:si+016h], ax                 ; 26 89 44 16
    25343116    mov ax, word [bp-012h]                    ; 8b 46 ee
    2535     les si, [bp-00ah]                         ; c4 76 f6
    2536     mov word [es:si+016h], ax                 ; 26 89 44 16
    2537     mov ax, word [bp-00eh]                    ; 8b 46 f2
    25383117    mov word [es:si+018h], ax                 ; 26 89 44 18
    2539     jmp near 02a31h                           ; e9 90 fe
     3118    jmp near 02954h                           ; e9 8e fe
    25403119    mov al, dl                                ; 88 d0
    25413120    and AL, strict byte 0e9h                  ; 24 e9
    25423121    cmp AL, strict byte 040h                  ; 3c 40
    2543     je short 02bb5h                           ; 74 0c
     3122    je short 02adah                           ; 74 0c
    25443123    mov dx, word [bp-00ch]                    ; 8b 56 f4
    25453124    add dx, strict byte 00006h                ; 83 c2 06
    25463125    mov AL, strict byte 008h                  ; b0 08
    25473126    out DX, AL                                ; ee
    2548     jmp near 029ffh                           ; e9 4a fe
     3127    jmp near 02925h                           ; e9 4b fe
    25493128    mov dx, word [bp-00ch]                    ; 8b 56 f4
    25503129    add dx, strict byte 00006h                ; 83 c2 06
     
    25533132    xor dx, dx                                ; 31 d2
    25543133    mov ax, dx                                ; 89 d0
    2555     mov sp, bp                                ; 89 ec
    2556     pop bp                                    ; 5d
     3134    leave                                     ; c9
    25573135    pop di                                    ; 5f
    25583136    pop si                                    ; 5e
    25593137    retn 0000ch                               ; c2 0c 00
    2560 set_diskette_ret_status_:                    ; 0xf2bca LB 0x16
     3138set_diskette_ret_status_:                    ; 0xf2aed LB 0x15
    25613139    push bx                                   ; 53
    25623140    push dx                                   ; 52
    25633141    push bp                                   ; 55
    25643142    mov bp, sp                                ; 89 e5
    2565     xor ah, ah                                ; 30 e4
    2566     mov bx, ax                                ; 89 c3
     3143    movzx bx, al                              ; 0f b6 d8
    25673144    mov dx, strict word 00041h                ; ba 41 00
    25683145    mov ax, strict word 00040h                ; b8 40 00
    2569     call 0160eh                               ; e8 32 ea
     3146    call 0160eh                               ; e8 10 eb
    25703147    pop bp                                    ; 5d
    25713148    pop dx                                    ; 5a
    25723149    pop bx                                    ; 5b
    25733150    retn                                      ; c3
    2574 set_diskette_current_cyl_:                   ; 0xf2be0 LB 0x33
     3151set_diskette_current_cyl_:                   ; 0xf2b02 LB 0x2a
    25753152    push bx                                   ; 53
    2576     push cx                                   ; 51
    25773153    push bp                                   ; 55
    25783154    mov bp, sp                                ; 89 e5
    25793155    mov bl, al                                ; 88 c3
    25803156    cmp AL, strict byte 001h                  ; 3c 01
    2581     jbe short 02bf9h                          ; 76 0e
    2582     mov ax, 00198h                            ; b8 98 01
    2583     push ax                                   ; 50
    2584     mov ax, strict word 00007h                ; b8 07 00
    2585     push ax                                   ; 50
    2586     call 018fah                               ; e8 04 ed
     3157    jbe short 02b17h                          ; 76 0b
     3158    push 00198h                               ; 68 98 01
     3159    push strict byte 00007h                   ; 6a 07
     3160    call 018e9h                               ; e8 d5 ed
    25873161    add sp, strict byte 00004h                ; 83 c4 04
    2588     mov al, dl                                ; 88 d0
    2589     xor ah, ah                                ; 30 e4
    2590     mov cx, ax                                ; 89 c1
    2591     mov al, bl                                ; 88 d8
    2592     mov dx, ax                                ; 89 c2
     3162    movzx ax, dl                              ; 0f b6 c2
     3163    movzx dx, bl                              ; 0f b6 d3
    25933164    add dx, 00094h                            ; 81 c2 94 00
    2594     mov bx, cx                                ; 89 cb
    2595     mov ax, strict word 00040h                ; b8 40 00
    2596     call 0160eh                               ; e8 ff e9
     3165    mov bx, ax                                ; 89 c3
     3166    mov ax, strict word 00040h                ; b8 40 00
     3167    call 0160eh                               ; e8 e5 ea
    25973168    pop bp                                    ; 5d
    2598     pop cx                                    ; 59
    25993169    pop bx                                    ; 5b
    26003170    retn                                      ; c3
    2601 floppy_reset_controller_:                    ; 0xf2c13 LB 0x25
     3171floppy_reset_controller_:                    ; 0xf2b2c LB 0x28
    26023172    push bx                                   ; 53
    26033173    push dx                                   ; 52
     
    26093179    ; sub ah, ah                                ; 2a e4
    26103180    mov bx, ax                                ; 89 c3
     3181    movzx ax, bl                              ; 0f b6 c3
    26113182    and AL, strict byte 0fbh                  ; 24 fb
    26123183    out DX, AL                                ; ee
     
    26203191    and AL, strict byte 0c0h                  ; 24 c0
    26213192    cmp AL, strict byte 080h                  ; 3c 80
    2622     jne short 02c28h                          ; 75 f4
     3193    jne short 02b44h                          ; 75 f4
    26233194    pop bp                                    ; 5d
    26243195    pop dx                                    ; 5a
    26253196    pop bx                                    ; 5b
    26263197    retn                                      ; c3
    2627 floppy_prepare_controller_:                  ; 0xf2c38 LB 0x93
     3198floppy_prepare_controller_:                  ; 0xf2b54 LB 0x8c
    26283199    push bx                                   ; 53
    26293200    push cx                                   ; 51
    26303201    push dx                                   ; 52
    2631     push bp                                   ; 55
    2632     mov bp, sp                                ; 89 e5
    2633     push ax                                   ; 50
     3202    enter 00002h, 000h                        ; c8 02 00 00
    26343203    mov cx, ax                                ; 89 c1
    26353204    mov dx, strict word 0003eh                ; ba 3e 00
    26363205    mov ax, strict word 00040h                ; b8 40 00
    2637     call 01600h                               ; e8 b6 e9
     3206    call 01600h                               ; e8 9a ea
    26383207    and AL, strict byte 07fh                  ; 24 7f
    2639     xor ah, ah                                ; 30 e4
    2640     mov bx, ax                                ; 89 c3
     3208    movzx bx, al                              ; 0f b6 d8
    26413209    mov dx, strict word 0003eh                ; ba 3e 00
    26423210    mov ax, strict word 00040h                ; b8 40 00
    2643     call 0160eh                               ; e8 b5 e9
     3211    call 0160eh                               ; e8 9a ea
    26443212    mov dx, 003f2h                            ; ba f2 03
    26453213    in AL, DX                                 ; ec
     
    26493217    mov byte [bp-002h], al                    ; 88 46 fe
    26503218    test cx, cx                               ; 85 c9
    2651     je short 02c6ch                           ; 74 04
     3219    je short 02b87h                           ; 74 04
    26523220    mov AL, strict byte 020h                  ; b0 20
    2653     jmp short 02c6eh                          ; eb 02
     3221    jmp short 02b89h                          ; eb 02
    26543222    mov AL, strict byte 010h                  ; b0 10
    26553223    or AL, strict byte 00ch                   ; 0c 0c
     
    26603228    mov dx, strict word 00040h                ; ba 40 00
    26613229    mov ax, dx                                ; 89 d0
    2662     call 0160eh                               ; e8 8d e9
     3230    call 0160eh                               ; e8 72 ea
    26633231    mov dx, 0008bh                            ; ba 8b 00
    26643232    mov ax, strict word 00040h                ; b8 40 00
    2665     call 01600h                               ; e8 76 e9
    2666     mov CL, strict byte 006h                  ; b1 06
    2667     shr al, CL                                ; d2 e8
     3233    call 01600h                               ; e8 5b ea
     3234    shr al, 006h                              ; c0 e8 06
    26683235    mov dx, 003f7h                            ; ba f7 03
    26693236    out DX, AL                                ; ee
     
    26743241    and AL, strict byte 0c0h                  ; 24 c0
    26753242    cmp AL, strict byte 080h                  ; 3c 80
    2676     jne short 02c92h                          ; 75 f4
     3243    jne short 02bach                          ; 75 f4
    26773244    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2678     jne short 02cc4h                          ; 75 20
     3245    jne short 02bdbh                          ; 75 1d
    26793246    sti                                       ; fb
    26803247    mov dx, strict word 0003eh                ; ba 3e 00
    26813248    mov ax, strict word 00040h                ; b8 40 00
    2682     call 01600h                               ; e8 52 e9
     3249    call 01600h                               ; e8 38 ea
    26833250    test AL, strict byte 080h                 ; a8 80
    2684     je short 02ca5h                           ; 74 f3
     3251    je short 02bbfh                           ; 74 f3
    26853252    and AL, strict byte 07fh                  ; 24 7f
    26863253    cli                                       ; fa
    2687     mov cl, al                                ; 88 c1
    2688     xor ch, ch                                ; 30 ed
    2689     mov bx, cx                                ; 89 cb
     3254    movzx bx, al                              ; 0f b6 d8
    26903255    mov dx, strict word 0003eh                ; ba 3e 00
    26913256    mov ax, strict word 00040h                ; b8 40 00
    2692     call 0160eh                               ; e8 4a e9
    2693     mov sp, bp                                ; 89 ec
    2694     pop bp                                    ; 5d
     3257    call 0160eh                               ; e8 33 ea
     3258    leave                                     ; c9
    26953259    pop dx                                    ; 5a
    26963260    pop cx                                    ; 59
    26973261    pop bx                                    ; 5b
    26983262    retn                                      ; c3
    2699 floppy_media_known_:                         ; 0xf2ccb LB 0x43
     3263floppy_media_known_:                         ; 0xf2be0 LB 0x40
     3264    push bx                                   ; 53
     3265    push dx                                   ; 52
     3266    push bp                                   ; 55
     3267    mov bp, sp                                ; 89 e5
     3268    mov bx, ax                                ; 89 c3
     3269    mov dx, strict word 0003eh                ; ba 3e 00
     3270    mov ax, strict word 00040h                ; b8 40 00
     3271    call 01600h                               ; e8 10 ea
     3272    mov ah, al                                ; 88 c4
     3273    test bx, bx                               ; 85 db
     3274    je short 02bf8h                           ; 74 02
     3275    shr al, 1                                 ; d0 e8
     3276    and AL, strict byte 001h                  ; 24 01
     3277    jne short 02c00h                          ; 75 04
     3278    xor ah, ah                                ; 30 e4
     3279    jmp short 02c1ch                          ; eb 1c
     3280    mov dx, 00090h                            ; ba 90 00
     3281    test bx, bx                               ; 85 db
     3282    je short 02c0ah                           ; 74 03
     3283    mov dx, 00091h                            ; ba 91 00
     3284    mov ax, strict word 00040h                ; b8 40 00
     3285    call 01600h                               ; e8 f0 e9
     3286    xor ah, ah                                ; 30 e4
     3287    sar ax, 004h                              ; c1 f8 04
     3288    and AL, strict byte 001h                  ; 24 01
     3289    je short 02bfch                           ; 74 e3
     3290    mov ax, strict word 00001h                ; b8 01 00
     3291    pop bp                                    ; 5d
     3292    pop dx                                    ; 5a
     3293    pop bx                                    ; 5b
     3294    retn                                      ; c3
     3295floppy_read_id_:                             ; 0xf2c20 LB 0x49
     3296    push bx                                   ; 53
     3297    push dx                                   ; 52
     3298    push si                                   ; 56
     3299    enter 00008h, 000h                        ; c8 08 00 00
     3300    mov bx, ax                                ; 89 c3
     3301    call 02b54h                               ; e8 28 ff
     3302    mov AL, strict byte 04ah                  ; b0 4a
     3303    mov dx, 003f5h                            ; ba f5 03
     3304    out DX, AL                                ; ee
     3305    mov al, bl                                ; 88 d8
     3306    out DX, AL                                ; ee
     3307    sti                                       ; fb
     3308    mov dx, strict word 0003eh                ; ba 3e 00
     3309    mov ax, strict word 00040h                ; b8 40 00
     3310    call 01600h                               ; e8 c1 e9
     3311    and AL, strict byte 080h                  ; 24 80
     3312    test al, al                               ; 84 c0
     3313    je short 02c36h                           ; 74 f1
     3314    cli                                       ; fa
     3315    xor si, si                                ; 31 f6
     3316    jmp short 02c4fh                          ; eb 05
     3317    cmp si, strict byte 00007h                ; 83 fe 07
     3318    jnl short 02c5bh                          ; 7d 0c
     3319    mov dx, 003f5h                            ; ba f5 03
     3320    in AL, DX                                 ; ec
     3321    db  02ah, 0e4h
     3322    ; sub ah, ah                                ; 2a e4
     3323    mov byte [bp+si-008h], al                 ; 88 42 f8
     3324    inc si                                    ; 46
     3325    jmp short 02c4ah                          ; eb ef
     3326    test byte [bp-008h], 0c0h                 ; f6 46 f8 c0
     3327    db  00fh, 094h, 0c0h
     3328    ; sete al                                   ; 0f 94 c0
     3329    xor ah, ah                                ; 30 e4
     3330    leave                                     ; c9
     3331    pop si                                    ; 5e
     3332    pop dx                                    ; 5a
     3333    pop bx                                    ; 5b
     3334    retn                                      ; c3
     3335floppy_drive_recal_:                         ; 0xf2c69 LB 0x5e
    27003336    push bx                                   ; 53
    27013337    push cx                                   ; 51
     
    27043340    mov bp, sp                                ; 89 e5
    27053341    mov bx, ax                                ; 89 c3
     3342    call 02b54h                               ; e8 e0 fe
     3343    mov AL, strict byte 007h                  ; b0 07
     3344    mov dx, 003f5h                            ; ba f5 03
     3345    out DX, AL                                ; ee
     3346    mov al, bl                                ; 88 d8
     3347    out DX, AL                                ; ee
     3348    sti                                       ; fb
    27063349    mov dx, strict word 0003eh                ; ba 3e 00
    27073350    mov ax, strict word 00040h                ; b8 40 00
    2708     call 01600h                               ; e8 24 e9
    2709     mov ah, al                                ; 88 c4
     3351    call 01600h                               ; e8 79 e9
     3352    and AL, strict byte 080h                  ; 24 80
     3353    test al, al                               ; 84 c0
     3354    je short 02c7eh                           ; 74 f1
     3355    cli                                       ; fa
     3356    mov dx, strict word 0003eh                ; ba 3e 00
     3357    mov ax, strict word 00040h                ; b8 40 00
     3358    call 01600h                               ; e8 69 e9
     3359    and AL, strict byte 07fh                  ; 24 7f
    27103360    test bx, bx                               ; 85 db
    2711     je short 02ce4h                           ; 74 02
    2712     shr al, 1                                 ; d0 e8
    2713     and AL, strict byte 001h                  ; 24 01
    2714     jne short 02cech                          ; 75 04
    2715     xor ah, ah                                ; 30 e4
    2716     jmp short 02d09h                          ; eb 1d
    2717     mov dx, 00090h                            ; ba 90 00
    2718     test bx, bx                               ; 85 db
    2719     je short 02cf6h                           ; 74 03
    2720     mov dx, 00091h                            ; ba 91 00
    2721     mov ax, strict word 00040h                ; b8 40 00
    2722     call 01600h                               ; e8 04 e9
    2723     xor ah, ah                                ; 30 e4
    2724     mov CL, strict byte 004h                  ; b1 04
    2725     sar ax, CL                                ; d3 f8
    2726     and AL, strict byte 001h                  ; 24 01
    2727     je short 02ce8h                           ; 74 e2
     3361    je short 02ca4h                           ; 74 07
     3362    or AL, strict byte 002h                   ; 0c 02
     3363    mov cx, 00095h                            ; b9 95 00
     3364    jmp short 02ca9h                          ; eb 05
     3365    or AL, strict byte 001h                   ; 0c 01
     3366    mov cx, 00094h                            ; b9 94 00
     3367    movzx bx, al                              ; 0f b6 d8
     3368    mov dx, strict word 0003eh                ; ba 3e 00
     3369    mov ax, strict word 00040h                ; b8 40 00
     3370    call 0160eh                               ; e8 59 e9
     3371    xor bx, bx                                ; 31 db
     3372    mov dx, cx                                ; 89 ca
     3373    mov ax, strict word 00040h                ; b8 40 00
     3374    call 0160eh                               ; e8 4f e9
    27283375    mov ax, strict word 00001h                ; b8 01 00
    27293376    pop bp                                    ; 5d
     
    27323379    pop bx                                    ; 5b
    27333380    retn                                      ; c3
    2734 floppy_read_id_:                             ; 0xf2d0e LB 0x51
    2735     push bx                                   ; 53
    2736     push dx                                   ; 52
    2737     push si                                   ; 56
    2738     push bp                                   ; 55
    2739     mov bp, sp                                ; 89 e5
    2740     sub sp, strict byte 00008h                ; 83 ec 08
    2741     mov bx, ax                                ; 89 c3
    2742     call 02c38h                               ; e8 1c ff
    2743     mov AL, strict byte 04ah                  ; b0 4a
    2744     mov dx, 003f5h                            ; ba f5 03
    2745     out DX, AL                                ; ee
    2746     mov al, bl                                ; 88 d8
    2747     out DX, AL                                ; ee
    2748     sti                                       ; fb
    2749     mov dx, strict word 0003eh                ; ba 3e 00
    2750     mov ax, strict word 00040h                ; b8 40 00
    2751     call 01600h                               ; e8 d1 e8
    2752     and AL, strict byte 080h                  ; 24 80
    2753     test al, al                               ; 84 c0
    2754     je short 02d26h                           ; 74 f1
    2755     cli                                       ; fa
    2756     xor si, si                                ; 31 f6
    2757     jmp short 02d3fh                          ; eb 05
    2758     cmp si, strict byte 00007h                ; 83 fe 07
    2759     jnl short 02d4bh                          ; 7d 0c
    2760     mov dx, 003f5h                            ; ba f5 03
    2761     in AL, DX                                 ; ec
    2762     db  02ah, 0e4h
    2763     ; sub ah, ah                                ; 2a e4
    2764     mov byte [bp+si-008h], al                 ; 88 42 f8
    2765     inc si                                    ; 46
    2766     jmp short 02d3ah                          ; eb ef
    2767     test byte [bp-008h], 0c0h                 ; f6 46 f8 c0
    2768     je short 02d55h                           ; 74 04
    2769     xor ax, ax                                ; 31 c0
    2770     jmp short 02d58h                          ; eb 03
    2771     mov ax, strict word 00001h                ; b8 01 00
    2772     mov sp, bp                                ; 89 ec
    2773     pop bp                                    ; 5d
    2774     pop si                                    ; 5e
    2775     pop dx                                    ; 5a
    2776     pop bx                                    ; 5b
    2777     retn                                      ; c3
    2778 floppy_drive_recal_:                         ; 0xf2d5f LB 0x5f
    2779     push bx                                   ; 53
    2780     push cx                                   ; 51
    2781     push dx                                   ; 52
    2782     push bp                                   ; 55
    2783     mov bp, sp                                ; 89 e5
    2784     mov bx, ax                                ; 89 c3
    2785     call 02c38h                               ; e8 ce fe
    2786     mov AL, strict byte 007h                  ; b0 07
    2787     mov dx, 003f5h                            ; ba f5 03
    2788     out DX, AL                                ; ee
    2789     mov al, bl                                ; 88 d8
    2790     out DX, AL                                ; ee
    2791     sti                                       ; fb
    2792     mov dx, strict word 0003eh                ; ba 3e 00
    2793     mov ax, strict word 00040h                ; b8 40 00
    2794     call 01600h                               ; e8 83 e8
    2795     and AL, strict byte 080h                  ; 24 80
    2796     test al, al                               ; 84 c0
    2797     je short 02d74h                           ; 74 f1
    2798     cli                                       ; fa
    2799     mov dx, strict word 0003eh                ; ba 3e 00
    2800     mov ax, strict word 00040h                ; b8 40 00
    2801     call 01600h                               ; e8 73 e8
    2802     and AL, strict byte 07fh                  ; 24 7f
    2803     test bx, bx                               ; 85 db
    2804     je short 02d9ah                           ; 74 07
    2805     or AL, strict byte 002h                   ; 0c 02
    2806     mov cx, 00095h                            ; b9 95 00
    2807     jmp short 02d9fh                          ; eb 05
    2808     or AL, strict byte 001h                   ; 0c 01
    2809     mov cx, 00094h                            ; b9 94 00
    2810     mov bl, al                                ; 88 c3
    2811     xor bh, bh                                ; 30 ff
    2812     mov dx, strict word 0003eh                ; ba 3e 00
    2813     mov ax, strict word 00040h                ; b8 40 00
    2814     call 0160eh                               ; e8 62 e8
    2815     xor bx, bx                                ; 31 db
    2816     mov dx, cx                                ; 89 ca
    2817     mov ax, strict word 00040h                ; b8 40 00
    2818     call 0160eh                               ; e8 58 e8
    2819     mov ax, strict word 00001h                ; b8 01 00
    2820     pop bp                                    ; 5d
    2821     pop dx                                    ; 5a
    2822     pop cx                                    ; 59
    2823     pop bx                                    ; 5b
    2824     retn                                      ; c3
    2825 floppy_media_sense_:                         ; 0xf2dbe LB 0x104
     3381floppy_media_sense_:                         ; 0xf2cc7 LB 0xfa
    28263382    push bx                                   ; 53
    28273383    push cx                                   ; 51
     
    28323388    mov bp, sp                                ; 89 e5
    28333389    mov di, ax                                ; 89 c7
    2834     call 02d5fh                               ; e8 94 ff
     3390    call 02c69h                               ; e8 95 ff
    28353391    test ax, ax                               ; 85 c0
    2836     jne short 02dd4h                          ; 75 05
     3392    jne short 02cddh                          ; 75 05
    28373393    xor cx, cx                                ; 31 c9
    2838     jmp near 02eb9h                           ; e9 e5 00
     3394    jmp near 02db8h                           ; e9 db 00
    28393395    mov ax, strict word 00010h                ; b8 10 00
    2840     call 0165ch                               ; e8 82 e8
     3396    call 0165ch                               ; e8 79 e9
    28413397    test di, di                               ; 85 ff
    2842     jne short 02de6h                          ; 75 08
    2843     mov CL, strict byte 004h                  ; b1 04
    2844     shr al, CL                                ; d2 e8
     3398    jne short 02ceeh                          ; 75 07
    28453399    mov cl, al                                ; 88 c1
    2846     jmp short 02debh                          ; eb 05
     3400    shr cl, 004h                              ; c0 e9 04
     3401    jmp short 02cf3h                          ; eb 05
    28473402    mov cl, al                                ; 88 c1
    28483403    and cl, 00fh                              ; 80 e1 0f
    28493404    cmp cl, 001h                              ; 80 f9 01
    2850     jne short 02df9h                          ; 75 09
     3405    jne short 02d01h                          ; 75 09
    28513406    xor cl, cl                                ; 30 c9
    28523407    mov CH, strict byte 015h                  ; b5 15
    28533408    mov si, strict word 00001h                ; be 01 00
    2854     jmp short 02e44h                          ; eb 4b
     3409    jmp short 02d4ch                          ; eb 4b
    28553410    cmp cl, 002h                              ; 80 f9 02
    2856     jne short 02e04h                          ; 75 06
     3411    jne short 02d0ch                          ; 75 06
    28573412    xor cl, cl                                ; 30 c9
    28583413    mov CH, strict byte 035h                  ; b5 35
    2859     jmp short 02df4h                          ; eb f0
     3414    jmp short 02cfch                          ; eb f0
    28603415    cmp cl, 003h                              ; 80 f9 03
    2861     jne short 02e0fh                          ; 75 06
     3416    jne short 02d17h                          ; 75 06
    28623417    xor cl, cl                                ; 30 c9
    28633418    mov CH, strict byte 017h                  ; b5 17
    2864     jmp short 02df4h                          ; eb e5
     3419    jmp short 02cfch                          ; eb e5
    28653420    cmp cl, 004h                              ; 80 f9 04
    2866     jne short 02e1ah                          ; 75 06
     3421    jne short 02d22h                          ; 75 06
    28673422    xor cl, cl                                ; 30 c9
    28683423    mov CH, strict byte 017h                  ; b5 17
    2869     jmp short 02df4h                          ; eb da
     3424    jmp short 02cfch                          ; eb da
    28703425    cmp cl, 005h                              ; 80 f9 05
    2871     jne short 02e25h                          ; 75 06
     3426    jne short 02d2dh                          ; 75 06
    28723427    mov CL, strict byte 0cch                  ; b1 cc
    28733428    mov CH, strict byte 0d7h                  ; b5 d7
    2874     jmp short 02df4h                          ; eb cf
     3429    jmp short 02cfch                          ; eb cf
    28753430    cmp cl, 006h                              ; 80 f9 06
    2876     jne short 02e30h                          ; 75 06
     3431    jne short 02d38h                          ; 75 06
    28773432    xor cl, cl                                ; 30 c9
    28783433    mov CH, strict byte 027h                  ; b5 27
    2879     jmp short 02df4h                          ; eb c4
     3434    jmp short 02cfch                          ; eb c4
    28803435    cmp cl, 007h                              ; 80 f9 07
    2881     jne short 02e37h                          ; 75 02
    2882     jmp short 02e2ah                          ; eb f3
     3436    jne short 02d3fh                          ; 75 02
     3437    jmp short 02d32h                          ; eb f3
    28833438    cmp cl, 008h                              ; 80 f9 08
    2884     jne short 02e3eh                          ; 75 02
    2885     jmp short 02e2ah                          ; eb ec
     3439    jne short 02d46h                          ; 75 02
     3440    jmp short 02d32h                          ; eb ec
    28863441    xor cl, cl                                ; 30 c9
    28873442    xor ch, ch                                ; 30 ed
    28883443    xor si, si                                ; 31 f6
    2889     mov al, cl                                ; 88 c8
    2890     xor ah, ah                                ; 30 e4
    2891     mov bx, ax                                ; 89 c3
     3444    movzx bx, cl                              ; 0f b6 d9
    28923445    mov dx, 0008bh                            ; ba 8b 00
    28933446    mov ax, strict word 00040h                ; b8 40 00
    2894     call 0160eh                               ; e8 bb e7
     3447    call 0160eh                               ; e8 b6 e8
    28953448    mov ax, di                                ; 89 f8
    2896     call 02d0eh                               ; e8 b6 fe
     3449    call 02c20h                               ; e8 c3 fe
    28973450    test ax, ax                               ; 85 c0
    2898     jne short 02e8eh                          ; 75 32
     3451    jne short 02d93h                          ; 75 32
    28993452    mov al, cl                                ; 88 c8
    29003453    and AL, strict byte 0c0h                  ; 24 c0
    29013454    cmp AL, strict byte 080h                  ; 3c 80
    2902     je short 02e8eh                           ; 74 2a
     3455    je short 02d93h                           ; 74 2a
    29033456    mov al, cl                                ; 88 c8
    29043457    and AL, strict byte 0c0h                  ; 24 c0
    29053458    cmp AL, strict byte 0c0h                  ; 3c c0
    2906     je short 02e7bh                           ; 74 0f
     3459    je short 02d80h                           ; 74 0f
    29073460    mov ah, cl                                ; 88 cc
    29083461    and ah, 03fh                              ; 80 e4 3f
    29093462    cmp AL, strict byte 040h                  ; 3c 40
    2910     je short 02e87h                           ; 74 12
     3463    je short 02d8ch                           ; 74 12
    29113464    test al, al                               ; 84 c0
    2912     je short 02e80h                           ; 74 07
    2913     jmp short 02e44h                          ; eb c9
     3465    je short 02d85h                           ; 74 07
     3466    jmp short 02d4ch                          ; eb cc
    29143467    and cl, 03fh                              ; 80 e1 3f
    2915     jmp short 02e44h                          ; eb c4
     3468    jmp short 02d4ch                          ; eb c7
    29163469    mov cl, ah                                ; 88 e1
    29173470    or cl, 040h                               ; 80 c9 40
    2918     jmp short 02e44h                          ; eb bd
     3471    jmp short 02d4ch                          ; eb c0
    29193472    mov cl, ah                                ; 88 e1
    29203473    or cl, 080h                               ; 80 c9 80
    2921     jmp short 02e44h                          ; eb b6
     3474    jmp short 02d4ch                          ; eb b9
    29223475    test di, di                               ; 85 ff
    2923     jne short 02e97h                          ; 75 05
    2924     mov di, 00090h                            ; bf 90 00
    2925     jmp short 02e9ah                          ; eb 03
    2926     mov di, 00091h                            ; bf 91 00
    2927     mov al, cl                                ; 88 c8
    2928     xor ah, ah                                ; 30 e4
    2929     mov bx, ax                                ; 89 c3
     3476    db  00fh, 095h, 0c0h
     3477    ; setne al                                  ; 0f 95 c0
     3478    movzx di, al                              ; 0f b6 f8
     3479    add di, 00090h                            ; 81 c7 90 00
     3480    movzx bx, cl                              ; 0f b6 d9
    29303481    mov dx, 0008bh                            ; ba 8b 00
    29313482    mov ax, strict word 00040h                ; b8 40 00
    2932     call 0160eh                               ; e8 65 e7
    2933     mov al, ch                                ; 88 e8
    2934     xor ah, ah                                ; 30 e4
    2935     mov bx, ax                                ; 89 c3
     3483    call 0160eh                               ; e8 63 e8
     3484    movzx bx, ch                              ; 0f b6 dd
    29363485    mov dx, di                                ; 89 fa
    29373486    mov ax, strict word 00040h                ; b8 40 00
    2938     call 0160eh                               ; e8 57 e7
     3487    call 0160eh                               ; e8 58 e8
    29393488    mov cx, si                                ; 89 f1
    29403489    mov ax, cx                                ; 89 c8
     
    29463495    pop bx                                    ; 5b
    29473496    retn                                      ; c3
    2948 floppy_drive_exists_:                        ; 0xf2ec2 LB 0x3a
    2949     push cx                                   ; 51
     3497floppy_drive_exists_:                        ; 0xf2dc1 LB 0x33
    29503498    push dx                                   ; 52
    29513499    push bp                                   ; 55
     
    29533501    mov dx, ax                                ; 89 c2
    29543502    mov ax, strict word 00010h                ; b8 10 00
    2955     call 0165ch                               ; e8 8d e7
     3503    call 0165ch                               ; e8 8f e8
    29563504    test dx, dx                               ; 85 d2
    2957     jne short 02ed9h                          ; 75 06
    2958     mov CL, strict byte 004h                  ; b1 04
    2959     shr al, CL                                ; d2 e8
    2960     jmp short 02edbh                          ; eb 02
     3505    jne short 02dd6h                          ; 75 05
     3506    shr al, 004h                              ; c0 e8 04
     3507    jmp short 02dd8h                          ; eb 02
    29613508    and AL, strict byte 00fh                  ; 24 0f
    29623509    test al, al                               ; 84 c0
    2963     je short 02ee4h                           ; 74 05
    2964     mov ax, strict word 00001h                ; b8 01 00
    2965     jmp short 02ee6h                          ; eb 02
     3510    db  00fh, 095h, 0c0h
     3511    ; setne al                                  ; 0f 95 c0
    29663512    xor ah, ah                                ; 30 e4
    29673513    pop bp                                    ; 5d
    29683514    pop dx                                    ; 5a
    2969     pop cx                                    ; 59
    2970     retn                                      ; c3
    2971     or AL, strict byte 036h                   ; 0c 36
    2972     pop SS                                    ; 17
    2973     and word [ss:03628h], si                  ; 36 21 36 28 36
    2974     das                                       ; 2f
    2975     db  036h, 036h, 036h, 03dh, 036h, 047h
    2976     ; ss cmp ax, 04736h                         ; 36 36 36 3d 36 47
    2977     db  036h, 04eh
    2978     ; ss dec si                                 ; 36 4e
    2979     db  036h
    2980 _int13_diskette_function:                    ; 0xf2efc LB 0x7fd
     3515    retn                                      ; c3
     3516    test AL, strict byte 034h                 ; a8 34
     3517    mov BL, strict byte 034h                  ; b3 34
     3518    mov bp, 0c434h                            ; bd 34 c4
     3519    xor AL, strict byte 0cbh                  ; 34 cb
     3520    xor AL, strict byte 0d2h                  ; 34 d2
     3521    xor AL, strict byte 0d9h                  ; 34 d9
     3522    xor AL, strict byte 0e3h                  ; 34 e3
     3523    xor AL, strict byte 0eah                  ; 34 ea
     3524    db  034h
     3525_int13_diskette_function:                    ; 0xf2df4 LB 0x799
    29813526    push si                                   ; 56
    29823527    push di                                   ; 57
    2983     push bp                                   ; 55
    2984     mov bp, sp                                ; 89 e5
    2985     sub sp, strict byte 00018h                ; 83 ec 18
    2986     mov bl, byte [bp+01bh]                    ; 8a 5e 1b
    2987     xor bh, bh                                ; 30 ff
    2988     mov cl, bl                                ; 88 d9
     3528    enter 00012h, 000h                        ; c8 12 00 00
     3529    mov bx, word [bp+01ah]                    ; 8b 5e 1a
     3530    shr bx, 008h                              ; c1 eb 08
     3531    mov ch, bl                                ; 88 dd
    29893532    mov si, word [bp+01ah]                    ; 8b 76 1a
    29903533    and si, 000ffh                            ; 81 e6 ff 00
    29913534    mov ah, byte [bp+012h]                    ; 8a 66 12
    29923535    cmp bl, 008h                              ; 80 fb 08
    2993     jc short 02f4ah                           ; 72 30
     3536    jc short 02e4bh                           ; 72 3a
    29943537    mov dx, word [bp+020h]                    ; 8b 56 20
    29953538    or dl, 001h                               ; 80 ca 01
    29963539    cmp bl, 008h                              ; 80 fb 08
    2997     jbe short 02f65h                          ; 76 40
     3540    jbe near 03429h                           ; 0f 86 0b 06
    29983541    cmp bl, 016h                              ; 80 fb 16
    2999     jc short 02f42h                           ; 72 18
     3542    jc short 02e41h                           ; 72 1e
    30003543    or si, 00100h                             ; 81 ce 00 01
    30013544    mov cx, si                                ; 89 f1
    30023545    cmp bl, 016h                              ; 80 fb 16
    3003     jbe short 02f86h                          ; 76 51
     3546    jbe near 03548h                           ; 0f 86 18 07
    30043547    cmp bl, 018h                              ; 80 fb 18
    3005     je short 02f89h                           ; 74 4f
     3548    je near 0354dh                            ; 0f 84 16 07
    30063549    cmp bl, 017h                              ; 80 fb 17
    3007     je short 02f89h                           ; 74 4a
    3008     jmp near 036d3h                           ; e9 91 07
     3550    je near 0354dh                            ; 0f 84 0f 07
     3551    jmp near 0356ah                           ; e9 29 07
    30093552    cmp bl, 015h                              ; 80 fb 15
    3010     je short 02fa0h                           ; 74 59
    3011     jmp near 036d3h                           ; e9 89 07
     3553    je near 0350ch                            ; 0f 84 c4 06
     3554    jmp near 0356ah                           ; e9 1f 07
    30123555    cmp bl, 001h                              ; 80 fb 01
    3013     jc short 02f5eh                           ; 72 0f
    3014     jbe short 02fa3h                          ; 76 52
     3556    jc short 02e65h                           ; 72 15
     3557    jbe near 02edbh                           ; 0f 86 87 00
    30153558    cmp bl, 005h                              ; 80 fb 05
    3016     je short 02fbeh                           ; 74 68
     3559    je near 03282h                            ; 0f 84 27 04
    30173560    cmp bl, 004h                              ; 80 fb 04
    3018     jbe short 02fc1h                          ; 76 66
    3019     jmp near 036d3h                           ; e9 75 07
     3561    jbe near 02ef9h                           ; 0f 86 97 00
     3562    jmp near 0356ah                           ; e9 05 07
    30203563    test bl, bl                               ; 84 db
    3021     je short 02f68h                           ; 74 06
    3022     jmp near 036d3h                           ; e9 6e 07
    3023     jmp near 03585h                           ; e9 1d 06
     3564    jne near 0356ah                           ; 0f 85 ff 06
    30243565    mov al, byte [bp+012h]                    ; 8a 46 12
    3025     mov byte [bp-002h], al                    ; 88 46 fe
     3566    mov byte [bp-00ah], al                    ; 88 46 f6
    30263567    cmp AL, strict byte 001h                  ; 3c 01
    3027     jbe short 02f8ch                          ; 76 1a
     3568    jbe short 02e89h                          ; 76 14
    30283569    mov ax, word [bp+01ah]                    ; 8b 46 1a
    30293570    xor ah, ah                                ; 30 e4
     
    30313572    mov word [bp+01ah], ax                    ; 89 46 1a
    30323573    mov ax, strict word 00001h                ; b8 01 00
    3033     call 02bcah                               ; e8 47 fc
    3034     jmp near 03391h                           ; e9 0b 04
    3035     jmp near 036b1h                           ; e9 28 07
    3036     jmp near 036b6h                           ; e9 2a 07
     3574    call 02aedh                               ; e8 67 fc
     3575    jmp near 03254h                           ; e9 cb 03
    30373576    mov ax, strict word 00010h                ; b8 10 00
    3038     call 0165ch                               ; e8 ca e6
    3039     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3040     jne short 02fa5h                          ; 75 0d
    3041     mov CL, strict byte 004h                  ; b1 04
     3577    call 0165ch                               ; e8 cd e7
     3578    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     3579    jne short 02e9ch                          ; 75 07
    30423580    mov bl, al                                ; 88 c3
    3043     shr bl, CL                                ; d2 eb
    3044     jmp short 02faah                          ; eb 0a
    3045     jmp near 03674h                           ; e9 d1 06
    3046     jmp short 02fe9h                          ; eb 44
     3581    shr bl, 004h                              ; c0 eb 04
     3582    jmp short 02ea1h                          ; eb 05
    30473583    mov bl, al                                ; 88 c3
    30483584    and bl, 00fh                              ; 80 e3 0f
    30493585    test bl, bl                               ; 84 db
    3050     jne short 02fc3h                          ; 75 15
     3586    jne short 02eb5h                          ; 75 10
    30513587    mov ax, word [bp+01ah]                    ; 8b 46 1a
    30523588    xor ah, ah                                ; 30 e4
     
    30543590    mov word [bp+01ah], ax                    ; 89 46 1a
    30553591    mov ax, 00080h                            ; b8 80 00
    3056     jmp short 02f80h                          ; eb c2
    3057     jmp near 033c4h                           ; e9 03 04
    3058     jmp short 03005h                          ; eb 42
     3592    jmp short 02e83h                          ; eb ce
    30593593    xor bx, bx                                ; 31 db
    30603594    mov dx, strict word 0003eh                ; ba 3e 00
    30613595    mov ax, strict word 00040h                ; b8 40 00
    3062     call 0160eh                               ; e8 40 e6
     3596    call 0160eh                               ; e8 4e e7
    30633597    xor al, al                                ; 30 c0
    30643598    mov byte [bp+01bh], al                    ; 88 46 1b
    30653599    xor ah, ah                                ; 30 e4
    3066     call 02bcah                               ; e8 f2 fb
     3600    call 02aedh                               ; e8 23 fc
    30673601    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3068     mov al, byte [bp-002h]                    ; 8a 46 fe
    3069     xor ah, ah                                ; 30 e4
     3602    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    30703603    xor dx, dx                                ; 31 d2
    3071     call 02be0h                               ; e8 fa fb
    3072     jmp near 03243h                           ; e9 5a 02
     3604    call 02b02h                               ; e8 2b fc
     3605    leave                                     ; c9
     3606    pop di                                    ; 5f
     3607    pop si                                    ; 5e
     3608    retn                                      ; c3
    30733609    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    30743610    mov dx, 00441h                            ; ba 41 04
    30753611    xor ax, ax                                ; 31 c0
    3076     call 01600h                               ; e8 0b e6
    3077     mov dh, al                                ; 88 c6
    3078     xor dl, dl                                ; 30 d2
     3612    call 01600h                               ; e8 19 e7
     3613    movzx dx, al                              ; 0f b6 d0
     3614    sal dx, 008h                              ; c1 e2 08
    30793615    or si, dx                                 ; 09 d6
    30803616    mov word [bp+01ah], si                    ; 89 76 1a
    30813617    test al, al                               ; 84 c0
    3082     je short 03060h                           ; 74 5e
    3083     jmp near 03391h                           ; e9 8c 03
    3084     mov ch, byte [bp+01ah]                    ; 8a 6e 1a
    3085     mov dl, byte [bp+019h]                    ; 8a 56 19
    3086     mov byte [bp-008h], dl                    ; 88 56 f8
     3618    je short 02ed7h                           ; 74 e1
     3619    jmp near 03254h                           ; e9 5b 03
     3620    mov al, byte [bp+01ah]                    ; 8a 46 1a
     3621    mov byte [bp-008h], al                    ; 88 46 f8
     3622    mov dx, word [bp+018h]                    ; 8b 56 18
     3623    shr dx, 008h                              ; c1 ea 08
     3624    mov byte [bp-004h], dl                    ; 88 56 fc
    30873625    mov al, byte [bp+018h]                    ; 8a 46 18
    3088     mov byte [bp-004h], al                    ; 88 46 fc
    3089     mov dl, byte [bp+017h]                    ; 8a 56 17
    3090     xor dh, dh                                ; 30 f6
    3091     mov byte [bp-006h], dl                    ; 88 56 fa
    3092     mov byte [bp-002h], ah                    ; 88 66 fe
     3626    mov byte [bp-006h], al                    ; 88 46 fa
     3627    mov dx, word [bp+016h]                    ; 8b 56 16
     3628    shr dx, 008h                              ; c1 ea 08
     3629    mov byte [bp-002h], dl                    ; 88 56 fe
     3630    mov byte [bp-00ah], ah                    ; 88 66 f6
    30933631    cmp ah, 001h                              ; 80 fc 01
    3094     jnbe short 03032h                         ; 77 0e
     3632    jnbe short 02f2fh                         ; 77 10
    30953633    cmp dl, 001h                              ; 80 fa 01
    3096     jnbe short 03032h                         ; 77 09
    3097     test ch, ch                               ; 84 ed
    3098     je short 03032h                           ; 74 05
    3099     cmp ch, 048h                              ; 80 fd 48
    3100     jbe short 03063h                          ; 76 31
    3101     mov bx, 00c16h                            ; bb 16 0c
     3634    jnbe short 02f2fh                         ; 77 0b
     3635    mov al, byte [bp-008h]                    ; 8a 46 f8
     3636    test al, al                               ; 84 c0
     3637    je short 02f2fh                           ; 74 04
     3638    cmp AL, strict byte 048h                  ; 3c 48
     3639    jbe short 02f58h                          ; 76 29
     3640    mov bx, 00c08h                            ; bb 08 0c
    31023641    mov cx, ds                                ; 8c d9
    31033642    mov ax, strict word 00004h                ; b8 04 00
    3104     call 018bdh                               ; e8 80 e8
    3105     mov ax, 001bdh                            ; b8 bd 01
    3106     push ax                                   ; 50
    3107     mov ax, 001d5h                            ; b8 d5 01
    3108     push ax                                   ; 50
    3109     mov ax, strict word 00004h                ; b8 04 00
    3110     push ax                                   ; 50
    3111     call 018fah                               ; e8 ae e8
     3643    call 018aeh                               ; e8 74 e9
     3644    push 001bdh                               ; 68 bd 01
     3645    push 001d5h                               ; 68 d5 01
     3646    push strict byte 00004h                   ; 6a 04
     3647    call 018e9h                               ; e8 a4 e9
    31123648    add sp, strict byte 00006h                ; 83 c4 06
    31133649    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    31163652    mov word [bp+01ah], ax                    ; 89 46 1a
    31173653    mov ax, strict word 00001h                ; b8 01 00
    3118     jmp near 030e1h                           ; e9 81 00
    3119     jmp near 03243h                           ; e9 e0 01
    3120     mov al, byte [bp-002h]                    ; 8a 46 fe
    3121     xor ah, ah                                ; 30 e4
    3122     call 02ec2h                               ; e8 57 fe
     3654    jmp short 02fc9h                          ; eb 71
     3655    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3656    call 02dc1h                               ; e8 62 fe
    31233657    test ax, ax                               ; 85 c0
    3124     je short 0309dh                           ; 74 2e
    3125     mov dl, byte [bp-002h]                    ; 8a 56 fe
    3126     xor dh, dh                                ; 30 f6
     3658    je near 03062h                            ; 0f 84 fd 00
     3659    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    31273660    mov ax, dx                                ; 89 d0
    3128     call 02ccbh                               ; e8 52 fc
     3661    call 02be0h                               ; e8 72 fc
    31293662    test ax, ax                               ; 85 c0
    3130     jne short 030a0h                          ; 75 23
     3663    jne short 02f8bh                          ; 75 19
    31313664    mov ax, dx                                ; 89 d0
    3132     call 02dbeh                               ; e8 3c fd
     3665    call 02cc7h                               ; e8 50 fd
    31333666    test ax, ax                               ; 85 c0
    3134     jne short 030a0h                          ; 75 1a
     3667    jne short 02f8bh                          ; 75 10
    31353668    mov ax, word [bp+01ah]                    ; 8b 46 1a
    31363669    xor ah, ah                                ; 30 e4
     
    31383671    mov word [bp+01ah], ax                    ; 89 46 1a
    31393672    mov ax, strict word 0000ch                ; b8 0c 00
    3140     call 02bcah                               ; e8 33 fb
    3141     mov byte [bp+01ah], dh                    ; 88 76 1a
    3142     jmp near 03391h                           ; e9 f4 02
    3143     jmp near 0317eh                           ; e9 de 00
    3144     cmp cl, 002h                              ; 80 f9 02
    3145     jne short 030ebh                          ; 75 46
    3146     mov CL, strict byte 00ch                  ; b1 0c
    3147     mov ax, word [bp+00ah]                    ; 8b 46 0a
    3148     shr ax, CL                                ; d3 e8
    3149     mov word [bp-00eh], ax                    ; 89 46 f2
    3150     mov ah, byte [bp-00eh]                    ; 8a 66 f2
    3151     mov CL, strict byte 004h                  ; b1 04
     3673    jmp short 02fc9h                          ; eb 3e
     3674    cmp ch, 002h                              ; 80 fd 02
     3675    jne near 03120h                           ; 0f 85 8e 01
    31523676    mov dx, word [bp+00ah]                    ; 8b 56 0a
    3153     sal dx, CL                                ; d3 e2
     3677    shr dx, 00ch                              ; c1 ea 0c
     3678    mov ah, dl                                ; 88 d4
     3679    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     3680    sal cx, 004h                              ; c1 e1 04
    31543681    mov bx, word [bp+014h]                    ; 8b 5e 14
    3155     add bx, dx                                ; 01 d3
    3156     cmp bx, dx                                ; 39 d3
    3157     jnc short 030c4h                          ; 73 02
     3682    add bx, cx                                ; 01 cb
     3683    cmp bx, cx                                ; 39 cb
     3684    jnc short 02fabh                          ; 73 02
    31583685    db  0feh, 0c4h
    31593686    ; inc ah                                    ; fe c4
    3160     mov dl, ch                                ; 88 ea
    3161     xor dh, dh                                ; 30 f6
    3162     mov CL, strict byte 009h                  ; b1 09
    3163     sal dx, CL                                ; d3 e2
    3164     dec dx                                    ; 4a
    3165     mov word [bp-00ch], dx                    ; 89 56 f4
    3166     add dx, bx                                ; 01 da
     3687    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     3688    sal cx, 009h                              ; c1 e1 09
     3689    dec cx                                    ; 49
     3690    mov dx, bx                                ; 89 da
     3691    add dx, cx                                ; 01 ca
    31673692    cmp dx, bx                                ; 39 da
    3168     jnc short 030eeh                          ; 73 18
     3693    jnc short 02fd3h                          ; 73 18
    31693694    mov ax, word [bp+01ah]                    ; 8b 46 1a
    3170     mov ah, cl                                ; 88 cc
     3695    xor ah, ah                                ; 30 e4
     3696    or ah, 009h                               ; 80 cc 09
    31713697    mov word [bp+01ah], ax                    ; 89 46 1a
    31723698    mov ax, strict word 00009h                ; b8 09 00
    3173     call 02bcah                               ; e8 e6 fa
     3699    call 02aedh                               ; e8 21 fb
    31743700    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    3175     jmp near 03391h                           ; e9 a6 02
    3176     jmp near 03249h                           ; e9 5b 01
     3701    jmp near 03254h                           ; e9 81 02
    31773702    mov AL, strict byte 006h                  ; b0 06
    31783703    mov dx, strict word 0000ah                ; ba 0a 00
     
    31843709    mov dx, strict word 00004h                ; ba 04 00
    31853710    out DX, AL                                ; ee
    3186     mov al, bh                                ; 88 f8
    3187     out DX, AL                                ; ee
    3188     xor al, bh                                ; 30 f8
     3711    shr bx, 008h                              ; c1 eb 08
     3712    mov al, bl                                ; 88 d8
     3713    out DX, AL                                ; ee
     3714    xor al, bl                                ; 30 d8
    31893715    mov dx, strict word 0000ch                ; ba 0c 00
    31903716    out DX, AL                                ; ee
    3191     mov al, byte [bp-00ch]                    ; 8a 46 f4
     3717    mov al, cl                                ; 88 c8
    31923718    mov dx, strict word 00005h                ; ba 05 00
    31933719    out DX, AL                                ; ee
    3194     mov al, byte [bp-00bh]                    ; 8a 46 f5
     3720    shr cx, 008h                              ; c1 e9 08
     3721    mov al, cl                                ; 88 c8
    31953722    out DX, AL                                ; ee
    31963723    mov AL, strict byte 046h                  ; b0 46
     
    32043731    out DX, AL                                ; ee
    32053732    out DX, AL                                ; ee
    3206     mov al, byte [bp-002h]                    ; 8a 46 fe
    3207     xor ah, ah                                ; 30 e4
    3208     call 02c38h                               ; e8 09 fb
     3733    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3734    call 02b54h                               ; e8 3d fb
    32093735    mov AL, strict byte 0e6h                  ; b0 e6
    32103736    mov dx, 003f5h                            ; ba f5 03
    32113737    out DX, AL                                ; ee
    3212     mov al, byte [bp-006h]                    ; 8a 46 fa
    3213     xor ah, ah                                ; 30 e4
    3214     mov dx, ax                                ; 89 c2
    3215     sal dx, 1                                 ; d1 e2
    3216     sal dx, 1                                 ; d1 e2
    3217     mov al, byte [bp-002h]                    ; 8a 46 fe
     3738    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     3739    sal dx, 002h                              ; c1 e2 02
     3740    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    32183741    or ax, dx                                 ; 09 d0
    32193742    mov dx, 003f5h                            ; ba f5 03
    32203743    out DX, AL                                ; ee
    3221     mov al, byte [bp-008h]                    ; 8a 46 f8
     3744    mov al, byte [bp-004h]                    ; 8a 46 fc
     3745    out DX, AL                                ; ee
     3746    mov al, byte [bp-002h]                    ; 8a 46 fe
    32223747    out DX, AL                                ; ee
    32233748    mov al, byte [bp-006h]                    ; 8a 46 fa
    32243749    out DX, AL                                ; ee
    3225     mov al, byte [bp-004h]                    ; 8a 46 fc
    3226     out DX, AL                                ; ee
    32273750    mov AL, strict byte 002h                  ; b0 02
    32283751    out DX, AL                                ; ee
    3229     mov dl, byte [bp-004h]                    ; 8a 56 fc
    3230     xor dh, dh                                ; 30 f6
    3231     mov al, ch                                ; 88 e8
    3232     xor ah, ah                                ; 30 e4
     3752    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     3753    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    32333754    add ax, dx                                ; 01 d0
    32343755    dec ax                                    ; 48
     
    32423763    mov dx, strict word 00040h                ; ba 40 00
    32433764    mov ax, dx                                ; 89 d0
    3244     call 01600h                               ; e8 89 e4
     3765    call 01600h                               ; e8 a5 e5
    32453766    test al, al                               ; 84 c0
    3246     jne short 0318fh                          ; 75 14
    3247     call 02c13h                               ; e8 95 fa
     3767    jne short 03073h                          ; 75 14
     3768    call 02b2ch                               ; e8 ca fa
    32483769    mov ax, word [bp+01ah]                    ; 8b 46 1a
    32493770    xor ah, ah                                ; 30 e4
     
    32513772    mov word [bp+01ah], ax                    ; 89 46 1a
    32523773    mov ax, 00080h                            ; b8 80 00
    3253     jmp near 030e1h                           ; e9 52 ff
     3774    jmp near 02fc9h                           ; e9 56 ff
    32543775    mov dx, strict word 0003eh                ; ba 3e 00
    32553776    mov ax, strict word 00040h                ; b8 40 00
    3256     call 01600h                               ; e8 68 e4
     3777    call 01600h                               ; e8 84 e5
    32573778    and AL, strict byte 080h                  ; 24 80
    32583779    test al, al                               ; 84 c0
    3259     je short 0316fh                           ; 74 d1
     3780    je short 03053h                           ; 74 d1
    32603781    cli                                       ; fa
    32613782    mov dx, strict word 0003eh                ; ba 3e 00
    32623783    mov ax, strict word 00040h                ; b8 40 00
    3263     call 01600h                               ; e8 58 e4
    3264     mov bl, al                                ; 88 c3
    3265     and bl, 07fh                              ; 80 e3 7f
    3266     xor bh, bh                                ; 30 ff
     3784    call 01600h                               ; e8 74 e5
     3785    and AL, strict byte 07fh                  ; 24 7f
     3786    movzx bx, al                              ; 0f b6 d8
    32673787    mov dx, strict word 0003eh                ; ba 3e 00
    32683788    mov ax, strict word 00040h                ; b8 40 00
    3269     call 0160eh                               ; e8 56 e4
     3789    call 0160eh                               ; e8 74 e5
    32703790    mov dx, 003f4h                            ; ba f4 03
    32713791    in AL, DX                                 ; ec
     
    32743794    and AL, strict byte 0c0h                  ; 24 c0
    32753795    cmp AL, strict byte 0c0h                  ; 3c c0
    3276     je short 031d6h                           ; 74 12
    3277     mov ax, 001bdh                            ; b8 bd 01
    3278     push ax                                   ; 50
    3279     mov ax, 001f0h                            ; b8 f0 01
    3280     push ax                                   ; 50
    3281     mov ax, strict word 00007h                ; b8 07 00
    3282     push ax                                   ; 50
    3283     call 018fah                               ; e8 27 e7
     3796    je short 030b4h                           ; 74 0e
     3797    push 001bdh                               ; 68 bd 01
     3798    push 001f0h                               ; 68 f0 01
     3799    push strict byte 00007h                   ; 6a 07
     3800    call 018e9h                               ; e8 38 e8
    32843801    add sp, strict byte 00006h                ; 83 c4 06
    32853802    xor si, si                                ; 31 f6
    3286     jmp short 031dfh                          ; eb 05
     3803    jmp short 030bdh                          ; eb 05
    32873804    cmp si, strict byte 00007h                ; 83 fe 07
    3288     jnl short 031f8h                          ; 7d 19
     3805    jnl short 030d5h                          ; 7d 18
    32893806    mov dx, 003f5h                            ; ba f5 03
    32903807    in AL, DX                                 ; ec
    32913808    db  02ah, 0e4h
    32923809    ; sub ah, ah                                ; 2a e4
    3293     mov byte [bp+si-018h], al                 ; 88 42 e8
    3294     mov bl, al                                ; 88 c3
    3295     xor bh, bh                                ; 30 ff
     3810    mov byte [bp+si-012h], al                 ; 88 42 ee
     3811    movzx bx, al                              ; 0f b6 d8
    32963812    lea dx, [si+042h]                         ; 8d 54 42
    32973813    mov ax, strict word 00040h                ; b8 40 00
    3298     call 0160eh                               ; e8 19 e4
     3814    call 0160eh                               ; e8 3c e5
    32993815    inc si                                    ; 46
    3300     jmp short 031dah                          ; eb e2
    3301     test byte [bp-018h], 0c0h                 ; f6 46 e8 c0
    3302     je short 0320fh                           ; 74 11
     3816    jmp short 030b8h                          ; eb e3
     3817    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
     3818    je short 030ech                           ; 74 11
    33033819    mov ax, word [bp+01ah]                    ; 8b 46 1a
    33043820    xor ah, ah                                ; 30 e4
     
    33063822    mov word [bp+01ah], ax                    ; 89 46 1a
    33073823    mov ax, strict word 00020h                ; b8 20 00
    3308     jmp near 030e1h                           ; e9 d2 fe
    3309     mov al, ch                                ; 88 e8
    3310     xor ah, ah                                ; 30 e4
    3311     mov CL, strict byte 009h                  ; b1 09
    3312     sal ax, CL                                ; d3 e0
     3824    jmp near 02fc9h                           ; e9 dd fe
     3825    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3826    sal ax, 009h                              ; c1 e0 09
    33133827    cwd                                       ; 99
    33143828    db  02bh, 0c2h
    33153829    ; sub ax, dx                                ; 2b c2
    33163830    sar ax, 1                                 ; d1 f8
     3831    mov cx, ax                                ; 89 c1
    33173832    mov si, word [bp+014h]                    ; 8b 76 14
    33183833    mov dx, word [bp+00ah]                    ; 8b 56 0a
    33193834    mov di, si                                ; 89 f7
    33203835    mov es, dx                                ; 8e c2
    3321     mov cx, ax                                ; 89 c1
    33223836    push DS                                   ; 1e
    33233837    mov ds, dx                                ; 8e da
    33243838    rep movsw                                 ; f3 a5
    33253839    pop DS                                    ; 1f
    3326     mov dl, byte [bp-008h]                    ; 8a 56 f8
    3327     xor dh, dh                                ; 30 f6
    3328     mov al, byte [bp-002h]                    ; 8a 46 fe
    3329     xor ah, ah                                ; 30 e4
    3330     call 02be0h                               ; e8 a5 f9
     3840    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     3841    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3842    call 02b02h                               ; e8 ed f9
    33313843    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    33323844    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3333     mov sp, bp                                ; 89 ec
    3334     pop bp                                    ; 5d
    3335     pop di                                    ; 5f
    3336     pop si                                    ; 5e
    3337     retn                                      ; c3
    3338     cmp cl, 003h                              ; 80 f9 03
    3339     je short 03251h                           ; 74 03
    3340     jmp near 033ach                           ; e9 5b 01
    3341     mov CL, strict byte 00ch                  ; b1 0c
    3342     mov ax, word [bp+00ah]                    ; 8b 46 0a
    3343     shr ax, CL                                ; d3 e8
    3344     mov word [bp-00ah], ax                    ; 89 46 f6
    3345     mov ah, byte [bp-00ah]                    ; 8a 66 f6
    3346     mov CL, strict byte 004h                  ; b1 04
     3845    jmp near 02ed7h                           ; e9 b7 fd
     3846    cmp ch, 003h                              ; 80 fd 03
     3847    jne near 0326ch                           ; 0f 85 45 01
    33473848    mov dx, word [bp+00ah]                    ; 8b 56 0a
    3348     sal dx, CL                                ; d3 e2
     3849    shr dx, 00ch                              ; c1 ea 0c
     3850    mov ah, dl                                ; 88 d4
     3851    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     3852    sal cx, 004h                              ; c1 e1 04
    33493853    mov bx, word [bp+014h]                    ; 8b 5e 14
    3350     add bx, dx                                ; 01 d3
    3351     cmp bx, dx                                ; 39 d3
    3352     jnc short 03270h                          ; 73 02
     3854    add bx, cx                                ; 01 cb
     3855    cmp bx, cx                                ; 39 cb
     3856    jnc short 03140h                          ; 73 02
    33533857    db  0feh, 0c4h
    33543858    ; inc ah                                    ; fe c4
    3355     mov dl, ch                                ; 88 ea
    3356     xor dh, dh                                ; 30 f6
    3357     mov CL, strict byte 009h                  ; b1 09
    3358     sal dx, CL                                ; d3 e2
    3359     dec dx                                    ; 4a
    3360     mov word [bp-00ch], dx                    ; 89 56 f4
    3361     add dx, bx                                ; 01 da
     3859    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     3860    sal cx, 009h                              ; c1 e1 09
     3861    dec cx                                    ; 49
     3862    mov dx, bx                                ; 89 da
     3863    add dx, cx                                ; 01 ca
    33623864    cmp dx, bx                                ; 39 da
    3363     jnc short 03285h                          ; 73 03
    3364     jmp near 030d6h                           ; e9 51 fe
     3865    jc near 02fbbh                            ; 0f 82 69 fe
    33653866    mov AL, strict byte 006h                  ; b0 06
    33663867    mov dx, strict word 0000ah                ; ba 0a 00
     
    33723873    mov dx, strict word 00004h                ; ba 04 00
    33733874    out DX, AL                                ; ee
    3374     mov al, bh                                ; 88 f8
    3375     out DX, AL                                ; ee
    3376     xor al, bh                                ; 30 f8
     3875    shr bx, 008h                              ; c1 eb 08
     3876    mov al, bl                                ; 88 d8
     3877    out DX, AL                                ; ee
     3878    xor al, bl                                ; 30 d8
    33773879    mov dx, strict word 0000ch                ; ba 0c 00
    33783880    out DX, AL                                ; ee
    3379     mov al, byte [bp-00ch]                    ; 8a 46 f4
     3881    mov al, cl                                ; 88 c8
    33803882    mov dx, strict word 00005h                ; ba 05 00
    33813883    out DX, AL                                ; ee
    3382     mov al, byte [bp-00bh]                    ; 8a 46 f5
     3884    shr cx, 008h                              ; c1 e9 08
     3885    mov al, cl                                ; 88 c8
    33833886    out DX, AL                                ; ee
    33843887    mov AL, strict byte 04ah                  ; b0 4a
     
    33913894    mov dx, strict word 0000ah                ; ba 0a 00
    33923895    out DX, AL                                ; ee
    3393     mov al, byte [bp-002h]                    ; 8a 46 fe
    3394     xor ah, ah                                ; 30 e4
    3395     call 02c38h                               ; e8 73 f9
     3896    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3897    call 02b54h                               ; e8 bf f9
    33963898    mov AL, strict byte 0c5h                  ; b0 c5
    33973899    mov dx, 003f5h                            ; ba f5 03
    33983900    out DX, AL                                ; ee
    3399     mov al, byte [bp-006h]                    ; 8a 46 fa
    3400     xor ah, ah                                ; 30 e4
    3401     mov dx, ax                                ; 89 c2
    3402     sal dx, 1                                 ; d1 e2
    3403     sal dx, 1                                 ; d1 e2
    3404     mov al, byte [bp-002h]                    ; 8a 46 fe
     3901    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     3902    sal dx, 002h                              ; c1 e2 02
     3903    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    34053904    or ax, dx                                 ; 09 d0
    34063905    mov dx, 003f5h                            ; ba f5 03
    34073906    out DX, AL                                ; ee
    3408     mov al, byte [bp-008h]                    ; 8a 46 f8
     3907    mov al, byte [bp-004h]                    ; 8a 46 fc
     3908    out DX, AL                                ; ee
     3909    mov al, byte [bp-002h]                    ; 8a 46 fe
    34093910    out DX, AL                                ; ee
    34103911    mov al, byte [bp-006h]                    ; 8a 46 fa
    34113912    out DX, AL                                ; ee
    3412     mov al, byte [bp-004h]                    ; 8a 46 fc
    3413     out DX, AL                                ; ee
    34143913    mov AL, strict byte 002h                  ; b0 02
    34153914    out DX, AL                                ; ee
    3416     mov al, byte [bp-004h]                    ; 8a 46 fc
    3417     xor ah, ah                                ; 30 e4
    3418     mov dl, ch                                ; 88 ea
    3419     xor dh, dh                                ; 30 f6
     3915    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     3916    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    34203917    add ax, dx                                ; 01 d0
    34213918    dec ax                                    ; 48
     
    34293926    mov dx, strict word 00040h                ; ba 40 00
    34303927    mov ax, dx                                ; 89 d0
    3431     call 01600h                               ; e8 f3 e2
     3928    call 01600h                               ; e8 27 e4
    34323929    test al, al                               ; 84 c0
    3433     jne short 03314h                          ; 75 03
    3434     jmp near 0317bh                           ; e9 67 fe
     3930    je near 0305fh                            ; 0f 84 80 fe
    34353931    mov dx, strict word 0003eh                ; ba 3e 00
    34363932    mov ax, strict word 00040h                ; b8 40 00
    3437     call 01600h                               ; e8 e3 e2
     3933    call 01600h                               ; e8 18 e4
    34383934    and AL, strict byte 080h                  ; 24 80
    34393935    test al, al                               ; 84 c0
    3440     je short 03305h                           ; 74 e2
     3936    je short 031d1h                           ; 74 e3
    34413937    cli                                       ; fa
    34423938    mov dx, strict word 0003eh                ; ba 3e 00
    34433939    mov ax, strict word 00040h                ; b8 40 00
    3444     call 01600h                               ; e8 d3 e2
    3445     mov bl, al                                ; 88 c3
    3446     and bl, 07fh                              ; 80 e3 7f
    3447     xor bh, bh                                ; 30 ff
     3940    call 01600h                               ; e8 08 e4
     3941    and AL, strict byte 07fh                  ; 24 7f
     3942    movzx bx, al                              ; 0f b6 d8
    34483943    mov dx, strict word 0003eh                ; ba 3e 00
    34493944    mov ax, strict word 00040h                ; b8 40 00
    3450     call 0160eh                               ; e8 d1 e2
     3945    call 0160eh                               ; e8 08 e4
    34513946    mov dx, 003f4h                            ; ba f4 03
    34523947    in AL, DX                                 ; ec
     
    34553950    and AL, strict byte 0c0h                  ; 24 c0
    34563951    cmp AL, strict byte 0c0h                  ; 3c c0
    3457     je short 0335bh                           ; 74 12
    3458     mov ax, 001bdh                            ; b8 bd 01
    3459     push ax                                   ; 50
    3460     mov ax, 001f0h                            ; b8 f0 01
    3461     push ax                                   ; 50
    3462     mov ax, strict word 00007h                ; b8 07 00
    3463     push ax                                   ; 50
    3464     call 018fah                               ; e8 a2 e5
     3952    je short 03220h                           ; 74 0e
     3953    push 001bdh                               ; 68 bd 01
     3954    push 001f0h                               ; 68 f0 01
     3955    push strict byte 00007h                   ; 6a 07
     3956    call 018e9h                               ; e8 cc e6
    34653957    add sp, strict byte 00006h                ; 83 c4 06
    34663958    xor si, si                                ; 31 f6
    3467     jmp short 03364h                          ; eb 05
     3959    jmp short 03229h                          ; eb 05
    34683960    cmp si, strict byte 00007h                ; 83 fe 07
    3469     jnl short 0337dh                          ; 7d 19
     3961    jnl short 03241h                          ; 7d 18
    34703962    mov dx, 003f5h                            ; ba f5 03
    34713963    in AL, DX                                 ; ec
    34723964    db  02ah, 0e4h
    34733965    ; sub ah, ah                                ; 2a e4
    3474     mov byte [bp+si-018h], al                 ; 88 42 e8
    3475     mov bl, al                                ; 88 c3
    3476     xor bh, bh                                ; 30 ff
     3966    mov byte [bp+si-012h], al                 ; 88 42 ee
     3967    movzx bx, al                              ; 0f b6 d8
    34773968    lea dx, [si+042h]                         ; 8d 54 42
    34783969    mov ax, strict word 00040h                ; b8 40 00
    3479     call 0160eh                               ; e8 94 e2
     3970    call 0160eh                               ; e8 d0 e3
    34803971    inc si                                    ; 46
    3481     jmp short 0335fh                          ; eb e2
    3482     test byte [bp-018h], 0c0h                 ; f6 46 e8 c0
    3483     jne short 03386h                          ; 75 03
    3484     jmp near 0322eh                           ; e9 a8 fe
    3485     test byte [bp-017h], 002h                 ; f6 46 e9 02
    3486     je short 03398h                           ; 74 0c
     3972    jmp short 03224h                          ; eb e3
     3973    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
     3974    je near 0310ah                            ; 0f 84 c1 fe
     3975    test byte [bp-011h], 002h                 ; f6 46 ef 02
     3976    je short 0325bh                           ; 74 0c
    34873977    mov word [bp+01ah], 00300h                ; c7 46 1a 00 03
    34883978    or byte [bp+020h], 001h                   ; 80 4e 20 01
    3489     jmp near 03243h                           ; e9 ab fe
    3490     mov ax, 001bdh                            ; b8 bd 01
    3491     push ax                                   ; 50
    3492     mov ax, 00204h                            ; b8 04 02
    3493     push ax                                   ; 50
    3494     mov ax, strict word 00007h                ; b8 07 00
    3495     push ax                                   ; 50
    3496     call 018fah                               ; e8 53 e5
     3979    jmp near 02ed7h                           ; e9 7c fc
     3980    push 001bdh                               ; 68 bd 01
     3981    push 00204h                               ; 68 04 02
     3982    push strict byte 00007h                   ; 6a 07
     3983    call 018e9h                               ; e8 83 e6
    34973984    add sp, strict byte 00006h                ; 83 c4 06
    3498     jmp short 03383h                          ; eb d7
    3499     mov dl, byte [bp-008h]                    ; 8a 56 f8
    3500     xor dh, dh                                ; 30 f6
    3501     mov al, byte [bp-002h]                    ; 8a 46 fe
    3502     xor ah, ah                                ; 30 e4
    3503     call 02be0h                               ; e8 27 f8
     3985    jmp near 0310ah                           ; e9 9e fe
     3986    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     3987    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3988    call 02b02h                               ; e8 8b f8
    35043989    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    35053990    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    3506     jmp near 03243h                           ; e9 7f fe
    3507     mov ch, byte [bp+01ah]                    ; 8a 6e 1a
    3508     mov al, byte [bp+019h]                    ; 8a 46 19
    3509     xor ah, ah                                ; 30 e4
    3510     mov dx, ax                                ; 89 c2
    3511     mov al, byte [bp+017h]                    ; 8a 46 17
    3512     mov byte [bp-006h], al                    ; 88 46 fa
     3991    jmp near 02ed7h                           ; e9 55 fc
     3992    mov al, byte [bp+01ah]                    ; 8a 46 1a
     3993    mov byte [bp-008h], al                    ; 88 46 f8
     3994    mov dx, word [bp+018h]                    ; 8b 56 18
     3995    shr dx, 008h                              ; c1 ea 08
     3996    mov ax, word [bp+016h]                    ; 8b 46 16
     3997    shr ax, 008h                              ; c1 e8 08
     3998    mov byte [bp-002h], al                    ; 88 46 fe
    35133999    mov bl, byte [bp+012h]                    ; 8a 5e 12
    3514     mov byte [bp-002h], bl                    ; 88 5e fe
     4000    mov byte [bp-00ah], bl                    ; 88 5e f6
    35154001    cmp bl, 001h                              ; 80 fb 01
    3516     jnbe short 033f1h                         ; 77 12
     4002    jnbe short 032b6h                         ; 77 14
    35174003    cmp AL, strict byte 001h                  ; 3c 01
    3518     jnbe short 033f1h                         ; 77 0e
     4004    jnbe short 032b6h                         ; 77 10
    35194005    cmp dl, 04fh                              ; 80 fa 4f
    3520     jnbe short 033f1h                         ; 77 09
    3521     test ch, ch                               ; 84 ed
    3522     je short 033f1h                           ; 74 05
    3523     cmp ch, 012h                              ; 80 fd 12
    3524     jbe short 03406h                          ; 76 15
     4006    jnbe short 032b6h                         ; 77 0b
     4007    mov al, byte [bp-008h]                    ; 8a 46 f8
     4008    test al, al                               ; 84 c0
     4009    je short 032b6h                           ; 74 04
     4010    cmp AL, strict byte 012h                  ; 3c 12
     4011    jbe short 032cbh                          ; 76 15
    35254012    mov ax, word [bp+01ah]                    ; 8b 46 1a
    35264013    xor ah, ah                                ; 30 e4
     
    35284015    mov word [bp+01ah], ax                    ; 89 46 1a
    35294016    mov ax, strict word 00001h                ; b8 01 00
    3530     call 02bcah                               ; e8 c8 f7
     4017    call 02aedh                               ; e8 26 f8
    35314018    or byte [bp+020h], 001h                   ; 80 4e 20 01
    3532     mov al, byte [bp-002h]                    ; 8a 46 fe
    3533     xor ah, ah                                ; 30 e4
    3534     call 02ec2h                               ; e8 b4 fa
     4019    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4020    call 02dc1h                               ; e8 ef fa
    35354021    test ax, ax                               ; 85 c0
    3536     jne short 03415h                          ; 75 03
    3537     jmp near 02faeh                           ; e9 99 fb
    3538     mov dl, byte [bp-002h]                    ; 8a 56 fe
    3539     xor dh, dh                                ; 30 f6
     4022    je near 02ea5h                            ; 0f 84 cd fb
     4023    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    35404024    mov ax, dx                                ; 89 d0
    3541     call 02ccbh                               ; e8 ac f8
     4025    call 02be0h                               ; e8 ff f8
    35424026    test ax, ax                               ; 85 c0
    3543     jne short 0342fh                          ; 75 0c
     4027    jne short 032f0h                          ; 75 0b
    35444028    mov ax, dx                                ; 89 d0
    3545     call 02dbeh                               ; e8 96 f9
     4029    call 02cc7h                               ; e8 dd f9
    35464030    test ax, ax                               ; 85 c0
    3547     jne short 0342fh                          ; 75 03
    3548     jmp near 03086h                           ; e9 57 fc
    3549     mov CL, strict byte 00ch                  ; b1 0c
    3550     mov ax, word [bp+00ah]                    ; 8b 46 0a
    3551     shr ax, CL                                ; d3 e8
    3552     mov word [bp-010h], ax                    ; 89 46 f0
    3553     mov ah, byte [bp-010h]                    ; 8a 66 f0
    3554     mov CL, strict byte 004h                  ; b1 04
     4031    je near 02f7bh                            ; 0f 84 8b fc
    35554032    mov dx, word [bp+00ah]                    ; 8b 56 0a
    3556     sal dx, CL                                ; d3 e2
     4033    shr dx, 00ch                              ; c1 ea 0c
     4034    mov ah, dl                                ; 88 d4
     4035    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     4036    sal cx, 004h                              ; c1 e1 04
    35574037    mov bx, word [bp+014h]                    ; 8b 5e 14
    3558     add bx, dx                                ; 01 d3
    3559     cmp bx, dx                                ; 39 d3
    3560     jnc short 0344eh                          ; 73 02
     4038    add bx, cx                                ; 01 cb
     4039    cmp bx, cx                                ; 39 cb
     4040    jnc short 03309h                          ; 73 02
    35614041    db  0feh, 0c4h
    35624042    ; inc ah                                    ; fe c4
    3563     mov dl, ch                                ; 88 ea
    3564     xor dh, dh                                ; 30 f6
    3565     sal dx, 1                                 ; d1 e2
    3566     sal dx, 1                                 ; d1 e2
    3567     dec dx                                    ; 4a
    3568     mov word [bp-00ch], dx                    ; 89 56 f4
    3569     add dx, bx                                ; 01 da
     4043    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     4044    sal cx, 002h                              ; c1 e1 02
     4045    dec cx                                    ; 49
     4046    mov dx, bx                                ; 89 da
     4047    add dx, cx                                ; 01 ca
    35704048    cmp dx, bx                                ; 39 da
    3571     jnc short 0346bh                          ; 73 0b
    3572     mov ax, word [bp+01ah]                    ; 8b 46 1a
    3573     xor ah, ah                                ; 30 e4
    3574     or ah, 009h                               ; 80 cc 09
    3575     jmp near 030dbh                           ; e9 70 fc
     4049    jc near 02fbbh                            ; 0f 82 a0 fc
    35764050    mov AL, strict byte 006h                  ; b0 06
    35774051    mov dx, strict word 0000ah                ; ba 0a 00
     
    35834057    mov dx, strict word 00004h                ; ba 04 00
    35844058    out DX, AL                                ; ee
    3585     mov al, bh                                ; 88 f8
    3586     out DX, AL                                ; ee
    3587     xor al, bh                                ; 30 f8
     4059    shr bx, 008h                              ; c1 eb 08
     4060    mov al, bl                                ; 88 d8
     4061    out DX, AL                                ; ee
     4062    xor al, bl                                ; 30 d8
    35884063    mov dx, strict word 0000ch                ; ba 0c 00
    35894064    out DX, AL                                ; ee
    3590     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4065    mov al, cl                                ; 88 c8
    35914066    mov dx, strict word 00005h                ; ba 05 00
    35924067    out DX, AL                                ; ee
    3593     mov al, byte [bp-00bh]                    ; 8a 46 f5
     4068    shr cx, 008h                              ; c1 e9 08
     4069    mov al, cl                                ; 88 c8
    35944070    out DX, AL                                ; ee
    35954071    mov AL, strict byte 04ah                  ; b0 4a
     
    36024078    mov dx, strict word 0000ah                ; ba 0a 00
    36034079    out DX, AL                                ; ee
    3604     mov al, byte [bp-002h]                    ; 8a 46 fe
    3605     xor ah, ah                                ; 30 e4
    3606     call 02c38h                               ; e8 8d f7
     4080    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4081    call 02b54h                               ; e8 f6 f7
    36074082    mov AL, strict byte 04dh                  ; b0 4d
    36084083    mov dx, 003f5h                            ; ba f5 03
    36094084    out DX, AL                                ; ee
    3610     mov al, byte [bp-006h]                    ; 8a 46 fa
    3611     xor ah, ah                                ; 30 e4
    3612     mov dx, ax                                ; 89 c2
    3613     sal dx, 1                                 ; d1 e2
    3614     sal dx, 1                                 ; d1 e2
    3615     mov al, byte [bp-002h]                    ; 8a 46 fe
     4085    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4086    sal dx, 002h                              ; c1 e2 02
     4087    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    36164088    or ax, dx                                 ; 09 d0
    36174089    mov dx, 003f5h                            ; ba f5 03
     
    36194091    mov AL, strict byte 002h                  ; b0 02
    36204092    out DX, AL                                ; ee
    3621     mov al, ch                                ; 88 e8
    3622     out DX, AL                                ; ee
    3623     xor al, ch                                ; 30 e8
     4093    mov al, byte [bp-008h]                    ; 8a 46 f8
     4094    out DX, AL                                ; ee
     4095    xor al, al                                ; 30 c0
    36244096    out DX, AL                                ; ee
    36254097    mov AL, strict byte 0f6h                  ; b0 f6
     
    36284100    mov dx, strict word 00040h                ; ba 40 00
    36294101    mov ax, dx                                ; 89 d0
    3630     call 01600h                               ; e8 26 e1
     4102    call 01600h                               ; e8 75 e2
    36314103    test al, al                               ; 84 c0
    3632     jne short 034e4h                          ; 75 06
    3633     call 02c13h                               ; e8 32 f7
    3634     jmp near 02faeh                           ; e9 ca fa
     4104    jne short 03395h                          ; 75 06
     4105    call 02b2ch                               ; e8 9a f7
     4106    jmp near 02ea5h                           ; e9 10 fb
    36354107    mov dx, strict word 0003eh                ; ba 3e 00
    36364108    mov ax, strict word 00040h                ; b8 40 00
    3637     call 01600h                               ; e8 13 e1
     4109    call 01600h                               ; e8 62 e2
    36384110    and AL, strict byte 080h                  ; 24 80
    36394111    test al, al                               ; 84 c0
    3640     je short 034d2h                           ; 74 df
     4112    je short 03383h                           ; 74 df
    36414113    cli                                       ; fa
    36424114    mov dx, strict word 0003eh                ; ba 3e 00
    36434115    mov ax, strict word 00040h                ; b8 40 00
    3644     call 01600h                               ; e8 03 e1
    3645     mov bl, al                                ; 88 c3
    3646     and bl, 07fh                              ; 80 e3 7f
    3647     xor bh, bh                                ; 30 ff
     4116    call 01600h                               ; e8 52 e2
     4117    and AL, strict byte 07fh                  ; 24 7f
     4118    movzx bx, al                              ; 0f b6 d8
    36484119    mov dx, strict word 0003eh                ; ba 3e 00
    36494120    mov ax, strict word 00040h                ; b8 40 00
    3650     call 0160eh                               ; e8 01 e1
     4121    call 0160eh                               ; e8 52 e2
    36514122    mov dx, 003f4h                            ; ba f4 03
    36524123    in AL, DX                                 ; ec
     
    36554126    and AL, strict byte 0c0h                  ; 24 c0
    36564127    cmp AL, strict byte 0c0h                  ; 3c c0
    3657     je short 0352bh                           ; 74 12
    3658     mov ax, 001bdh                            ; b8 bd 01
    3659     push ax                                   ; 50
    3660     mov ax, 001f0h                            ; b8 f0 01
    3661     push ax                                   ; 50
    3662     mov ax, strict word 00007h                ; b8 07 00
    3663     push ax                                   ; 50
    3664     call 018fah                               ; e8 d2 e3
     4128    je short 033d6h                           ; 74 0e
     4129    push 001bdh                               ; 68 bd 01
     4130    push 001f0h                               ; 68 f0 01
     4131    push strict byte 00007h                   ; 6a 07
     4132    call 018e9h                               ; e8 16 e5
    36654133    add sp, strict byte 00006h                ; 83 c4 06
    36664134    xor si, si                                ; 31 f6
    3667     jmp short 03534h                          ; eb 05
     4135    jmp short 033dfh                          ; eb 05
    36684136    cmp si, strict byte 00007h                ; 83 fe 07
    3669     jnl short 0354dh                          ; 7d 19
     4137    jnl short 033f7h                          ; 7d 18
    36704138    mov dx, 003f5h                            ; ba f5 03
    36714139    in AL, DX                                 ; ec
    36724140    db  02ah, 0e4h
    36734141    ; sub ah, ah                                ; 2a e4
    3674     mov byte [bp+si-018h], al                 ; 88 42 e8
    3675     mov bl, al                                ; 88 c3
    3676     xor bh, bh                                ; 30 ff
     4142    mov byte [bp+si-012h], al                 ; 88 42 ee
     4143    movzx bx, al                              ; 0f b6 d8
    36774144    lea dx, [si+042h]                         ; 8d 54 42
    36784145    mov ax, strict word 00040h                ; b8 40 00
    3679     call 0160eh                               ; e8 c4 e0
     4146    call 0160eh                               ; e8 1a e2
    36804147    inc si                                    ; 46
    3681     jmp short 0352fh                          ; eb e2
    3682     test byte [bp-018h], 0c0h                 ; f6 46 e8 c0
    3683     je short 0356eh                           ; 74 1b
    3684     test byte [bp-017h], 002h                 ; f6 46 e9 02
    3685     je short 0355ch                           ; 74 03
    3686     jmp near 0338ch                           ; e9 30 fe
    3687     mov ax, 001bdh                            ; b8 bd 01
    3688     push ax                                   ; 50
    3689     mov ax, 00214h                            ; b8 14 02
    3690     push ax                                   ; 50
    3691     mov ax, strict word 00007h                ; b8 07 00
    3692     push ax                                   ; 50
    3693     call 018fah                               ; e8 8f e3
     4148    jmp short 033dah                          ; eb e3
     4149    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
     4150    je short 03413h                           ; 74 16
     4151    test byte [bp-011h], 002h                 ; f6 46 ef 02
     4152    jne near 0324fh                           ; 0f 85 4a fe
     4153    push 001bdh                               ; 68 bd 01
     4154    push 00214h                               ; 68 14 02
     4155    push strict byte 00007h                   ; 6a 07
     4156    call 018e9h                               ; e8 d9 e4
    36944157    add sp, strict byte 00006h                ; 83 c4 06
    36954158    xor al, al                                ; 30 c0
    36964159    mov byte [bp+01bh], al                    ; 88 46 1b
    36974160    xor ah, ah                                ; 30 e4
    3698     call 02bcah                               ; e8 52 f6
    3699     mov al, byte [bp-002h]                    ; 8a 46 fe
    3700     xor ah, ah                                ; 30 e4
     4161    call 02aedh                               ; e8 d0 f6
     4162    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    37014163    xor dx, dx                                ; 31 d2
    3702     call 02be0h                               ; e8 5e f6
    3703     jmp near 0323fh                           ; e9 ba fc
    3704     mov byte [bp-002h], ah                    ; 88 66 fe
     4164    call 02b02h                               ; e8 dc f6
     4165    jmp near 03119h                           ; e9 f0 fc
     4166    mov byte [bp-00ah], ah                    ; 88 66 f6
    37054167    cmp ah, 001h                              ; 80 fc 01
    3706     jbe short 035aeh                          ; 76 21
     4168    jbe short 03451h                          ; 76 20
    37074169    xor ax, ax                                ; 31 c0
    37084170    mov word [bp+01ah], ax                    ; 89 46 1a
     
    37124174    mov word [bp+00ah], ax                    ; 89 46 0a
    37134175    mov word [bp+00ch], ax                    ; 89 46 0c
    3714     mov al, ch                                ; 88 e8
    3715     xor ah, ah                                ; 30 e4
     4176    movzx ax, cl                              ; 0f b6 c1
    37164177    mov word [bp+016h], ax                    ; 89 46 16
    37174178    mov word [bp+020h], dx                    ; 89 56 20
    3718     jmp near 03243h                           ; e9 95 fc
     4179    jmp near 02ed7h                           ; e9 86 fa
    37194180    mov ax, strict word 00010h                ; b8 10 00
    3720     call 0165ch                               ; e8 a8 e0
     4181    call 0165ch                               ; e8 05 e2
    37214182    mov bl, al                                ; 88 c3
    3722     xor ch, ch                                ; 30 ed
     4183    xor cl, cl                                ; 30 c9
    37234184    test AL, strict byte 0f0h                 ; a8 f0
    3724     je short 035beh                           ; 74 02
    3725     mov CH, strict byte 001h                  ; b5 01
     4185    je short 03461h                           ; 74 02
     4186    mov CL, strict byte 001h                  ; b1 01
    37264187    test bl, 00fh                             ; f6 c3 0f
    3727     je short 035c5h                           ; 74 02
    3728     db  0feh, 0c5h
    3729     ; inc ch                                    ; fe c5
    3730     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3731     jne short 035d1h                          ; 75 06
    3732     mov CL, strict byte 004h                  ; b1 04
    3733     shr bl, CL                                ; d2 eb
    3734     jmp short 035d4h                          ; eb 03
     4188    je short 03468h                           ; 74 02
     4189    db  0feh, 0c1h
     4190    ; inc cl                                    ; fe c1
     4191    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     4192    jne short 03473h                          ; 75 05
     4193    shr bl, 004h                              ; c0 eb 04
     4194    jmp short 03476h                          ; eb 03
    37354195    and bl, 00fh                              ; 80 e3 0f
    3736     mov byte [bp+015h], 000h                  ; c6 46 15 00
    3737     mov al, bl                                ; 88 d8
     4196    xor al, al                                ; 30 c0
     4197    mov byte [bp+015h], al                    ; 88 46 15
     4198    movzx si, bl                              ; 0f b6 f3
     4199    mov word [bp+014h], si                    ; 89 76 14
    37384200    xor ah, ah                                ; 30 e4
    3739     mov word [bp+014h], ax                    ; 89 46 14
    3740     mov word [bp+01ah], strict word 00000h    ; c7 46 1a 00 00
    3741     mov si, word [bp+016h]                    ; 8b 76 16
    3742     and si, 0ff00h                            ; 81 e6 00 ff
    3743     mov dl, ch                                ; 88 ea
    3744     xor dh, dh                                ; 30 f6
    3745     or si, dx                                 ; 09 d6
    3746     mov word [bp+016h], si                    ; 89 76 16
     4201    mov word [bp+01ah], ax                    ; 89 46 1a
     4202    mov dx, word [bp+016h]                    ; 8b 56 16
     4203    xor dl, dl                                ; 30 d2
     4204    movzx ax, cl                              ; 0f b6 c1
     4205    or dx, ax                                 ; 09 c2
     4206    mov word [bp+016h], dx                    ; 89 56 16
    37474207    cmp bl, 008h                              ; 80 fb 08
    3748     jnbe short 03655h                         ; 77 5c
    3749     mov si, ax                                ; 89 c6
    3750     sal si, 1                                 ; d1 e6
    3751     mov ax, word [bp+016h]                    ; 8b 46 16
    3752     xor ah, ah                                ; 30 e4
     4208    jnbe short 034f1h                         ; 77 59
     4209    add si, si                                ; 01 f6
     4210    mov ax, dx                                ; 89 d0
     4211    xor ah, dh                                ; 30 f4
    37534212    mov bx, ax                                ; 89 c3
    37544213    or bh, 001h                               ; 80 cf 01
    3755     jmp word [cs:si+02eeah]                   ; 2e ff a4 ea 2e
     4214    jmp word [cs:si+02de2h]                   ; 2e ff a4 e2 2d
    37564215    mov word [bp+018h], strict word 00000h    ; c7 46 18 00 00
    37574216    mov byte [bp+017h], 000h                  ; c6 46 17 00
    3758     jmp short 03667h                          ; eb 50
     4217    jmp short 034ffh                          ; eb 4c
    37594218    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    37604219    mov word [bp+016h], bx                    ; 89 5e 16
    3761     jmp short 03667h                          ; eb 46
     4220    jmp short 034ffh                          ; eb 42
    37624221    mov word [bp+018h], 04f0fh                ; c7 46 18 0f 4f
    3763     jmp short 0361ch                          ; eb f4
     4222    jmp short 034b8h                          ; eb f4
    37644223    mov word [bp+018h], 04f09h                ; c7 46 18 09 4f
    3765     jmp short 0361ch                          ; eb ed
     4224    jmp short 034b8h                          ; eb ed
    37664225    mov word [bp+018h], 04f12h                ; c7 46 18 12 4f
    3767     jmp short 0361ch                          ; eb e6
     4226    jmp short 034b8h                          ; eb e6
    37684227    mov word [bp+018h], 04f24h                ; c7 46 18 24 4f
    3769     jmp short 0361ch                          ; eb df
     4228    jmp short 034b8h                          ; eb df
    37704229    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    37714230    mov word [bp+016h], ax                    ; 89 46 16
    3772     jmp short 03667h                          ; eb 20
     4231    jmp short 034ffh                          ; eb 1c
    37734232    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    3774     jmp short 03642h                          ; eb f4
     4233    jmp short 034deh                          ; eb f4
    37754234    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    3776     jmp short 0361ch                          ; eb c7
    3777     mov ax, 001bdh                            ; b8 bd 01
    3778     push ax                                   ; 50
    3779     mov ax, 00225h                            ; b8 25 02
    3780     push ax                                   ; 50
    3781     mov ax, strict word 00007h                ; b8 07 00
    3782     push ax                                   ; 50
    3783     call 018fah                               ; e8 96 e2
     4235    jmp short 034b8h                          ; eb c7
     4236    push 001bdh                               ; 68 bd 01
     4237    push 00225h                               ; 68 25 02
     4238    push strict byte 00007h                   ; 6a 07
     4239    call 018e9h                               ; e8 ed e3
    37844240    add sp, strict byte 00006h                ; 83 c4 06
    37854241    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    37864242    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    3787     jmp near 0323fh                           ; e9 cb fb
    3788     mov byte [bp-002h], ah                    ; 88 66 fe
     4243    jmp near 03119h                           ; e9 0d fc
     4244    mov byte [bp-00ah], ah                    ; 88 66 f6
    37894245    cmp ah, 001h                              ; 80 fc 01
    3790     jbe short 03682h                          ; 76 06
     4246    jbe short 0351ah                          ; 76 06
    37914247    mov word [bp+01ah], si                    ; 89 76 1a
    3792     jmp near 035a8h                           ; e9 26 ff
     4248    jmp near 0344bh                           ; e9 31 ff
    37934249    mov ax, strict word 00010h                ; b8 10 00
    3794     call 0165ch                               ; e8 d4 df
    3795     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3796     jne short 03696h                          ; 75 08
    3797     mov CL, strict byte 004h                  ; b1 04
     4250    call 0165ch                               ; e8 3c e1
     4251    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     4252    jne short 0352dh                          ; 75 07
    37984253    mov bl, al                                ; 88 c3
    3799     shr bl, CL                                ; d2 eb
    3800     jmp short 0369bh                          ; eb 05
     4254    shr bl, 004h                              ; c0 eb 04
     4255    jmp short 03532h                          ; eb 05
    38014256    mov bl, al                                ; 88 c3
    38024257    and bl, 00fh                              ; 80 e3 0f
     
    38054260    xor ah, ah                                ; 30 e4
    38064261    test bl, bl                               ; 84 db
    3807     je short 036abh                           ; 74 03
     4262    je short 03542h                           ; 74 03
    38084263    or ah, 001h                               ; 80 cc 01
    38094264    mov word [bp+01ah], ax                    ; 89 46 1a
    3810     jmp near 03243h                           ; e9 92 fb
     4265    jmp near 02ed7h                           ; e9 8f f9
    38114266    cmp ah, 001h                              ; 80 fc 01
    3812     jbe short 036c2h                          ; 76 0c
     4267    jbe short 03559h                          ; 76 0c
    38134268    mov word [bp+01ah], si                    ; 89 76 1a
    38144269    mov ax, strict word 00001h                ; b8 01 00
    3815     call 02bcah                               ; e8 0b f5
    3816     jmp near 035a8h                           ; e9 e6 fe
     4270    call 02aedh                               ; e8 97 f5
     4271    jmp near 0344bh                           ; e9 f2 fe
    38174272    mov ax, word [bp+01ah]                    ; 8b 46 1a
    38184273    xor ah, ah                                ; 30 e4
     
    38204275    mov word [bp+01ah], ax                    ; 89 46 1a
    38214276    mov ax, strict word 00006h                ; b8 06 00
    3822     jmp near 02f80h                           ; e9 ad f8
    3823     mov bx, 00c16h                            ; bb 16 0c
     4277    jmp near 02e83h                           ; e9 19 f9
     4278    mov bx, 00c08h                            ; bb 08 0c
    38244279    mov cx, ds                                ; 8c d9
    38254280    mov ax, strict word 00004h                ; b8 04 00
    3826     call 018bdh                               ; e8 df e1
    3827     mov al, byte [bp+01bh]                    ; 8a 46 1b
    3828     xor ah, ah                                ; 30 e4
     4281    call 018aeh                               ; e8 39 e3
     4282    mov ax, word [bp+01ah]                    ; 8b 46 1a
     4283    shr ax, 008h                              ; c1 e8 08
    38294284    push ax                                   ; 50
    3830     mov ax, 001bdh                            ; b8 bd 01
    3831     push ax                                   ; 50
    3832     mov ax, 0023ah                            ; b8 3a 02
    3833     push ax                                   ; 50
    3834     mov ax, strict word 00004h                ; b8 04 00
    3835     push ax                                   ; 50
    3836     call 018fah                               ; e8 07 e2
     4285    push 001bdh                               ; 68 bd 01
     4286    push 0023ah                               ; 68 3a 02
     4287    push strict byte 00004h                   ; 6a 04
     4288    call 018e9h                               ; e8 62 e3
    38374289    add sp, strict byte 00008h                ; 83 c4 08
    3838     jmp near 02f72h                           ; e9 79 f8
    3839 _cdemu_init:                                 ; 0xf36f9 LB 0x16
     4290    jmp near 02e75h                           ; e9 e8 f8
     4291_cdemu_init:                                 ; 0xf358d LB 0x16
    38404292    push bp                                   ; 55
    38414293    mov bp, sp                                ; 89 e5
    38424294    mov dx, strict word 0000eh                ; ba 0e 00
    38434295    mov ax, strict word 00040h                ; b8 40 00
    3844     call 0161ch                               ; e8 17 df
     4296    call 0161ch                               ; e8 83 e0
    38454297    xor bx, bx                                ; 31 db
    38464298    mov dx, 00322h                            ; ba 22 03
    3847     call 0160eh                               ; e8 01 df
     4299    call 0160eh                               ; e8 6d e0
    38484300    pop bp                                    ; 5d
    38494301    retn                                      ; c3
    3850 _cdemu_isactive:                             ; 0xf370f LB 0x14
     4302_cdemu_isactive:                             ; 0xf35a3 LB 0x14
    38514303    push bp                                   ; 55
    38524304    mov bp, sp                                ; 89 e5
    38534305    mov dx, strict word 0000eh                ; ba 0e 00
    38544306    mov ax, strict word 00040h                ; b8 40 00
    3855     call 0161ch                               ; e8 01 df
     4307    call 0161ch                               ; e8 6d e0
    38564308    mov dx, 00322h                            ; ba 22 03
    3857     call 01600h                               ; e8 df de
     4309    call 01600h                               ; e8 4b e0
    38584310    pop bp                                    ; 5d
    38594311    retn                                      ; c3
    3860 _cdemu_emulated_drive:                       ; 0xf3723 LB 0x14
     4312_cdemu_emulated_drive:                       ; 0xf35b7 LB 0x14
    38614313    push bp                                   ; 55
    38624314    mov bp, sp                                ; 89 e5
    38634315    mov dx, strict word 0000eh                ; ba 0e 00
    38644316    mov ax, strict word 00040h                ; b8 40 00
    3865     call 0161ch                               ; e8 ed de
     4317    call 0161ch                               ; e8 59 e0
    38664318    mov dx, 00324h                            ; ba 24 03
    3867     call 01600h                               ; e8 cb de
     4319    call 01600h                               ; e8 37 e0
    38684320    pop bp                                    ; 5d
    38694321    retn                                      ; c3
    3870 _int13_eltorito:                             ; 0xf3737 LB 0x187
     4322_int13_eltorito:                             ; 0xf35cb LB 0x17d
    38714323    push si                                   ; 56
    38724324    push di                                   ; 57
     
    38754327    mov dx, strict word 0000eh                ; ba 0e 00
    38764328    mov ax, strict word 00040h                ; b8 40 00
    3877     call 0161ch                               ; e8 d7 de
     4329    call 0161ch                               ; e8 43 e0
    38784330    mov si, 00322h                            ; be 22 03
    38794331    mov di, ax                                ; 89 c7
    3880     mov al, byte [bp+01bh]                    ; 8a 46 1b
    3881     xor ah, ah                                ; 30 e4
     4332    mov ax, word [bp+01ah]                    ; 8b 46 1a
     4333    shr ax, 008h                              ; c1 e8 08
    38824334    cmp ax, strict word 0004bh                ; 3d 4b 00
    3883     jc short 0375eh                           ; 72 0a
    3884     jbe short 0377eh                          ; 76 28
     4335    jc short 035f3h                           ; 72 0a
     4336    jbe short 0360eh                          ; 76 23
    38854337    cmp ax, strict word 0004dh                ; 3d 4d 00
    3886     jbe short 03763h                          ; 76 08
    3887     jmp near 03880h                           ; e9 22 01
     4338    jbe short 035fah                          ; 76 0a
     4339    jmp near 0370ah                           ; e9 17 01
    38884340    cmp ax, strict word 0004ah                ; 3d 4a 00
    3889     jne short 0377bh                          ; 75 18
     4341    jne near 0370ah                           ; 0f 85 10 01
    38904342    push word [bp+01ah]                       ; ff 76 1a
    3891     mov ax, 00254h                            ; b8 54 02
    3892     push ax                                   ; 50
    3893     mov ax, 00263h                            ; b8 63 02
    3894     push ax                                   ; 50
    3895     mov ax, strict word 00007h                ; b8 07 00
    3896     push ax                                   ; 50
    3897     call 018fah                               ; e8 85 e1
     4343    push 00254h                               ; 68 54 02
     4344    push 00263h                               ; 68 63 02
     4345    push strict byte 00007h                   ; 6a 07
     4346    call 018e9h                               ; e8 e1 e2
    38984347    add sp, strict byte 00008h                ; 83 c4 08
    3899     jmp near 0389fh                           ; e9 24 01
    3900     jmp near 03880h                           ; e9 02 01
     4348    jmp near 03727h                           ; e9 19 01
    39014349    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39024350    mov ax, word [bp+008h]                    ; 8b 46 08
    39034351    mov bx, strict word 00013h                ; bb 13 00
    3904     call 0160eh                               ; e8 84 de
     4352    call 0160eh                               ; e8 f4 df
    39054353    mov es, di                                ; 8e c7
    3906     mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
    3907     xor bh, bh                                ; 30 ff
     4354    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
    39084355    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39094356    inc dx                                    ; 42
    39104357    mov ax, word [bp+008h]                    ; 8b 46 08
    3911     call 0160eh                               ; e8 72 de
     4358    call 0160eh                               ; e8 e3 df
    39124359    mov es, di                                ; 8e c7
    3913     mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
    3914     xor bh, bh                                ; 30 ff
     4360    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
    39154361    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39164362    inc dx                                    ; 42
    39174363    inc dx                                    ; 42
    39184364    mov ax, word [bp+008h]                    ; 8b 46 08
    3919     call 0160eh                               ; e8 5f de
     4365    call 0160eh                               ; e8 d1 df
    39204366    mov es, di                                ; 8e c7
    3921     mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
    3922     xor bh, bh                                ; 30 ff
     4367    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
    39234368    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39244369    add dx, strict byte 00003h                ; 83 c2 03
    39254370    mov ax, word [bp+008h]                    ; 8b 46 08
    3926     call 0160eh                               ; e8 4b de
     4371    call 0160eh                               ; e8 be df
    39274372    mov es, di                                ; 8e c7
    39284373    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    39314376    add dx, strict byte 00004h                ; 83 c2 04
    39324377    mov ax, word [bp+008h]                    ; 8b 46 08
    3933     call 0164ah                               ; e8 71 de
     4378    call 0164ah                               ; e8 e4 df
    39344379    mov es, di                                ; 8e c7
    39354380    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    39374382    add dx, strict byte 00008h                ; 83 c2 08
    39384383    mov ax, word [bp+008h]                    ; 8b 46 08
    3939     call 0162ah                               ; e8 3f de
     4384    call 0162ah                               ; e8 b2 df
    39404385    mov es, di                                ; 8e c7
    39414386    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    39434388    add dx, strict byte 0000ah                ; 83 c2 0a
    39444389    mov ax, word [bp+008h]                    ; 8b 46 08
    3945     call 0162ah                               ; e8 2d de
     4390    call 0162ah                               ; e8 a0 df
    39464391    mov es, di                                ; 8e c7
    39474392    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    39494394    add dx, strict byte 0000ch                ; 83 c2 0c
    39504395    mov ax, word [bp+008h]                    ; 8b 46 08
    3951     call 0162ah                               ; e8 1b de
     4396    call 0162ah                               ; e8 8e df
    39524397    mov es, di                                ; 8e c7
    39534398    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    39554400    add dx, strict byte 0000eh                ; 83 c2 0e
    39564401    mov ax, word [bp+008h]                    ; 8b 46 08
    3957     call 0162ah                               ; e8 09 de
     4402    call 0162ah                               ; e8 7c df
    39584403    mov es, di                                ; 8e c7
    3959     mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
    3960     xor bh, bh                                ; 30 ff
     4404    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
    39614405    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39624406    add dx, strict byte 00010h                ; 83 c2 10
    39634407    mov ax, word [bp+008h]                    ; 8b 46 08
    3964     call 0160eh                               ; e8 d9 dd
     4408    call 0160eh                               ; e8 4d df
    39654409    mov es, di                                ; 8e c7
    3966     mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
    3967     xor bh, bh                                ; 30 ff
     4410    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
    39684411    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39694412    add dx, strict byte 00011h                ; 83 c2 11
    39704413    mov ax, word [bp+008h]                    ; 8b 46 08
    3971     call 0160eh                               ; e8 c5 dd
     4414    call 0160eh                               ; e8 3a df
    39724415    mov es, di                                ; 8e c7
    3973     mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
    3974     xor bh, bh                                ; 30 ff
     4416    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
    39754417    mov dx, word [bp+00eh]                    ; 8b 56 0e
    39764418    add dx, strict byte 00012h                ; 83 c2 12
    39774419    mov ax, word [bp+008h]                    ; 8b 46 08
    3978     call 0160eh                               ; e8 b1 dd
     4420    call 0160eh                               ; e8 27 df
    39794421    test byte [bp+01ah], 0ffh                 ; f6 46 1a ff
    3980     jne short 03869h                          ; 75 06
     4422    jne short 036f3h                          ; 75 06
    39814423    mov es, di                                ; 8e c7
    39824424    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    39854427    mov dx, strict word 00074h                ; ba 74 00
    39864428    mov ax, strict word 00040h                ; b8 40 00
    3987     call 0160eh                               ; e8 96 dd
     4429    call 0160eh                               ; e8 0c df
    39884430    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    39894431    pop bp                                    ; 5d
     
    39914433    pop si                                    ; 5e
    39924434    retn                                      ; c3
    3993     mov bx, 00c16h                            ; bb 16 0c
     4435    mov bx, 00c08h                            ; bb 08 0c
    39944436    mov cx, ds                                ; 8c d9
    39954437    mov ax, strict word 00004h                ; b8 04 00
    3996     call 018bdh                               ; e8 32 e0
    3997     mov al, byte [bp+01bh]                    ; 8a 46 1b
    3998     xor ah, ah                                ; 30 e4
     4438    call 018aeh                               ; e8 99 e1
     4439    mov ax, word [bp+01ah]                    ; 8b 46 1a
     4440    shr ax, 008h                              ; c1 e8 08
    39994441    push ax                                   ; 50
    4000     mov ax, 00254h                            ; b8 54 02
    4001     push ax                                   ; 50
    4002     mov ax, 00289h                            ; b8 89 02
    4003     push ax                                   ; 50
    4004     mov ax, strict word 00004h                ; b8 04 00
    4005     jmp near 03771h                           ; e9 d2 fe
     4442    push 00254h                               ; 68 54 02
     4443    push 00289h                               ; 68 89 02
     4444    push strict byte 00004h                   ; 6a 04
     4445    jmp near 03605h                           ; e9 de fe
    40064446    mov ax, word [bp+01ah]                    ; 8b 46 1a
    40074447    xor ah, ah                                ; 30 e4
    40084448    or ah, 001h                               ; 80 cc 01
    40094449    mov word [bp+01ah], ax                    ; 89 46 1a
    4010     mov bl, byte [bp+01bh]                    ; 8a 5e 1b
     4450    mov bx, ax                                ; 89 c3
     4451    shr bx, 008h                              ; c1 eb 08
    40114452    xor bh, bh                                ; 30 ff
    40124453    mov dx, strict word 00074h                ; ba 74 00
    40134454    mov ax, strict word 00040h                ; b8 40 00
    4014     call 0160eh                               ; e8 56 dd
     4455    call 0160eh                               ; e8 cc de
    40154456    or byte [bp+020h], 001h                   ; 80 4e 20 01
    4016     jmp short 0387ch                          ; eb be
    4017 device_is_cdrom_:                            ; 0xf38be LB 0x3c
     4457    jmp short 03706h                          ; eb be
     4458device_is_cdrom_:                            ; 0xf3748 LB 0x32
    40184459    push bx                                   ; 53
    4019     push cx                                   ; 51
    40204460    push dx                                   ; 52
    40214461    push bp                                   ; 55
     
    40244464    mov dx, strict word 0000eh                ; ba 0e 00
    40254465    mov ax, strict word 00040h                ; b8 40 00
    4026     call 0161ch                               ; e8 4d dd
    4027     mov cx, ax                                ; 89 c1
     4466    call 0161ch                               ; e8 c4 de
    40284467    cmp bl, 010h                              ; 80 fb 10
    4029     jc short 038dah                           ; 72 04
     4468    jc short 03761h                           ; 72 04
    40304469    xor ax, ax                                ; 31 c0
    4031     jmp short 038f5h                          ; eb 1b
    4032     mov al, bl                                ; 88 d8
    4033     xor ah, ah                                ; 30 e4
    4034     mov bx, strict word 00018h                ; bb 18 00
    4035     imul bx                                   ; f7 eb
    4036     mov es, cx                                ; 8e c1
    4037     mov bx, ax                                ; 89 c3
     4470    jmp short 03776h                          ; eb 15
     4471    xor bh, bh                                ; 30 ff
     4472    imul bx, bx, strict byte 00018h           ; 6b db 18
     4473    mov es, ax                                ; 8e c0
    40384474    add bx, 00122h                            ; 81 c3 22 01
    40394475    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4040     jne short 038d6h                          ; 75 e4
     4476    jne short 0375dh                          ; 75 ea
    40414477    mov ax, strict word 00001h                ; b8 01 00
    40424478    pop bp                                    ; 5d
    40434479    pop dx                                    ; 5a
    4044     pop cx                                    ; 59
    40454480    pop bx                                    ; 5b
    40464481    retn                                      ; c3
    4047 cdrom_boot_:                                 ; 0xf38fa LB 0x468
     4482cdrom_boot_:                                 ; 0xf377a LB 0x42f
    40484483    push bx                                   ; 53
    40494484    push cx                                   ; 51
     
    40514486    push si                                   ; 56
    40524487    push di                                   ; 57
    4053     push bp                                   ; 55
    4054     mov bp, sp                                ; 89 e5
    4055     sub sp, 0081ch                            ; 81 ec 1c 08
     4488    enter 0081ah, 000h                        ; c8 1a 08 00
    40564489    mov dx, strict word 0000eh                ; ba 0e 00
    40574490    mov ax, strict word 00040h                ; b8 40 00
    4058     call 0161ch                               ; e8 0d dd
     4491    call 0161ch                               ; e8 90 de
    40594492    mov word [bp-00ch], ax                    ; 89 46 f4
    40604493    mov si, 00322h                            ; be 22 03
    4061     mov word [bp-008h], ax                    ; 89 46 f8
    4062     mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
     4494    mov word [bp-00eh], ax                    ; 89 46 f2
     4495    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    40634496    mov word [bp-006h], ax                    ; 89 46 fa
    40644497    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    4065     jmp short 0392fh                          ; eb 09
     4498    jmp short 037ach                          ; eb 09
    40664499    inc byte [bp-004h]                        ; fe 46 fc
    40674500    cmp byte [bp-004h], 010h                  ; 80 7e fc 10
    4068     jnc short 0393bh                          ; 73 0c
    4069     mov al, byte [bp-004h]                    ; 8a 46 fc
    4070     xor ah, ah                                ; 30 e4
    4071     call 038beh                               ; e8 87 ff
     4501    jnc short 037b7h                          ; 73 0b
     4502    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4503    call 03748h                               ; e8 95 ff
    40724504    test ax, ax                               ; 85 c0
    4073     je short 03926h                           ; 74 eb
     4505    je short 037a3h                           ; 74 ec
    40744506    cmp byte [bp-004h], 010h                  ; 80 7e fc 10
    4075     jc short 03947h                           ; 72 06
     4507    jc short 037c3h                           ; 72 06
    40764508    mov ax, strict word 00002h                ; b8 02 00
    4077     jmp near 03d00h                           ; e9 b9 03
     4509    jmp near 03b49h                           ; e9 86 03
    40784510    mov cx, strict word 0000ch                ; b9 0c 00
    40794511    xor bx, bx                                ; 31 db
    40804512    mov dx, ss                                ; 8c d2
    4081     lea ax, [bp-01ch]                         ; 8d 46 e4
    4082     call 08dbbh                               ; e8 67 54
    4083     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4513    lea ax, [bp-01ah]                         ; 8d 46 e6
     4514    call 0885ah                               ; e8 8a 50
     4515    mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
    40844516    mov ax, strict word 00011h                ; b8 11 00
    40854517    xor dx, dx                                ; 31 d2
     
    40874519    xchg dh, dl                               ; 86 d6
    40884520    xchg dx, ax                               ; 92
    4089     mov word [bp-01ah], ax                    ; 89 46 e6
    4090     mov word [bp-018h], dx                    ; 89 56 e8
     4521    mov word [bp-018h], ax                    ; 89 46 e8
     4522    mov word [bp-016h], dx                    ; 89 56 ea
    40914523    mov ax, strict word 00001h                ; b8 01 00
    40924524    xchg ah, al                               ; 86 c4
    4093     mov word [bp-015h], ax                    ; 89 46 eb
    4094     mov es, [bp-006h]                         ; 8e 46 fa
    4095     mov bx, word [bp-00ah]                    ; 8b 5e f6
    4096     mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
    4097     mov word [es:bx+00ch], 00800h             ; 26 c7 47 0c 00 08
     4525    mov word [bp-013h], ax                    ; 89 46 ed
     4526    les bx, [bp-008h]                         ; c4 5e f8
     4527    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h
     4528    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    40984529    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    4099     jmp short 039bah                          ; eb 31
    4100     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4530    jmp short 0382ah                          ; eb 2b
     4531    lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    41014532    push SS                                   ; 16
    41024533    push dx                                   ; 52
    4103     mov ax, strict word 00001h                ; b8 01 00
    4104     push ax                                   ; 50
    4105     xor ax, ax                                ; 31 c0
    4106     push ax                                   ; 50
    4107     mov ax, 00800h                            ; b8 00 08
    4108     push ax                                   ; 50
    4109     xor ax, ax                                ; 31 c0
    4110     push ax                                   ; 50
    4111     mov al, byte [bp-004h]                    ; 8a 46 fc
    4112     xor ah, ah                                ; 30 e4
     4534    push strict byte 00001h                   ; 6a 01
     4535    push strict byte 00000h                   ; 6a 00
     4536    push 00800h                               ; 68 00 08
     4537    push strict byte 00000h                   ; 6a 00
     4538    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    41134539    mov cx, ss                                ; 8c d1
    4114     lea bx, [bp-01ch]                         ; 8d 5e e4
     4540    lea bx, [bp-01ah]                         ; 8d 5e e6
    41154541    mov dx, strict word 0000ch                ; ba 0c 00
    4116     call 028dbh                               ; e8 2e ef
     4542    call 0280ah                               ; e8 ed ef
    41174543    test ax, ax                               ; 85 c0
    4118     je short 039e6h                           ; 74 35
     4544    je short 03850h                           ; 74 2f
    41194545    inc byte [bp-002h]                        ; fe 46 fe
    41204546    cmp byte [bp-002h], 004h                  ; 80 7e fe 04
    4121     jnbe short 039e6h                         ; 77 2c
     4547    jnbe short 03850h                         ; 77 26
    41224548    cmp byte [bp-004h], 008h                  ; 80 7e fc 08
    4123     jbe short 03989h                          ; 76 c9
    4124     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4549    jbe short 037ffh                          ; 76 cf
     4550    lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    41254551    push SS                                   ; 16
    41264552    push dx                                   ; 52
    4127     mov ax, strict word 00001h                ; b8 01 00
    4128     push ax                                   ; 50
    4129     xor ax, ax                                ; 31 c0
    4130     push ax                                   ; 50
    4131     mov ax, 00800h                            ; b8 00 08
    4132     push ax                                   ; 50
    4133     xor ax, ax                                ; 31 c0
    4134     push ax                                   ; 50
    4135     mov al, byte [bp-004h]                    ; 8a 46 fc
    4136     xor ah, ah                                ; 30 e4
     4553    push strict byte 00001h                   ; 6a 01
     4554    push strict byte 00000h                   ; 6a 00
     4555    push 00800h                               ; 68 00 08
     4556    push strict byte 00000h                   ; 6a 00
     4557    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    41374558    mov cx, ss                                ; 8c d1
    4138     lea bx, [bp-01ch]                         ; 8d 5e e4
     4559    lea bx, [bp-01ah]                         ; 8d 5e e6
    41394560    mov dx, strict word 0000ch                ; ba 0c 00
    4140     call 083e4h                               ; e8 00 4a
    4141     jmp short 039adh                          ; eb c7
     4561    call 07f4eh                               ; e8 00 47
     4562    jmp short 0381dh                          ; eb cd
    41424563    test ax, ax                               ; 85 c0
    4143     je short 039f0h                           ; 74 06
     4564    je short 0385ah                           ; 74 06
    41444565    mov ax, strict word 00003h                ; b8 03 00
    4145     jmp near 03d00h                           ; e9 10 03
    4146     cmp byte [bp-0081ch], 000h                ; 80 be e4 f7 00
    4147     je short 039fdh                           ; 74 06
     4566    jmp near 03b49h                           ; e9 ef 02
     4567    cmp byte [bp-0081ah], 000h                ; 80 be e6 f7 00
     4568    je short 03867h                           ; 74 06
    41484569    mov ax, strict word 00004h                ; b8 04 00
    4149     jmp near 03d00h                           ; e9 03 03
     4570    jmp near 03b49h                           ; e9 e2 02
    41504571    xor di, di                                ; 31 ff
    4151     jmp short 03a07h                          ; eb 06
     4572    jmp short 03871h                          ; eb 06
    41524573    inc di                                    ; 47
    41534574    cmp di, strict byte 00005h                ; 83 ff 05
    4154     jnc short 03a17h                          ; 73 10
    4155     mov al, byte [bp+di-0081bh]               ; 8a 83 e5 f7
    4156     cmp al, byte [di+00c1eh]                  ; 3a 85 1e 0c
    4157     je short 03a01h                           ; 74 f0
     4575    jnc short 03881h                          ; 73 10
     4576    mov al, byte [bp+di-00819h]               ; 8a 83 e7 f7
     4577    cmp al, byte [di+00c10h]                  ; 3a 85 10 0c
     4578    je short 0386bh                           ; 74 f0
    41584579    mov ax, strict word 00005h                ; b8 05 00
    4159     jmp near 03d00h                           ; e9 e9 02
     4580    jmp near 03b49h                           ; e9 c8 02
    41604581    xor di, di                                ; 31 ff
    4161     jmp short 03a21h                          ; eb 06
     4582    jmp short 0388bh                          ; eb 06
    41624583    inc di                                    ; 47
    41634584    cmp di, strict byte 00017h                ; 83 ff 17
    4164     jnc short 03a31h                          ; 73 10
    4165     mov al, byte [bp+di-00815h]               ; 8a 83 eb f7
    4166     cmp al, byte [di+00c24h]                  ; 3a 85 24 0c
    4167     je short 03a1bh                           ; 74 f0
     4585    jnc short 0389bh                          ; 73 10
     4586    mov al, byte [bp+di-00813h]               ; 8a 83 ed f7
     4587    cmp al, byte [di+00c16h]                  ; 3a 85 16 0c
     4588    je short 03885h                           ; 74 f0
    41684589    mov ax, strict word 00006h                ; b8 06 00
    4169     jmp near 03d00h                           ; e9 cf 02
    4170     mov ax, word [bp-007d5h]                  ; 8b 86 2b f8
    4171     mov dx, word [bp-007d3h]                  ; 8b 96 2d f8
    4172     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4590    jmp near 03b49h                           ; e9 ae 02
     4591    mov ax, word [bp-007d3h]                  ; 8b 86 2d f8
     4592    mov dx, word [bp-007d1h]                  ; 8b 96 2f f8
     4593    mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
    41734594    xchg ah, al                               ; 86 c4
    41744595    xchg dh, dl                               ; 86 d6
    41754596    xchg dx, ax                               ; 92
    4176     mov word [bp-01ah], ax                    ; 89 46 e6
    4177     mov word [bp-018h], dx                    ; 89 56 e8
     4597    mov word [bp-018h], ax                    ; 89 46 e8
     4598    mov word [bp-016h], dx                    ; 89 56 ea
    41784599    mov ax, strict word 00001h                ; b8 01 00
    41794600    xchg ah, al                               ; 86 c4
    4180     mov word [bp-015h], ax                    ; 89 46 eb
     4601    mov word [bp-013h], ax                    ; 89 46 ed
    41814602    cmp byte [bp-004h], 008h                  ; 80 7e fc 08
    4182     jbe short 03a7dh                          ; 76 26
    4183     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4603    jbe short 038e1h                          ; 76 20
     4604    lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    41844605    push SS                                   ; 16
    41854606    push dx                                   ; 52
    4186     mov ax, strict word 00001h                ; b8 01 00
    4187     push ax                                   ; 50
    4188     xor ax, ax                                ; 31 c0
    4189     push ax                                   ; 50
    4190     mov ax, 00800h                            ; b8 00 08
    4191     push ax                                   ; 50
    4192     xor ax, ax                                ; 31 c0
    4193     push ax                                   ; 50
    4194     mov al, byte [bp-004h]                    ; 8a 46 fc
    4195     xor ah, ah                                ; 30 e4
     4607    push strict byte 00001h                   ; 6a 01
     4608    push strict byte 00000h                   ; 6a 00
     4609    push 00800h                               ; 68 00 08
     4610    push strict byte 00000h                   ; 6a 00
     4611    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    41964612    mov cx, ss                                ; 8c d1
    4197     lea bx, [bp-01ch]                         ; 8d 5e e4
     4613    lea bx, [bp-01ah]                         ; 8d 5e e6
    41984614    mov dx, strict word 0000ch                ; ba 0c 00
    4199     call 083e4h                               ; e8 69 49
    4200     jmp short 03aa1h                          ; eb 24
    4201     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4615    call 07f4eh                               ; e8 6f 46
     4616    jmp short 038ffh                          ; eb 1e
     4617    lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    42024618    push SS                                   ; 16
    42034619    push dx                                   ; 52
    4204     mov ax, strict word 00001h                ; b8 01 00
    4205     push ax                                   ; 50
    4206     xor ax, ax                                ; 31 c0
    4207     push ax                                   ; 50
    4208     mov ax, 00800h                            ; b8 00 08
    4209     push ax                                   ; 50
    4210     xor ax, ax                                ; 31 c0
    4211     push ax                                   ; 50
    4212     mov al, byte [bp-004h]                    ; 8a 46 fc
    4213     xor ah, ah                                ; 30 e4
     4620    push strict byte 00001h                   ; 6a 01
     4621    push strict byte 00000h                   ; 6a 00
     4622    push 00800h                               ; 68 00 08
     4623    push strict byte 00000h                   ; 6a 00
     4624    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    42144625    mov cx, ss                                ; 8c d1
    4215     lea bx, [bp-01ch]                         ; 8d 5e e4
     4626    lea bx, [bp-01ah]                         ; 8d 5e e6
    42164627    mov dx, strict word 0000ch                ; ba 0c 00
    4217     call 028dbh                               ; e8 3a ee
     4628    call 0280ah                               ; e8 0b ef
    42184629    test ax, ax                               ; 85 c0
    4219     je short 03aabh                           ; 74 06
     4630    je short 03909h                           ; 74 06
    42204631    mov ax, strict word 00007h                ; b8 07 00
    4221     jmp near 03d00h                           ; e9 55 02
    4222     cmp byte [bp-0081ch], 001h                ; 80 be e4 f7 01
    4223     je short 03ab8h                           ; 74 06
     4632    jmp near 03b49h                           ; e9 40 02
     4633    cmp byte [bp-0081ah], 001h                ; 80 be e6 f7 01
     4634    je short 03916h                           ; 74 06
    42244635    mov ax, strict word 00008h                ; b8 08 00
    4225     jmp near 03d00h                           ; e9 48 02
    4226     cmp byte [bp-0081bh], 000h                ; 80 be e5 f7 00
    4227     je short 03ac5h                           ; 74 06
     4636    jmp near 03b49h                           ; e9 33 02
     4637    cmp byte [bp-00819h], 000h                ; 80 be e7 f7 00
     4638    je short 03923h                           ; 74 06
    42284639    mov ax, strict word 00009h                ; b8 09 00
    4229     jmp near 03d00h                           ; e9 3b 02
    4230     cmp byte [bp-007feh], 055h                ; 80 be 02 f8 55
    4231     je short 03ad2h                           ; 74 06
     4640    jmp near 03b49h                           ; e9 26 02
     4641    cmp byte [bp-007fch], 055h                ; 80 be 04 f8 55
     4642    je short 03930h                           ; 74 06
    42324643    mov ax, strict word 0000ah                ; b8 0a 00
    4233     jmp near 03d00h                           ; e9 2e 02
    4234     cmp byte [bp-007fdh], 0aah                ; 80 be 03 f8 aa
    4235     jne short 03acch                          ; 75 f3
    4236     cmp byte [bp-007fch], 088h                ; 80 be 04 f8 88
    4237     je short 03ae6h                           ; 74 06
     4644    jmp near 03b49h                           ; e9 19 02
     4645    cmp byte [bp-007fbh], 0aah                ; 80 be 05 f8 aa
     4646    jne short 0392ah                          ; 75 f3
     4647    cmp byte [bp-007fah], 088h                ; 80 be 06 f8 88
     4648    je short 03944h                           ; 74 06
    42384649    mov ax, strict word 0000bh                ; b8 0b 00
    4239     jmp near 03d00h                           ; e9 1a 02
    4240     mov al, byte [bp-007fbh]                  ; 8a 86 05 f8
    4241     mov es, [bp-008h]                         ; 8e 46 f8
     4650    jmp near 03b49h                           ; e9 05 02
     4651    mov al, byte [bp-007f9h]                  ; 8a 86 07 f8
     4652    mov es, [bp-00eh]                         ; 8e 46 f2
    42424653    mov byte [es:si+001h], al                 ; 26 88 44 01
    4243     cmp byte [bp-007fbh], 000h                ; 80 be 05 f8 00
    4244     jne short 03affh                          ; 75 07
     4654    cmp byte [bp-007f9h], 000h                ; 80 be 07 f8 00
     4655    jne short 0395dh                          ; 75 07
    42454656    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4246     jmp short 03b12h                          ; eb 13
    4247     cmp byte [bp-007fbh], 004h                ; 80 be 05 f8 04
    4248     jnc short 03b0dh                          ; 73 07
     4657    jmp short 03970h                          ; eb 13
     4658    cmp byte [bp-007f9h], 004h                ; 80 be 07 f8 04
     4659    jnc short 0396bh                          ; 73 07
    42494660    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4250     jmp short 03b12h                          ; eb 05
     4661    jmp short 03970h                          ; eb 05
    42514662    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    4252     mov bl, byte [bp-004h]                    ; 8a 5e fc
    4253     xor bh, bh                                ; 30 ff
    4254     mov ax, bx                                ; 89 d8
     4663    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     4664    mov ax, di                                ; 89 f8
    42554665    cwd                                       ; 99
    42564666    db  02bh, 0c2h
    42574667    ; sub ax, dx                                ; 2b c2
    42584668    sar ax, 1                                 ; d1 f8
    4259     mov es, [bp-008h]                         ; 8e 46 f8
     4669    mov es, [bp-00eh]                         ; 8e 46 f2
    42604670    mov byte [es:si+003h], al                 ; 26 88 44 03
    4261     mov ax, bx                                ; 89 d8
     4671    mov ax, di                                ; 89 f8
    42624672    cwd                                       ; 99
    42634673    mov bx, strict word 00002h                ; bb 02 00
    42644674    idiv bx                                   ; f7 fb
    42654675    mov word [es:si+004h], dx                 ; 26 89 54 04
    4266     mov di, word [bp-007fah]                  ; 8b be 06 f8
     4676    mov di, word [bp-007f8h]                  ; 8b be 08 f8
    42674677    test di, di                               ; 85 ff
    4268     jne short 03b3ch                          ; 75 03
     4678    jne short 03999h                          ; 75 03
    42694679    mov di, 007c0h                            ; bf c0 07
    4270     mov es, [bp-008h]                         ; 8e 46 f8
     4680    mov es, [bp-00eh]                         ; 8e 46 f2
    42714681    mov word [es:si+00ch], di                 ; 26 89 7c 0c
    42724682    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
    4273     mov cx, word [bp-007f6h]                  ; 8b 8e 0a f8
    4274     mov word [es:si+00eh], cx                 ; 26 89 4c 0e
    42754683    mov ax, word [bp-007f4h]                  ; 8b 86 0c f8
    4276     mov dx, word [bp-007f2h]                  ; 8b 96 0e f8
     4684    mov word [bp-00ah], ax                    ; 89 46 f6
     4685    mov word [es:si+00eh], ax                 ; 26 89 44 0e
     4686    mov ax, word [bp-007f2h]                  ; 8b 86 0e f8
     4687    mov dx, word [bp-007f0h]                  ; 8b 96 10 f8
    42774688    mov word [es:si+008h], ax                 ; 26 89 44 08
    42784689    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    4279     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4690    mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
    42804691    xchg ah, al                               ; 86 c4
    42814692    xchg dh, dl                               ; 86 d6
    42824693    xchg dx, ax                               ; 92
    4283     mov word [bp-01ah], ax                    ; 89 46 e6
    4284     mov word [bp-018h], dx                    ; 89 56 e8
    4285     mov dx, cx                                ; 89 ca
     4694    mov word [bp-018h], ax                    ; 89 46 e8
     4695    mov word [bp-016h], dx                    ; 89 56 ea
     4696    mov dx, word [bp-00ah]                    ; 8b 56 f6
    42864697    dec dx                                    ; 4a
    4287     shr dx, 1                                 ; d1 ea
    4288     shr dx, 1                                 ; d1 ea
     4698    shr dx, 002h                              ; c1 ea 02
    42894699    inc dx                                    ; 42
    42904700    mov ax, dx                                ; 89 d0
    42914701    xchg ah, al                               ; 86 c4
    4292     mov word [bp-015h], ax                    ; 89 46 eb
    4293     mov es, [bp-006h]                         ; 8e 46 fa
    4294     mov bx, word [bp-00ah]                    ; 8b 5e f6
     4702    mov word [bp-013h], ax                    ; 89 46 ed
     4703    les bx, [bp-008h]                         ; c4 5e f8
    42954704    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
    42964705    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
    4297     mov word [bp-010h], cx                    ; 89 4e f0
    4298     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     4706    mov ax, word [bp-00ah]                    ; 8b 46 f6
     4707    sal ax, 009h                              ; c1 e0 09
     4708    and ah, 007h                              ; 80 e4 07
     4709    mov dx, 00800h                            ; ba 00 08
     4710    sub dx, ax                                ; 29 c2
     4711    mov word [es:bx+01ch], dx                 ; 26 89 57 1c
     4712    cmp byte [bp-004h], 008h                  ; 80 7e fc 08
     4713    jbe short 03a2ch                          ; 76 27
     4714    push di                                   ; 57
     4715    push dword 000000001h                     ; 66 6a 01
     4716    mov ax, word [bp-00ah]                    ; 8b 46 f6
     4717    xor dx, dx                                ; 31 d2
    42994718    mov cx, strict word 00009h                ; b9 09 00
    4300     sal word [bp-010h], 1                     ; d1 66 f0
    4301     rcl word [bp-00eh], 1                     ; d1 56 f2
    4302     loop 03b9bh                               ; e2 f8
    4303     mov ax, word [bp-010h]                    ; 8b 46 f0
    4304     mov dx, word [bp-00eh]                    ; 8b 56 f2
    4305     mov bx, 00800h                            ; bb 00 08
    4306     xor cx, cx                                ; 31 c9
    4307     call 08ceeh                               ; e8 3d 51
    4308     mov ax, 00800h                            ; b8 00 08
    4309     sub ax, bx                                ; 29 d8
    4310     mov bx, word [bp-00ah]                    ; 8b 5e f6
    4311     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    4312     cmp byte [bp-004h], 008h                  ; 80 7e fc 08
    4313     jbe short 03be6h                          ; 76 23
     4719    sal ax, 1                                 ; d1 e0
     4720    rcl dx, 1                                 ; d1 d2
     4721    loop 03a11h                               ; e2 fa
     4722    push dx                                   ; 52
     4723    push ax                                   ; 50
     4724    push strict byte 00000h                   ; 6a 00
     4725    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4726    mov cx, ss                                ; 8c d1
     4727    lea bx, [bp-01ah]                         ; 8d 5e e6
     4728    mov dx, strict word 0000ch                ; ba 0c 00
     4729    call 07f4eh                               ; e8 24 45
     4730    jmp short 03a51h                          ; eb 25
    43144731    push di                                   ; 57
    4315     xor ax, ax                                ; 31 c0
     4732    push dword 000000001h                     ; 66 6a 01
     4733    mov ax, word [bp-00ah]                    ; 8b 46 f6
     4734    xor dx, dx                                ; 31 d2
     4735    mov cx, strict word 00009h                ; b9 09 00
     4736    sal ax, 1                                 ; d1 e0
     4737    rcl dx, 1                                 ; d1 d2
     4738    loop 03a38h                               ; e2 fa
     4739    push dx                                   ; 52
    43164740    push ax                                   ; 50
    4317     mov ax, strict word 00001h                ; b8 01 00
    4318     push ax                                   ; 50
    4319     push word [bp-00eh]                       ; ff 76 f2
    4320     push word [bp-010h]                       ; ff 76 f0
    4321     xor ax, ax                                ; 31 c0
    4322     push ax                                   ; 50
    4323     mov al, byte [bp-004h]                    ; 8a 46 fc
    4324     xor ah, ah                                ; 30 e4
     4741    push strict byte 00000h                   ; 6a 00
     4742    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    43254743    mov cx, ss                                ; 8c d1
    4326     lea bx, [bp-01ch]                         ; 8d 5e e4
     4744    lea bx, [bp-01ah]                         ; 8d 5e e6
    43274745    mov dx, strict word 0000ch                ; ba 0c 00
    4328     call 083e4h                               ; e8 00 48
    4329     jmp short 03c07h                          ; eb 21
    4330     push di                                   ; 57
    4331     xor ax, ax                                ; 31 c0
    4332     push ax                                   ; 50
    4333     mov ax, strict word 00001h                ; b8 01 00
    4334     push ax                                   ; 50
    4335     push word [bp-00eh]                       ; ff 76 f2
    4336     push word [bp-010h]                       ; ff 76 f0
    4337     xor ax, ax                                ; 31 c0
    4338     push ax                                   ; 50
    4339     mov al, byte [bp-004h]                    ; 8a 46 fc
    4340     xor ah, ah                                ; 30 e4
    4341     mov cx, ss                                ; 8c d1
    4342     lea bx, [bp-01ch]                         ; 8d 5e e4
    4343     mov dx, strict word 0000ch                ; ba 0c 00
    4344     call 028dbh                               ; e8 d4 ec
    4345     mov es, [bp-006h]                         ; 8e 46 fa
    4346     mov bx, word [bp-00ah]                    ; 8b 5e f6
     4746    call 0280ah                               ; e8 b9 ed
     4747    les bx, [bp-008h]                         ; c4 5e f8
    43474748    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    43484749    test ax, ax                               ; 85 c0
    4349     je short 03c1dh                           ; 74 06
     4750    je short 03a64h                           ; 74 06
    43504751    mov ax, strict word 0000ch                ; b8 0c 00
    4351     jmp near 03d00h                           ; e9 e3 00
    4352     mov es, [bp-008h]                         ; 8e 46 f8
     4752    jmp near 03b49h                           ; e9 e5 00
     4753    mov es, [bp-00eh]                         ; 8e 46 f2
    43534754    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    43544755    cmp AL, strict byte 002h                  ; 3c 02
    4355     jc short 03c34h                           ; 72 0c
    4356     jbe short 03c4fh                          ; 76 25
     4756    jc short 03a7ch                           ; 72 0d
     4757    jbe short 03a94h                          ; 76 23
    43574758    cmp AL, strict byte 004h                  ; 3c 04
    4358     je short 03c5fh                           ; 74 31
     4759    je short 03aaah                           ; 74 35
    43594760    cmp AL, strict byte 003h                  ; 3c 03
    4360     je short 03c57h                           ; 74 25
    4361     jmp short 03ca8h                          ; eb 74
     4761    je short 03a9fh                           ; 74 26
     4762    jmp near 03af2h                           ; e9 76 00
    43624763    cmp AL, strict byte 001h                  ; 3c 01
    4363     jne short 03ca8h                          ; 75 70
    4364     mov es, [bp-008h]                         ; 8e 46 f8
    4365     mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    4366     mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
     4764    jne short 03af2h                          ; 75 72
     4765    mov es, [bp-00eh]                         ; 8e 46 f2
     4766    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
     4767    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    43674768    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4368     jmp short 03ca8h                          ; eb 59
    4369     mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    4370     jmp short 03c41h                          ; eb ea
    4371     mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    4372     jmp short 03c41h                          ; eb e2
     4769    jmp short 03af2h                          ; eb 5e
     4770    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
     4771    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
     4772    jmp short 03a8ch                          ; eb ed
     4773    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
     4774    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
     4775    jmp short 03a8ch                          ; eb e2
    43734776    mov dx, 001c4h                            ; ba c4 01
    43744777    mov ax, di                                ; 89 f8
    4375     call 01600h                               ; e8 99 d9
     4778    call 01600h                               ; e8 4e db
    43764779    and AL, strict byte 03fh                  ; 24 3f
    43774780    xor ah, ah                                ; 30 e4
    4378     mov es, [bp-008h]                         ; 8e 46 f8
     4781    mov es, [bp-00eh]                         ; 8e 46 f2
    43794782    mov word [es:si+014h], ax                 ; 26 89 44 14
    43804783    mov dx, 001c4h                            ; ba c4 01
    43814784    mov ax, di                                ; 89 f8
    4382     call 01600h                               ; e8 86 d9
     4785    call 01600h                               ; e8 3b db
    43834786    xor ah, ah                                ; 30 e4
    43844787    mov bx, ax                                ; 89 c3
    4385     sal bx, 1                                 ; d1 e3
    4386     sal bx, 1                                 ; d1 e3
     4788    sal bx, 002h                              ; c1 e3 02
    43874789    mov dx, 001c5h                            ; ba c5 01
    43884790    mov ax, di                                ; 89 f8
    4389     call 01600h                               ; e8 76 d9
     4791    call 01600h                               ; e8 2c db
    43904792    xor ah, ah                                ; 30 e4
    43914793    add ax, bx                                ; 01 d8
    43924794    inc ax                                    ; 40
    4393     mov es, [bp-008h]                         ; 8e 46 f8
     4795    mov es, [bp-00eh]                         ; 8e 46 f2
    43944796    mov word [es:si+012h], ax                 ; 26 89 44 12
    43954797    mov dx, 001c3h                            ; ba c3 01
    43964798    mov ax, di                                ; 89 f8
    4397     call 01600h                               ; e8 62 d9
     4799    call 01600h                               ; e8 18 db
    43984800    xor ah, ah                                ; 30 e4
    43994801    inc ax                                    ; 40
    4400     mov es, [bp-008h]                         ; 8e 46 f8
     4802    mov es, [bp-00eh]                         ; 8e 46 f2
    44014803    mov word [es:si+010h], ax                 ; 26 89 44 10
    4402     mov es, [bp-008h]                         ; 8e 46 f8
     4804    mov es, [bp-00eh]                         ; 8e 46 f2
    44034805    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4404     je short 03ce9h                           ; 74 37
     4806    je short 03b30h                           ; 74 34
    44054807    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    4406     jne short 03cd1h                          ; 75 18
     4808    jne short 03b19h                          ; 75 16
    44074809    mov dx, strict word 00010h                ; ba 10 00
    44084810    mov ax, strict word 00040h                ; b8 40 00
    4409     call 01600h                               ; e8 3e d9
    4410     mov bl, al                                ; 88 c3
    4411     or bl, 041h                               ; 80 cb 41
    4412     xor bh, bh                                ; 30 ff
     4811    call 01600h                               ; e8 f4 da
     4812    or AL, strict byte 041h                   ; 0c 41
     4813    movzx bx, al                              ; 0f b6 d8
    44134814    mov dx, strict word 00010h                ; ba 10 00
    44144815    mov ax, strict word 00040h                ; b8 40 00
    4415     jmp short 03ce6h                          ; eb 15
     4816    jmp short 03b2dh                          ; eb 14
    44164817    mov dx, 002c0h                            ; ba c0 02
    44174818    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4418     call 01600h                               ; e8 26 d9
    4419     mov bl, al                                ; 88 c3
    4420     db  0feh, 0c3h
    4421     ; inc bl                                    ; fe c3
    4422     xor bh, bh                                ; 30 ff
     4819    call 01600h                               ; e8 de da
     4820    db  0feh, 0c0h
     4821    ; inc al                                    ; fe c0
     4822    movzx bx, al                              ; 0f b6 d8
    44234823    mov dx, 002c0h                            ; ba c0 02
    44244824    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4425     call 0160eh                               ; e8 25 d9
    4426     mov es, [bp-008h]                         ; 8e 46 f8
     4825    call 0160eh                               ; e8 de da
     4826    mov es, [bp-00eh]                         ; 8e 46 f2
    44274827    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4428     je short 03cf7h                           ; 74 04
     4828    je short 03b3eh                           ; 74 04
    44294829    mov byte [es:si], 001h                    ; 26 c6 04 01
    4430     mov es, [bp-008h]                         ; 8e 46 f8
    4431     mov ah, byte [es:si+002h]                 ; 26 8a 64 02
    4432     xor al, al                                ; 30 c0
    4433     mov sp, bp                                ; 89 ec
    4434     pop bp                                    ; 5d
     4830    mov es, [bp-00eh]                         ; 8e 46 f2
     4831    movzx ax, byte [es:si+002h]               ; 26 0f b6 44 02
     4832    sal ax, 008h                              ; c1 e0 08
     4833    leave                                     ; c9
    44354834    pop di                                    ; 5f
    44364835    pop si                                    ; 5e
     
    44574856    add AL, strict byte 003h                  ; 04 03
    44584857    add al, byte [bx+di]                      ; 02 01
    4459     add dh, ah                                ; 00 e6
    4460     inc ax                                    ; 40
    4461     das                                       ; 2f
    4462     inc ax                                    ; 40
    4463     push SS                                   ; 16
    4464     db  03eh, 03fh
    4465     ; ds aas                                    ; 3e 3f
    4466     or di, word [ds:03e3fh]                   ; 3e 0b 3e 3f 3e
    4467     or di, word [04048h]                      ; 0b 3e 48 40
    4468     das                                       ; 2f
    4469     inc ax                                    ; 40
    4470     out strict byte 040h, AL                  ; e6 40
    4471     out strict byte 040h, AL                  ; e6 40
    4472     das                                       ; 2f
    4473     inc ax                                    ; 40
    4474     das                                       ; 2f
    4475     inc ax                                    ; 40
    4476     das                                       ; 2f
    4477     inc ax                                    ; 40
    4478     das                                       ; 2f
    4479     inc ax                                    ; 40
    4480     das                                       ; 2f
    4481     inc ax                                    ; 40
    4482     fadd qword [bx+si+02fh]                   ; dc 40 2f
    4483     inc ax                                    ; 40
    4484     out strict byte 040h, AL                  ; e6 40
    4485     out strict byte 040h, AL                  ; e6 40
    4486     out strict byte 040h, AL                  ; e6 40
    4487     out strict byte 040h, AL                  ; e6 40
    4488     out strict byte 040h, AL                  ; e6 40
    4489     out strict byte 040h, AL                  ; e6 40
    4490     out strict byte 040h, AL                  ; e6 40
    4491     out strict byte 040h, AL                  ; e6 40
    4492     out strict byte 040h, AL                  ; e6 40
    4493     out strict byte 040h, AL                  ; e6 40
    4494     out strict byte 040h, AL                  ; e6 40
    4495     out strict byte 040h, AL                  ; e6 40
    4496 _int13_cdemu:                                ; 0xf3d62 LB 0x420
     4858    add byte [di], ch                         ; 00 2d
     4859    aas                                       ; 3f
     4860    push CS                                   ; 0e
     4861    aas                                       ; 3f
     4862    pop ax                                    ; 58
     4863    cmp AL, strict byte 082h                  ; 3c 82
     4864    cmp AL, strict byte 04dh                  ; 3c 4d
     4865    cmp AL, strict byte 082h                  ; 3c 82
     4866    cmp AL, strict byte 04dh                  ; 3c 4d
     4867    cmp AL, strict byte 074h                  ; 3c 74
     4868    db  03eh, 00eh
     4869    ; ds push CS                                ; 3e 0e
     4870    aas                                       ; 3f
     4871    sub ax, 02d3fh                            ; 2d 3f 2d
     4872    aas                                       ; 3f
     4873    push CS                                   ; 0e
     4874    aas                                       ; 3f
     4875    push CS                                   ; 0e
     4876    aas                                       ; 3f
     4877    push CS                                   ; 0e
     4878    aas                                       ; 3f
     4879    push CS                                   ; 0e
     4880    aas                                       ; 3f
     4881    push CS                                   ; 0e
     4882    aas                                       ; 3f
     4883    and ax, 00e3fh                            ; 25 3f 0e
     4884    aas                                       ; 3f
     4885    sub ax, 02d3fh                            ; 2d 3f 2d
     4886    aas                                       ; 3f
     4887    sub ax, 02d3fh                            ; 2d 3f 2d
     4888    aas                                       ; 3f
     4889    sub ax, 02d3fh                            ; 2d 3f 2d
     4890    aas                                       ; 3f
     4891    sub ax, 02d3fh                            ; 2d 3f 2d
     4892    aas                                       ; 3f
     4893    sub ax, 02d3fh                            ; 2d 3f 2d
     4894    aas                                       ; 3f
     4895    sub ax, 02d3fh                            ; 2d 3f 2d
     4896    aas                                       ; 3f
     4897_int13_cdemu:                                ; 0xf3ba9 LB 0x41f
    44974898    push si                                   ; 56
    44984899    push di                                   ; 57
    4499     push bp                                   ; 55
    4500     mov bp, sp                                ; 89 e5
    4501     sub sp, strict byte 0002ch                ; 83 ec 2c
     4900    enter 0002ah, 000h                        ; c8 2a 00 00
    45024901    mov dx, strict word 0000eh                ; ba 0e 00
    45034902    mov ax, strict word 00040h                ; b8 40 00
    4504     call 0161ch                               ; e8 a9 d8
     4903    call 0161ch                               ; e8 64 da
    45054904    mov di, 00322h                            ; bf 22 03
    45064905    mov cx, ax                                ; 89 c1
    45074906    mov si, di                                ; 89 fe
    4508     mov word [bp-012h], ax                    ; 89 46 ee
    4509     mov word [bp-016h], 00122h                ; c7 46 ea 22 01
    4510     mov word [bp-014h], ax                    ; 89 46 ec
     4907    mov word [bp-004h], ax                    ; 89 46 fc
     4908    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     4909    mov word [bp-006h], ax                    ; 89 46 fa
    45114910    mov es, ax                                ; 8e c0
    45124911    mov al, byte [es:di+003h]                 ; 26 8a 45 03
    4513     sal al, 1                                 ; d0 e0
     4912    add al, al                                ; 00 c0
    45144913    mov byte [bp-002h], al                    ; 88 46 fe
    45154914    mov al, byte [es:di+004h]                 ; 26 8a 45 04
     
    45184917    mov dx, strict word 00074h                ; ba 74 00
    45194918    mov ax, strict word 00040h                ; b8 40 00
    4520     call 0160eh                               ; e8 6c d8
     4919    call 0160eh                               ; e8 27 da
    45214920    mov es, cx                                ; 8e c1
    45224921    cmp byte [es:di], 000h                    ; 26 80 3d 00
    4523     je short 03db9h                           ; 74 0f
    4524     mov al, byte [es:di+002h]                 ; 26 8a 45 02
    4525     xor ah, ah                                ; 30 e4
     4922    je short 03bfdh                           ; 74 0e
     4923    movzx ax, byte [es:di+002h]               ; 26 0f b6 45 02
    45264924    mov dx, word [bp+016h]                    ; 8b 56 16
    45274925    xor dh, dh                                ; 30 f6
    45284926    cmp ax, dx                                ; 39 d0
    4529     je short 03de3h                           ; 74 2a
    4530     mov bx, 00c16h                            ; bb 16 0c
     4927    je short 03c26h                           ; 74 29
     4928    mov bx, 00c08h                            ; bb 08 0c
    45314929    mov cx, ds                                ; 8c d9
    45324930    mov ax, strict word 00004h                ; b8 04 00
    4533     call 018bdh                               ; e8 f9 da
     4931    call 018aeh                               ; e8 a6 dc
    45344932    mov ax, word [bp+016h]                    ; 8b 46 16
    45354933    xor ah, ah                                ; 30 e4
    45364934    push ax                                   ; 50
    4537     mov al, byte [bp+01bh]                    ; 8a 46 1b
     4935    mov ax, word [bp+01ah]                    ; 8b 46 1a
     4936    shr ax, 008h                              ; c1 e8 08
    45384937    push ax                                   ; 50
    4539     mov ax, 002a2h                            ; b8 a2 02
    4540     push ax                                   ; 50
    4541     mov ax, 002aeh                            ; b8 ae 02
    4542     push ax                                   ; 50
    4543     mov ax, strict word 00004h                ; b8 04 00
    4544     push ax                                   ; 50
    4545     call 018fah                               ; e8 1d db
     4938    push 002a2h                               ; 68 a2 02
     4939    push 002aeh                               ; 68 ae 02
     4940    push strict byte 00004h                   ; 6a 04
     4941    call 018e9h                               ; e8 c9 dc
    45464942    add sp, strict byte 0000ah                ; 83 c4 0a
    4547     jmp near 04109h                           ; e9 26 03
    4548     mov al, byte [bp+01bh]                    ; 8a 46 1b
    4549     xor ah, ah                                ; 30 e4
    4550     mov dx, ax                                ; 89 c2
     4943    jmp near 03f4dh                           ; e9 27 03
     4944    mov ax, word [bp+01ah]                    ; 8b 46 1a
     4945    shr ax, 008h                              ; c1 e8 08
    45514946    cmp ax, strict word 00050h                ; 3d 50 00
    4552     jnbe short 03e3ch                         ; 77 4d
     4947    jnbe near 03f2dh                          ; 0f 87 fa 02
    45534948    push CS                                   ; 0e
    45544949    pop ES                                    ; 07
    45554950    mov cx, strict word 0001eh                ; b9 1e 00
    4556     mov di, 03d09h                            ; bf 09 3d
     4951    mov di, 03b50h                            ; bf 50 3b
    45574952    repne scasb                               ; f2 ae
    45584953    sal cx, 1                                 ; d1 e1
    45594954    mov di, cx                                ; 89 cf
    4560     mov ax, word [cs:di+03d26h]               ; 2e 8b 85 26 3d
    4561     mov di, word [bp+01ah]                    ; 8b 7e 1a
    4562     and di, 000ffh                            ; 81 e7 ff 00
     4955    mov ax, word [cs:di+03b6dh]               ; 2e 8b 85 6d 3b
     4956    mov bx, word [bp+01ah]                    ; 8b 5e 1a
     4957    xor bh, bh                                ; 30 ff
    45634958    jmp ax                                    ; ff e0
    45644959    mov ax, word [bp+01ah]                    ; 8b 46 1a
    45654960    xor ah, ah                                ; 30 e4
    45664961    or ah, 003h                               ; 80 cc 03
    4567     jmp near 04111h                           ; e9 fb 02
     4962    jmp near 03f55h                           ; e9 fd 02
    45684963    mov dx, strict word 00074h                ; ba 74 00
    45694964    mov ax, strict word 00040h                ; b8 40 00
    4570     call 01600h                               ; e8 e1 d7
     4965    call 01600h                               ; e8 9f d9
    45714966    mov cl, al                                ; 88 c1
    4572     mov ah, al                                ; 88 c4
    4573     xor al, al                                ; 30 c0
    4574     or di, ax                                 ; 09 c7
    4575     mov word [bp+01ah], di                    ; 89 7e 1a
     4967    movzx ax, cl                              ; 0f b6 c1
     4968    sal ax, 008h                              ; c1 e0 08
     4969    or bx, ax                                 ; 09 c3
     4970    mov word [bp+01ah], bx                    ; 89 5e 1a
    45764971    xor bx, bx                                ; 31 db
    45774972    mov dx, strict word 00074h                ; ba 74 00
    45784973    mov ax, strict word 00040h                ; b8 40 00
    4579     call 0160eh                               ; e8 d9 d7
     4974    call 0160eh                               ; e8 95 d9
    45804975    test cl, cl                               ; 84 c9
    4581     je short 03e9ch                           ; 74 63
    4582     jmp near 04122h                           ; e9 e6 02
    4583     jmp near 040e6h                           ; e9 a7 02
    4584     mov es, [bp-012h]                         ; 8e 46 ee
     4976    je near 03f12h                            ; 0f 84 93 02
     4977    jmp near 03f69h                           ; e9 e7 02
     4978    mov es, [bp-004h]                         ; 8e 46 fc
    45854979    mov di, word [es:si+014h]                 ; 26 8b 7c 14
    45864980    mov dx, word [es:si+012h]                 ; 26 8b 54 12
    4587     mov ax, word [es:si+010h]                 ; 26 8b 44 10
    4588     mov word [bp-004h], ax                    ; 89 46 fc
     4981    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
    45894982    mov ax, word [es:si+008h]                 ; 26 8b 44 08
    4590     mov word [bp-00eh], ax                    ; 89 46 f2
     4983    mov word [bp-014h], ax                    ; 89 46 ec
    45914984    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
    4592     mov word [bp-00ch], ax                    ; 89 46 f4
     4985    mov word [bp-012h], ax                    ; 89 46 ee
    45934986    mov ax, word [bp+018h]                    ; 8b 46 18
    45944987    and ax, strict word 0003fh                ; 25 3f 00
    4595     mov word [bp-00ah], ax                    ; 89 46 f6
    4596     mov bx, word [bp+018h]                    ; 8b 5e 18
    4597     and bx, 000c0h                            ; 81 e3 c0 00
    4598     sal bx, 1                                 ; d1 e3
    4599     sal bx, 1                                 ; d1 e3
    4600     mov al, byte [bp+019h]                    ; 8a 46 19
    4601     or ax, bx                                 ; 09 d8
    4602     mov bl, byte [bp+017h]                    ; 8a 5e 17
    4603     xor bh, bh                                ; 30 ff
    4604     mov si, bx                                ; 89 de
     4988    mov word [bp-010h], ax                    ; 89 46 f0
     4989    mov ax, word [bp+018h]                    ; 8b 46 18
     4990    xor ah, ah                                ; 30 e4
     4991    and AL, strict byte 0c0h                  ; 24 c0
     4992    sal ax, 002h                              ; c1 e0 02
     4993    mov cx, word [bp+018h]                    ; 8b 4e 18
     4994    shr cx, 008h                              ; c1 e9 08
     4995    or ax, cx                                 ; 09 c8
     4996    mov si, word [bp+016h]                    ; 8b 76 16
     4997    shr si, 008h                              ; c1 ee 08
    46054998    mov cx, word [bp+01ah]                    ; 8b 4e 1a
    46064999    xor ch, ch                                ; 30 ed
    4607     mov word [bp-018h], cx                    ; 89 4e e8
     5000    mov word [bp-00ah], cx                    ; 89 4e f6
    46085001    test cx, cx                               ; 85 c9
    4609     je short 03ea9h                           ; 74 1e
    4610     cmp di, word [bp-00ah]                    ; 3b 7e f6
    4611     jc short 03e99h                           ; 72 09
     5002    je near 03f0eh                            ; 0f 84 40 02
     5003    cmp di, word [bp-010h]                    ; 3b 7e f0
     5004    jc near 03f4dh                            ; 0f 82 78 02
    46125005    cmp ax, dx                                ; 39 d0
    4613     jnc short 03e99h                          ; 73 05
    4614     cmp bx, word [bp-004h]                    ; 3b 5e fc
    4615     jc short 03e9fh                           ; 72 06
    4616     jmp near 04109h                           ; e9 6d 02
    4617     jmp near 04033h                           ; e9 94 01
    4618     mov dl, byte [bp+01bh]                    ; 8a 56 1b
    4619     xor dh, dh                                ; 30 f6
     5006    jnc near 03f4dh                           ; 0f 83 72 02
     5007    cmp si, bx                                ; 39 de
     5008    jnc near 03f4dh                           ; 0f 83 6c 02
     5009    mov dx, word [bp+01ah]                    ; 8b 56 1a
     5010    shr dx, 008h                              ; c1 ea 08
    46205011    cmp dx, strict byte 00004h                ; 83 fa 04
    4621     jne short 03each                          ; 75 03
    4622     jmp near 0402fh                           ; e9 83 01
    4623     mov CL, strict byte 004h                  ; b1 04
     5012    je near 03f0eh                            ; 0f 84 20 02
    46245013    mov dx, word [bp+014h]                    ; 8b 56 14
    4625     shr dx, CL                                ; d3 ea
    4626     mov bx, word [bp+00ah]                    ; 8b 5e 0a
    4627     add bx, dx                                ; 01 d3
    4628     mov word [bp-006h], bx                    ; 89 5e fa
     5014    shr dx, 004h                              ; c1 ea 04
     5015    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     5016    add cx, dx                                ; 01 d1
     5017    mov word [bp-00eh], cx                    ; 89 4e f2
    46295018    mov dx, word [bp+014h]                    ; 8b 56 14
    46305019    and dx, strict byte 0000fh                ; 83 e2 0f
    4631     mov word [bp-008h], dx                    ; 89 56 f8
     5020    mov word [bp-00ch], dx                    ; 89 56 f4
    46325021    xor dl, dl                                ; 30 d2
    4633     mov bx, word [bp-004h]                    ; 8b 5e fc
    46345022    xor cx, cx                                ; 31 c9
    4635     call 08dd2h                               ; e8 04 4f
     5023    call 08829h                               ; e8 1d 4b
    46365024    xor bx, bx                                ; 31 db
    46375025    add ax, si                                ; 01 f0
     
    46395027    mov bx, di                                ; 89 fb
    46405028    xor cx, cx                                ; 31 c9
    4641     call 08dd2h                               ; e8 f7 4e
    4642     mov bx, word [bp-00ah]                    ; 8b 5e f6
     5029    call 08829h                               ; e8 10 4b
     5030    mov bx, word [bp-010h]                    ; 8b 5e f0
    46435031    dec bx                                    ; 4b
    46445032    xor cx, cx                                ; 31 c9
     
    46475035    mov bx, word [bp+01ah]                    ; 8b 5e 1a
    46485036    xor bl, bl                                ; 30 db
    4649     mov cx, word [bp-018h]                    ; 8b 4e e8
     5037    mov cx, word [bp-00ah]                    ; 8b 4e f6
    46505038    or cx, bx                                 ; 09 d9
    46515039    mov word [bp+01ah], cx                    ; 89 4e 1a
     
    46565044    shr di, 1                                 ; d1 ef
    46575045    rcr si, 1                                 ; d1 de
    4658     mov word [bp-01ch], di                    ; 89 7e e4
     5046    mov word [bp-01ah], di                    ; 89 7e e6
    46595047    mov di, ax                                ; 89 c7
    46605048    and di, strict byte 00003h                ; 83 e7 03
    46615049    xor bh, bh                                ; 30 ff
    4662     add ax, word [bp-018h]                    ; 03 46 e8
    4663     db  011h, 0dah, 005h, 0ffh, 0ffh, 083h, 0d2h, 0ffh, 089h, 046h, 0e0h, 089h, 056h, 0e2h, 0d1h, 06eh
    4664     db  0e2h, 0d1h, 05eh, 0e0h, 0d1h, 06eh, 0e2h, 0d1h, 05eh, 0e0h, 0b9h, 00ch, 000h, 08ch, 0d2h, 08dh
    4665     db  046h, 0d4h, 0e8h, 08bh, 04eh, 0c7h, 046h, 0d4h, 028h, 000h, 08bh, 046h, 0f2h, 001h, 0f0h, 08bh
    4666     db  056h, 0f4h, 013h, 056h, 0e4h, 086h, 0c4h, 086h, 0d6h, 092h, 089h, 046h, 0d6h, 089h, 056h, 0d8h
    4667     db  08bh, 056h, 0e0h, 029h, 0f2h, 042h, 089h, 0d0h, 086h, 0c4h, 089h, 046h, 0dbh, 0c4h, 05eh, 0eah
    4668     db  026h, 089h, 057h, 00ah, 026h, 0c7h, 047h, 00ch, 000h, 002h, 0b1h, 009h, 0d3h, 0e7h, 089h, 07eh
    4669     db  0f0h, 026h, 089h, 07fh, 01ah, 08bh, 076h, 0e8h, 031h, 0ffh, 0b9h, 009h, 000h, 0d1h, 0e6h, 0d1h
    4670     db  0d7h, 0e2h, 0fah, 089h, 0f0h, 089h, 0fah, 0bbh, 000h, 008h, 031h, 0c9h, 0e8h, 064h, 04dh, 0bah
    4671     db  000h, 008h, 029h, 0dah, 08bh, 05eh, 0eah, 026h, 08bh, 047h, 01ah, 029h, 0c2h, 026h, 089h, 057h
    4672     db  01ch, 080h, 07eh, 0feh, 008h, 076h, 021h, 0ffh, 076h, 0fah, 0ffh, 076h, 0f8h, 0b8h, 001h, 000h
    4673     db  050h, 057h, 056h, 0ffh, 076h, 0f0h, 08ah, 046h, 0feh, 030h, 0e4h, 08ch, 0d1h, 08dh, 05eh, 0d4h
    4674     db  0bah, 00ch, 000h, 0e8h, 023h, 044h, 0ebh, 01fh, 0ffh, 076h, 0fah, 0ffh, 076h, 0f8h, 0b8h, 001h
    4675     db  000h, 050h, 057h, 056h, 0ffh, 076h, 0f0h, 08ah, 046h, 0feh, 030h, 0e4h, 08ch, 0d1h, 08dh, 05eh
    4676     db  0d4h, 0bah, 00ch, 000h, 0e8h, 0f9h, 0e8h, 088h, 0c2h, 0c4h, 05eh, 0eah, 026h, 0c7h, 047h, 01ah
    4677     db  000h, 000h, 026h, 0c7h, 047h, 01ch, 000h, 000h, 084h, 0d2h, 074h, 038h, 0bbh, 016h, 00ch, 08ch
    4678     db  0d9h, 0b8h, 004h, 000h, 0e8h, 0bbh, 0d8h, 088h, 0d0h, 030h, 0e4h, 050h, 08ah, 046h, 01bh, 050h
    4679     db  0b8h, 0a2h, 002h, 050h, 0b8h, 0e4h, 002h, 050h, 0b8h, 004h, 000h, 050h, 0e8h, 0e0h, 0d8h, 083h
    4680     db  0c4h, 00ah, 08bh, 046h, 01ah, 030h, 0e4h, 080h, 0cch, 002h, 089h, 046h, 01ah, 0c6h, 046h, 01ah
    4681     db  000h, 0e9h, 0e5h, 000h, 0c6h, 046h, 01bh, 000h, 031h, 0dbh, 0bah, 074h, 000h, 0b8h, 040h, 000h
    4682     db  0e8h, 0d0h, 0d5h, 080h, 066h, 020h, 0feh, 089h, 0ech, 05dh, 05fh, 05eh, 0c3h, 08eh, 046h, 0eeh
    4683     db  026h, 08bh, 07ch, 014h, 026h, 08bh, 054h, 012h, 04ah, 026h, 08bh, 044h, 010h, 048h, 089h, 046h
    4684     db  0fch, 0c6h, 046h, 01ah, 000h, 08bh, 046h, 014h, 030h, 0c0h, 08bh, 05eh, 018h, 030h, 0ffh, 089h
    4685     db  05eh, 0e6h, 089h, 0d3h, 088h, 0d7h, 030h, 0d3h, 08bh, 04eh, 0e6h, 009h, 0d9h, 089h, 04eh, 018h
    4686     db  0d1h, 0eah, 0d1h, 0eah, 030h, 0f6h, 080h, 0e2h, 0c0h, 083h, 0e7h, 03fh, 009h, 0d7h, 089h, 0cah
    4687     db  030h, 0cah, 009h, 0fah, 089h, 056h, 018h, 08bh, 05eh, 016h, 08ah, 07eh, 0fch, 089h, 05eh, 016h
    4688     db  089h, 0dah, 030h, 0dah, 080h, 0cah, 002h, 089h, 056h, 016h, 026h, 08ah, 054h, 001h, 089h, 046h
    4689     db  014h, 080h, 0fah, 003h, 074h, 01ah, 080h, 0fah, 002h, 074h, 011h, 080h, 0fah, 001h, 075h, 014h
    4690     db  08bh, 046h, 014h, 030h, 0c0h, 00ch, 002h, 089h, 046h, 014h, 0ebh, 008h, 00ch, 004h, 0ebh, 0f7h
    4691     db  00ch, 006h, 0ebh, 0f3h, 0c7h, 046h, 00ch, 0c7h, 0efh, 0c7h, 046h, 00ah, 000h, 0f0h, 0e9h, 053h
    4692     db  0ffh, 081h, 0cfh, 000h, 003h, 089h, 07eh, 01ah, 0e9h, 04dh, 0ffh, 0bbh, 016h, 00ch, 08ch, 0d9h
    4693     db  0b8h, 004h, 000h, 0e8h, 0cch, 0d7h, 08ah, 046h, 01bh, 030h, 0e4h, 050h, 0b8h, 0a2h, 002h, 050h
    4694     db  0b8h, 005h, 003h, 050h, 0b8h, 004h, 000h, 050h, 0e8h, 0f4h, 0d7h, 083h, 0c4h, 008h, 08bh, 046h
    4695     db  01ah, 030h, 0e4h, 080h, 0cch, 001h, 089h, 046h, 01ah, 08ah, 05eh, 01bh, 030h, 0ffh, 0bah, 074h
    4696     db  000h, 0b8h, 040h, 000h, 0e8h, 0ech, 0d4h, 080h, 04eh, 020h, 001h, 0e9h, 019h, 0ffh, 050h, 04eh
    4697     db  049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h, 010h, 00dh
    4698     db  00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06eh, 042h, 017h, 047h, 030h
    4699     db  042h, 06eh, 042h, 025h, 042h, 06eh, 042h, 025h, 042h, 06eh, 042h, 017h, 047h, 06eh, 042h, 06eh
    4700     db  042h, 017h, 047h, 017h, 047h, 017h, 047h, 017h, 047h, 017h, 047h, 052h, 042h, 017h, 047h, 06eh
    4701     db  042h, 05bh, 042h, 08ch, 042h, 025h, 042h, 08ch, 042h, 0edh, 043h, 098h, 044h, 08ch, 042h, 0c9h
    4702     db  044h, 030h, 047h, 038h, 047h, 06eh, 042h
    4703 _int13_cdrom:                                ; 0xf4182 LB 0x5eb
     5050    add ax, word [bp-00ah]                    ; 03 46 f6
     5051    adc dx, bx                                ; 11 da
     5052    mov bx, ax                                ; 89 c3
     5053    add bx, strict byte 0ffffh                ; 83 c3 ff
     5054    mov ax, dx                                ; 89 d0
     5055    adc ax, strict word 0ffffh                ; 15 ff ff
     5056    mov word [bp-01eh], bx                    ; 89 5e e2
     5057    mov word [bp-01ch], ax                    ; 89 46 e4
     5058    shr word [bp-01ch], 1                     ; d1 6e e4
     5059    rcr word [bp-01eh], 1                     ; d1 5e e2
     5060    shr word [bp-01ch], 1                     ; d1 6e e4
     5061    rcr word [bp-01eh], 1                     ; d1 5e e2
     5062    mov cx, strict word 0000ch                ; b9 0c 00
     5063    xor bx, bx                                ; 31 db
     5064    mov dx, ss                                ; 8c d2
     5065    lea ax, [bp-02ah]                         ; 8d 46 d6
     5066    call 0885ah                               ; e8 e6 4a
     5067    mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
     5068    mov ax, word [bp-014h]                    ; 8b 46 ec
     5069    add ax, si                                ; 01 f0
     5070    mov dx, word [bp-012h]                    ; 8b 56 ee
     5071    adc dx, word [bp-01ah]                    ; 13 56 e6
     5072    xchg ah, al                               ; 86 c4
     5073    xchg dh, dl                               ; 86 d6
     5074    xchg dx, ax                               ; 92
     5075    mov word [bp-028h], ax                    ; 89 46 d8
     5076    mov word [bp-026h], dx                    ; 89 56 da
     5077    mov dx, word [bp-01eh]                    ; 8b 56 e2
     5078    sub dx, si                                ; 29 f2
     5079    inc dx                                    ; 42
     5080    mov ax, dx                                ; 89 d0
     5081    xchg ah, al                               ; 86 c4
     5082    mov word [bp-023h], ax                    ; 89 46 dd
     5083    les bx, [bp-008h]                         ; c4 5e f8
     5084    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
     5085    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
     5086    mov ax, di                                ; 89 f8
     5087    sal ax, 009h                              ; c1 e0 09
     5088    mov word [es:bx+01ah], ax                 ; 26 89 47 1a
     5089    mov dx, word [bp-00ah]                    ; 8b 56 f6
     5090    sal dx, 009h                              ; c1 e2 09
     5091    and dh, 007h                              ; 80 e6 07
     5092    mov bx, 00800h                            ; bb 00 08
     5093    sub bx, dx                                ; 29 d3
     5094    mov dx, bx                                ; 89 da
     5095    mov bx, word [bp-008h]                    ; 8b 5e f8
     5096    mov bx, word [es:bx+01ah]                 ; 26 8b 5f 1a
     5097    sub dx, bx                                ; 29 da
     5098    mov bx, word [bp-008h]                    ; 8b 5e f8
     5099    mov word [es:bx+01ch], dx                 ; 26 89 57 1c
     5100    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
     5101    jbe short 03e02h                          ; 76 2a
     5102    push word [bp-00eh]                       ; ff 76 f2
     5103    push word [bp-00ch]                       ; ff 76 f4
     5104    push strict byte 00001h                   ; 6a 01
     5105    mov si, word [bp-00ah]                    ; 8b 76 f6
     5106    xor di, di                                ; 31 ff
     5107    mov cx, strict word 00009h                ; b9 09 00
     5108    sal si, 1                                 ; d1 e6
     5109    rcl di, 1                                 ; d1 d7
     5110    loop 03de8h                               ; e2 fa
     5111    push di                                   ; 57
     5112    push si                                   ; 56
     5113    push ax                                   ; 50
     5114    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5115    mov cx, ss                                ; 8c d1
     5116    lea bx, [bp-02ah]                         ; 8d 5e d6
     5117    mov dx, strict word 0000ch                ; ba 0c 00
     5118    call 07f4eh                               ; e8 4e 41
     5119    jmp short 03e2ah                          ; eb 28
     5120    push word [bp-00eh]                       ; ff 76 f2
     5121    push word [bp-00ch]                       ; ff 76 f4
     5122    push strict byte 00001h                   ; 6a 01
     5123    mov si, word [bp-00ah]                    ; 8b 76 f6
     5124    xor di, di                                ; 31 ff
     5125    mov cx, strict word 00009h                ; b9 09 00
     5126    sal si, 1                                 ; d1 e6
     5127    rcl di, 1                                 ; d1 d7
     5128    loop 03e12h                               ; e2 fa
     5129    push di                                   ; 57
     5130    push si                                   ; 56
     5131    push ax                                   ; 50
     5132    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5133    mov cx, ss                                ; 8c d1
     5134    lea bx, [bp-02ah]                         ; 8d 5e d6
     5135    mov dx, strict word 0000ch                ; ba 0c 00
     5136    call 0280ah                               ; e8 e0 e9
     5137    mov dl, al                                ; 88 c2
     5138    les bx, [bp-008h]                         ; c4 5e f8
     5139    db  066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h
     5140    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
     5141    test dl, dl                               ; 84 d2
     5142    je near 03f0eh                            ; 0f 84 d0 00
     5143    mov bx, 00c08h                            ; bb 08 0c
     5144    mov cx, ds                                ; 8c d9
     5145    mov ax, strict word 00004h                ; b8 04 00
     5146    call 018aeh                               ; e8 65 da
     5147    movzx ax, dl                              ; 0f b6 c2
     5148    push ax                                   ; 50
     5149    mov ax, word [bp+01ah]                    ; 8b 46 1a
     5150    shr ax, 008h                              ; c1 e8 08
     5151    push ax                                   ; 50
     5152    push 002a2h                               ; 68 a2 02
     5153    push 002e4h                               ; 68 e4 02
     5154    push strict byte 00004h                   ; 6a 04
     5155    call 018e9h                               ; e8 8a da
     5156    add sp, strict byte 0000ah                ; 83 c4 0a
     5157    mov ax, word [bp+01ah]                    ; 8b 46 1a
     5158    xor ah, ah                                ; 30 e4
     5159    or ah, 002h                               ; 80 cc 02
     5160    mov word [bp+01ah], ax                    ; 89 46 1a
     5161    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
     5162    jmp near 03f58h                           ; e9 e4 00
     5163    mov es, [bp-004h]                         ; 8e 46 fc
     5164    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     5165    mov dx, word [es:si+012h]                 ; 26 8b 54 12
     5166    dec dx                                    ; 4a
     5167    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
     5168    dec bx                                    ; 4b
     5169    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
     5170    mov ax, word [bp+014h]                    ; 8b 46 14
     5171    xor al, al                                ; 30 c0
     5172    mov cx, word [bp+018h]                    ; 8b 4e 18
     5173    xor ch, ch                                ; 30 ed
     5174    mov word [bp-018h], cx                    ; 89 4e e8
     5175    mov cx, dx                                ; 89 d1
     5176    xor ch, dh                                ; 30 f5
     5177    sal cx, 008h                              ; c1 e1 08
     5178    mov word [bp-016h], cx                    ; 89 4e ea
     5179    mov cx, word [bp-018h]                    ; 8b 4e e8
     5180    or cx, word [bp-016h]                     ; 0b 4e ea
     5181    mov word [bp+018h], cx                    ; 89 4e 18
     5182    shr dx, 002h                              ; c1 ea 02
     5183    xor dh, dh                                ; 30 f6
     5184    and dl, 0c0h                              ; 80 e2 c0
     5185    mov word [bp-016h], dx                    ; 89 56 ea
     5186    mov dx, di                                ; 89 fa
     5187    xor dh, dh                                ; 30 f6
     5188    and dl, 03fh                              ; 80 e2 3f
     5189    or dx, word [bp-016h]                     ; 0b 56 ea
     5190    xor cl, cl                                ; 30 c9
     5191    or cx, dx                                 ; 09 d1
     5192    mov word [bp+018h], cx                    ; 89 4e 18
     5193    mov dx, word [bp+016h]                    ; 8b 56 16
     5194    xor dh, dh                                ; 30 f6
     5195    sal bx, 008h                              ; c1 e3 08
     5196    or dx, bx                                 ; 09 da
     5197    mov word [bp+016h], dx                    ; 89 56 16
     5198    xor dl, dl                                ; 30 d2
     5199    or dl, 002h                               ; 80 ca 02
     5200    mov word [bp+016h], dx                    ; 89 56 16
     5201    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
     5202    mov word [bp+014h], ax                    ; 89 46 14
     5203    cmp dl, 003h                              ; 80 fa 03
     5204    je short 03f00h                           ; 74 1a
     5205    cmp dl, 002h                              ; 80 fa 02
     5206    je short 03efch                           ; 74 11
     5207    cmp dl, 001h                              ; 80 fa 01
     5208    jne short 03f04h                          ; 75 14
     5209    mov ax, word [bp+014h]                    ; 8b 46 14
     5210    xor al, al                                ; 30 c0
     5211    or AL, strict byte 002h                   ; 0c 02
     5212    mov word [bp+014h], ax                    ; 89 46 14
     5213    jmp short 03f04h                          ; eb 08
     5214    or AL, strict byte 004h                   ; 0c 04
     5215    jmp short 03ef7h                          ; eb f7
     5216    or AL, strict byte 006h                   ; 0c 06
     5217    jmp short 03ef7h                          ; eb f3
     5218    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
     5219    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
     5220    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
     5221    xor bx, bx                                ; 31 db
     5222    mov dx, strict word 00074h                ; ba 74 00
     5223    mov ax, strict word 00040h                ; b8 40 00
     5224    call 0160eh                               ; e8 f1 d6
     5225    and byte [bp+020h], 0feh                  ; 80 66 20 fe
     5226    leave                                     ; c9
     5227    pop di                                    ; 5f
     5228    pop si                                    ; 5e
     5229    retn                                      ; c3
     5230    or bh, 003h                               ; 80 cf 03
     5231    mov word [bp+01ah], bx                    ; 89 5e 1a
     5232    jmp short 03f12h                          ; eb e5
     5233    mov bx, 00c08h                            ; bb 08 0c
     5234    mov cx, ds                                ; 8c d9
     5235    mov ax, strict word 00004h                ; b8 04 00
     5236    call 018aeh                               ; e8 76 d9
     5237    mov ax, word [bp+01ah]                    ; 8b 46 1a
     5238    shr ax, 008h                              ; c1 e8 08
     5239    push ax                                   ; 50
     5240    push 002a2h                               ; 68 a2 02
     5241    push 00305h                               ; 68 05 03
     5242    push strict byte 00004h                   ; 6a 04
     5243    call 018e9h                               ; e8 9f d9
     5244    add sp, strict byte 00008h                ; 83 c4 08
     5245    mov ax, word [bp+01ah]                    ; 8b 46 1a
     5246    xor ah, ah                                ; 30 e4
     5247    or ah, 001h                               ; 80 cc 01
     5248    mov word [bp+01ah], ax                    ; 89 46 1a
     5249    mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5250    shr bx, 008h                              ; c1 eb 08
     5251    xor bh, bh                                ; 30 ff
     5252    mov dx, strict word 00074h                ; ba 74 00
     5253    mov ax, strict word 00040h                ; b8 40 00
     5254    call 0160eh                               ; e8 a5 d6
     5255    or byte [bp+020h], 001h                   ; 80 4e 20 01
     5256    jmp short 03f21h                          ; eb b2
     5257    push ax                                   ; 50
     5258    dec si                                    ; 4e
     5259    dec cx                                    ; 49
     5260    dec ax                                    ; 48
     5261    inc di                                    ; 47
     5262    inc si                                    ; 46
     5263    inc bp                                    ; 45
     5264    inc sp                                    ; 44
     5265    inc bx                                    ; 43
     5266    inc dx                                    ; 42
     5267    inc cx                                    ; 41
     5268    sbb byte [01415h], dl                     ; 18 16 15 14
     5269    adc word [bx+si], dx                      ; 11 10
     5270    or ax, 00b0ch                             ; 0d 0c 0b
     5271    or cl, byte [bx+di]                       ; 0a 09
     5272    or byte [di], al                          ; 08 05
     5273    add AL, strict byte 003h                  ; 04 03
     5274    add al, byte [bx+di]                      ; 02 01
     5275    add byte [bx+si], bl                      ; 00 18
     5276    inc bp                                    ; 45
     5277    xchg si, ax                               ; 96
     5278    inc dx                                    ; 42
     5279    jnc short 03fd2h                          ; 73 40
     5280    sbb byte [di+068h], al                    ; 18 45 68
     5281    inc ax                                    ; 40
     5282    sbb byte [di+068h], al                    ; 18 45 68
     5283    inc ax                                    ; 40
     5284    sbb byte [di-06ah], al                    ; 18 45 96
     5285    inc dx                                    ; 42
     5286    sbb byte [di+018h], al                    ; 18 45 18
     5287    inc bp                                    ; 45
     5288    xchg si, ax                               ; 96
     5289    inc dx                                    ; 42
     5290    xchg si, ax                               ; 96
     5291    inc dx                                    ; 42
     5292    xchg si, ax                               ; 96
     5293    inc dx                                    ; 42
     5294    xchg si, ax                               ; 96
     5295    inc dx                                    ; 42
     5296    xchg si, ax                               ; 96
     5297    inc dx                                    ; 42
     5298    popfw                                     ; 9d
     5299    inc ax                                    ; 40
     5300    xchg si, ax                               ; 96
     5301    inc dx                                    ; 42
     5302    sbb byte [di-05ah], al                    ; 18 45 a6
     5303    inc ax                                    ; 40
     5304    mov cx, 06840h                            ; b9 40 68
     5305    inc ax                                    ; 40
     5306    mov cx, 00740h                            ; b9 40 07
     5307    inc dx                                    ; 42
     5308    lodsw                                     ; ad
     5309    inc dx                                    ; 42
     5310    mov cx, 0d840h                            ; b9 40 d8
     5311    inc dx                                    ; 42
     5312    rol word [si-027h], 1                     ; d1 44 d9
     5313    inc sp                                    ; 44
     5314    db  018h
     5315    inc bp                                    ; 45
     5316_int13_cdrom:                                ; 0xf3fc8 LB 0x56d
    47045317    push si                                   ; 56
    47055318    push di                                   ; 57
    4706     push bp                                   ; 55
    4707     mov bp, sp                                ; 89 e5
    4708     sub sp, strict byte 0002ah                ; 83 ec 2a
     5319    enter 00028h, 000h                        ; c8 28 00 00
    47095320    mov dx, strict word 0000eh                ; ba 0e 00
    47105321    mov ax, strict word 00040h                ; b8 40 00
    4711     call 0161ch                               ; e8 89 d4
    4712     mov word [bp-01eh], ax                    ; 89 46 e2
    4713     mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
     5322    call 0161ch                               ; e8 45 d6
    47145323    mov word [bp-018h], ax                    ; 89 46 e8
     5324    mov si, 00122h                            ; be 22 01
     5325    mov word [bp-00ah], ax                    ; 89 46 f6
    47155326    xor bx, bx                                ; 31 db
    47165327    mov dx, strict word 00074h                ; ba 74 00
    47175328    mov ax, strict word 00040h                ; b8 40 00
    4718     call 0160eh                               ; e8 65 d4
     5329    call 0160eh                               ; e8 23 d6
    47195330    mov ax, word [bp+014h]                    ; 8b 46 14
    47205331    xor ah, ah                                ; 30 e4
    47215332    cmp ax, 000e0h                            ; 3d e0 00
    4722     jc short 041b8h                           ; 72 05
     5333    jc short 03ffah                           ; 72 05
    47235334    cmp ax, 000f0h                            ; 3d f0 00
    4724     jc short 041d7h                           ; 72 1f
     5335    jc short 04018h                           ; 72 1e
    47255336    mov ax, word [bp+014h]                    ; 8b 46 14
    47265337    xor ah, ah                                ; 30 e4
    47275338    push ax                                   ; 50
    4728     mov al, byte [bp+01dh]                    ; 8a 46 1d
     5339    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5340    shr ax, 008h                              ; c1 e8 08
    47295341    push ax                                   ; 50
    4730     mov ax, 00335h                            ; b8 35 03
    4731     push ax                                   ; 50
    4732     mov ax, 00341h                            ; b8 41 03
    4733     push ax                                   ; 50
    4734     mov ax, strict word 00004h                ; b8 04 00
    4735     push ax                                   ; 50
    4736     call 018fah                               ; e8 29 d7
     5342    push 00335h                               ; 68 35 03
     5343    push 00341h                               ; 68 41 03
     5344    push strict byte 00004h                   ; 6a 04
     5345    call 018e9h                               ; e8 d7 d8
    47375346    add sp, strict byte 0000ah                ; 83 c4 0a
    4738     jmp near 0474eh                           ; e9 77 05
     5347    jmp near 044f5h                           ; e9 dd 04
    47395348    mov ax, word [bp+014h]                    ; 8b 46 14
    47405349    xor ah, ah                                ; 30 e4
    4741     mov es, [bp-018h]                         ; 8e 46 e8
    4742     mov bx, word [bp-00ah]                    ; 8b 5e f6
     5350    mov es, [bp-00ah]                         ; 8e 46 f6
     5351    mov bx, si                                ; 89 f3
    47435352    add bx, ax                                ; 01 c3
    47445353    mov dl, byte [es:bx+000d0h]               ; 26 8a 97 d0 00
    4745     mov byte [bp-002h], dl                    ; 88 56 fe
     5354    mov byte [bp-006h], dl                    ; 88 56 fa
    47465355    cmp dl, 010h                              ; 80 fa 10
    4747     jc short 041ffh                           ; 72 0e
     5356    jc short 04041h                           ; 72 10
    47485357    push ax                                   ; 50
    4749     mov al, byte [bp+01dh]                    ; 8a 46 1d
     5358    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5359    shr ax, 008h                              ; c1 e8 08
    47505360    push ax                                   ; 50
    4751     mov ax, 00335h                            ; b8 35 03
    4752     push ax                                   ; 50
    4753     mov ax, 0036ch                            ; b8 6c 03
    4754     jmp short 041c9h                          ; eb ca
    4755     mov al, byte [bp+01dh]                    ; 8a 46 1d
    4756     xor ah, ah                                ; 30 e4
    4757     mov dx, ax                                ; 89 c2
     5361    push 00335h                               ; 68 35 03
     5362    push 0036ch                               ; 68 6c 03
     5363    jmp short 0400dh                          ; eb cc
     5364    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5365    shr ax, 008h                              ; c1 e8 08
    47585366    cmp ax, strict word 00050h                ; 3d 50 00
    4759     jnbe short 0426eh                         ; 77 63
     5367    jnbe near 04518h                          ; 0f 87 ca 04
    47605368    push CS                                   ; 0e
    47615369    pop ES                                    ; 07
    47625370    mov cx, strict word 0001eh                ; b9 1e 00
    4763     mov di, 04129h                            ; bf 29 41
     5371    mov di, 03f6fh                            ; bf 6f 3f
    47645372    repne scasb                               ; f2 ae
    47655373    sal cx, 1                                 ; d1 e1
    47665374    mov di, cx                                ; 89 cf
    4767     mov ax, word [cs:di+04146h]               ; 2e 8b 85 46 41
     5375    mov ax, word [cs:di+03f8ch]               ; 2e 8b 85 8c 3f
    47685376    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    47695377    xor bh, bh                                ; 30 ff
     
    47725380    xor ah, ah                                ; 30 e4
    47735381    or ah, 003h                               ; 80 cc 03
    4774     jmp near 04756h                           ; e9 26 05
     5382    jmp near 044fdh                           ; e9 8a 04
    47755383    mov dx, strict word 00074h                ; ba 74 00
    47765384    mov ax, strict word 00040h                ; b8 40 00
    4777     call 01600h                               ; e8 c7 d3
     5385    call 01600h                               ; e8 84 d5
    47785386    mov cl, al                                ; 88 c1
    4779     mov bh, al                                ; 88 c7
     5387    movzx ax, cl                              ; 0f b6 c1
     5388    sal ax, 008h                              ; c1 e0 08
     5389    or bx, ax                                 ; 09 c3
    47805390    mov word [bp+01ch], bx                    ; 89 5e 1c
    47815391    xor bx, bx                                ; 31 db
    47825392    mov dx, strict word 00074h                ; ba 74 00
    47835393    mov ax, strict word 00040h                ; b8 40 00
    4784     call 0160eh                               ; e8 c3 d3
     5394    call 0160eh                               ; e8 7a d5
    47855395    test cl, cl                               ; 84 c9
    4786     je short 0426bh                           ; 74 1c
    4787     jmp near 04767h                           ; e9 15 05
     5396    je near 0429ah                            ; 0f 84 00 02
     5397    jmp near 04511h                           ; e9 74 04
    47885398    or bh, 002h                               ; 80 cf 02
    47895399    mov word [bp+01ch], bx                    ; 89 5e 1c
    4790     jmp near 04759h                           ; e9 fe 04
     5400    jmp near 04500h                           ; e9 5a 04
    47915401    mov word [bp+016h], 0aa55h                ; c7 46 16 55 aa
    47925402    or bh, 030h                               ; 80 cf 30
    47935403    mov word [bp+01ch], bx                    ; 89 5e 1c
    47945404    mov word [bp+01ah], strict word 00007h    ; c7 46 1a 07 00
    4795     jmp near 0471bh                           ; e9 ad 04
    4796     mov bx, 00c16h                            ; bb 16 0c
    4797     mov cx, ds                                ; 8c d9
    4798     mov ax, strict word 00004h                ; b8 04 00
    4799     call 018bdh                               ; e8 44 d6
    4800     mov al, byte [bp+01dh]                    ; 8a 46 1d
    4801     xor ah, ah                                ; 30 e4
    4802     push ax                                   ; 50
    4803     mov ax, 00335h                            ; b8 35 03
    4804     push ax                                   ; 50
    4805     mov ax, 00289h                            ; b8 89 02
    4806     push ax                                   ; 50
    4807     mov ax, strict word 00004h                ; b8 04 00
    4808     jmp short 042cdh                          ; eb 41
     5405    jmp near 0429ah                           ; e9 e1 01
    48095406    mov bx, word [bp+010h]                    ; 8b 5e 10
    48105407    mov es, [bp+00ah]                         ; 8e 46 0a
    48115408    mov di, bx                                ; 89 df
    4812     mov [bp-01ah], es                         ; 8c 46 e6
    4813     mov si, word [es:bx+002h]                 ; 26 8b 77 02
     5409    mov [bp-012h], es                         ; 8c 46 ee
     5410    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     5411    mov word [bp-00ch], ax                    ; 89 46 f4
    48145412    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    4815     mov word [bp-01ch], ax                    ; 89 46 e4
     5413    mov word [bp-014h], ax                    ; 89 46 ec
    48165414    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    4817     mov word [bp-012h], ax                    ; 89 46 ee
     5415    mov word [bp-016h], ax                    ; 89 46 ea
    48185416    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    48195417    mov word [bp-010h], ax                    ; 89 46 f0
    48205418    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    4821     mov word [bp-00eh], ax                    ; 89 46 f2
     5419    mov word [bp-01ch], ax                    ; 89 46 e4
    48225420    or ax, word [bp-010h]                     ; 0b 46 f0
    4823     je short 042d7h                           ; 74 1b
    4824     mov al, byte [bp+01dh]                    ; 8a 46 1d
    4825     xor ah, ah                                ; 30 e4
     5421    je short 04104h                           ; 74 18
     5422    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5423    shr ax, 008h                              ; c1 e8 08
    48265424    push ax                                   ; 50
    4827     mov ax, 00335h                            ; b8 35 03
    4828     push ax                                   ; 50
    4829     mov ax, 0039eh                            ; b8 9e 03
    4830     push ax                                   ; 50
    4831     mov ax, strict word 00007h                ; b8 07 00
    4832     push ax                                   ; 50
    4833     call 018fah                               ; e8 29 d6
     5425    push 00335h                               ; 68 35 03
     5426    push 0039eh                               ; 68 9e 03
     5427    push strict byte 00007h                   ; 6a 07
     5428    call 018e9h                               ; e8 eb d7
    48345429    add sp, strict byte 00008h                ; 83 c4 08
    4835     jmp near 0474eh                           ; e9 77 04
    4836     mov es, [bp-01ah]                         ; 8e 46 e6
     5430    jmp near 044f5h                           ; e9 f1 03
     5431    mov es, [bp-012h]                         ; 8e 46 ee
    48375432    mov ax, word [es:di+008h]                 ; 26 8b 45 08
    48385433    mov word [bp-010h], ax                    ; 89 46 f0
    48395434    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    4840     mov word [bp-00eh], ax                    ; 89 46 f2
    4841     mov al, byte [bp+01dh]                    ; 8a 46 1d
    4842     xor ah, ah                                ; 30 e4
     5435    mov word [bp-01ch], ax                    ; 89 46 e4
     5436    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5437    shr ax, 008h                              ; c1 e8 08
    48435438    cmp ax, strict word 00044h                ; 3d 44 00
    4844     je short 042f7h                           ; 74 05
     5439    je near 04296h                            ; 0f 84 74 01
    48455440    cmp ax, strict word 00047h                ; 3d 47 00
    4846     jne short 042fah                          ; 75 03
    4847     jmp near 04717h                           ; e9 1d 04
     5441    je near 04296h                            ; 0f 84 6d 01
    48485442    mov cx, strict word 0000ch                ; b9 0c 00
    48495443    xor bx, bx                                ; 31 db
    48505444    mov dx, ss                                ; 8c d2
    4851     lea ax, [bp-02ah]                         ; 8d 46 d6
    4852     call 08dbbh                               ; e8 b4 4a
    4853     mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
     5445    lea ax, [bp-028h]                         ; 8d 46 d8
     5446    call 0885ah                               ; e8 24 47
     5447    mov word [bp-028h], strict word 00028h    ; c7 46 d8 28 00
    48545448    mov ax, word [bp-010h]                    ; 8b 46 f0
    4855     mov dx, word [bp-00eh]                    ; 8b 56 f2
     5449    mov dx, word [bp-01ch]                    ; 8b 56 e4
    48565450    xchg ah, al                               ; 86 c4
    48575451    xchg dh, dl                               ; 86 d6
    48585452    xchg dx, ax                               ; 92
    4859     mov word [bp-028h], ax                    ; 89 46 d8
    4860     mov word [bp-026h], dx                    ; 89 56 da
    4861     mov ax, si                                ; 89 f0
     5453    mov word [bp-026h], ax                    ; 89 46 da
     5454    mov word [bp-024h], dx                    ; 89 56 dc
     5455    mov ax, word [bp-00ch]                    ; 8b 46 f4
    48625456    xchg ah, al                               ; 86 c4
    4863     mov word [bp-023h], ax                    ; 89 46 dd
    4864     mov es, [bp-018h]                         ; 8e 46 e8
    4865     mov bx, word [bp-00ah]                    ; 8b 5e f6
    4866     mov word [es:bx+00ah], si                 ; 26 89 77 0a
    4867     mov word [es:bx+00ch], 00800h             ; 26 c7 47 0c 00 08
    4868     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    4869     jbe short 04368h                          ; 76 2e
    4870     push word [bp-01ch]                       ; ff 76 e4
    4871     push word [bp-012h]                       ; ff 76 ee
    4872     mov ax, strict word 00001h                ; b8 01 00
     5457    mov word [bp-021h], ax                    ; 89 46 df
     5458    les ax, [bp-00ch]                         ; c4 46 f4
     5459    mov word [es:si+00ah], ax                 ; 26 89 44 0a
     5460    mov word [es:si+00ch], 00800h             ; 26 c7 44 0c 00 08
     5461    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
     5462    jbe short 0418dh                          ; 76 26
     5463    push dword [bp-016h]                      ; 66 ff 76 ea
     5464    push strict byte 00001h                   ; 6a 01
     5465    xor bx, bx                                ; 31 db
     5466    mov cx, strict word 0000bh                ; b9 0b 00
     5467    sal ax, 1                                 ; d1 e0
     5468    rcl bx, 1                                 ; d1 d3
     5469    loop 04172h                               ; e2 fa
     5470    push bx                                   ; 53
    48735471    push ax                                   ; 50
    4874     mov bx, si                                ; 89 f3
    4875     xor si, si                                ; 31 f6
     5472    push strict byte 00000h                   ; 6a 00
     5473    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     5474    mov cx, ss                                ; 8c d1
     5475    lea bx, [bp-028h]                         ; 8d 5e d8
     5476    mov dx, strict word 0000ch                ; ba 0c 00
     5477    call 07f4eh                               ; e8 c3 3d
     5478    jmp short 041b1h                          ; eb 24
     5479    push dword [bp-016h]                      ; 66 ff 76 ea
     5480    push strict byte 00001h                   ; 6a 01
     5481    xor bx, bx                                ; 31 db
    48765482    mov cx, strict word 0000bh                ; b9 0b 00
    4877     sal bx, 1                                 ; d1 e3
    4878     rcl si, 1                                 ; d1 d6
    4879     loop 0434bh                               ; e2 fa
    4880     push si                                   ; 56
     5483    sal ax, 1                                 ; d1 e0
     5484    rcl bx, 1                                 ; d1 d3
     5485    loop 04198h                               ; e2 fa
    48815486    push bx                                   ; 53
    4882     xor ax, ax                                ; 31 c0
    48835487    push ax                                   ; 50
    4884     mov al, byte [bp-002h]                    ; 8a 46 fe
    4885     xor ah, ah                                ; 30 e4
     5488    push strict byte 00000h                   ; 6a 00
     5489    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    48865490    mov cx, ss                                ; 8c d1
    4887     lea bx, [bp-02ah]                         ; 8d 5e d6
     5491    lea bx, [bp-028h]                         ; 8d 5e d8
    48885492    mov dx, strict word 0000ch                ; ba 0c 00
    4889     call 083e4h                               ; e8 7e 40
    4890     jmp short 04394h                          ; eb 2c
    4891     push word [bp-01ch]                       ; ff 76 e4
    4892     push word [bp-012h]                       ; ff 76 ee
    4893     mov ax, strict word 00001h                ; b8 01 00
    4894     push ax                                   ; 50
    4895     mov bx, si                                ; 89 f3
    4896     xor si, si                                ; 31 f6
     5493    call 0280ah                               ; e8 59 e6
     5494    mov byte [bp-004h], al                    ; 88 46 fc
     5495    mov es, [bp-00ah]                         ; 8e 46 f6
     5496    mov ax, word [es:si+016h]                 ; 26 8b 44 16
     5497    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
    48975498    mov cx, strict word 0000bh                ; b9 0b 00
    4898     sal bx, 1                                 ; d1 e3
    4899     rcl si, 1                                 ; d1 d6
    4900     loop 04379h                               ; e2 fa
    4901     push si                                   ; 56
    4902     push bx                                   ; 53
    4903     xor ax, ax                                ; 31 c0
    4904     push ax                                   ; 50
    4905     mov al, byte [bp-002h]                    ; 8a 46 fe
    4906     xor ah, ah                                ; 30 e4
    4907     mov cx, ss                                ; 8c d1
    4908     lea bx, [bp-02ah]                         ; 8d 5e d6
    4909     mov dx, strict word 0000ch                ; ba 0c 00
    4910     call 028dbh                               ; e8 47 e5
    4911     mov byte [bp-004h], al                    ; 88 46 fc
    4912     mov es, [bp-018h]                         ; 8e 46 e8
    4913     mov bx, word [bp-00ah]                    ; 8b 5e f6
    4914     mov ax, word [es:bx+016h]                 ; 26 8b 47 16
    4915     mov dx, word [es:bx+018h]                 ; 26 8b 57 18
    4916     mov cx, strict word 0000bh                ; b9 0b 00
    4917     shr dx, 1                                 ; d1 ea
     5499    shr bx, 1                                 ; d1 eb
    49185500    rcr ax, 1                                 ; d1 d8
    4919     loop 043a8h                               ; e2 fa
    4920     mov es, [bp-01ah]                         ; 8e 46 e6
     5501    loop 041c2h                               ; e2 fa
     5502    mov es, [bp-012h]                         ; 8e 46 ee
    49215503    mov word [es:di+002h], ax                 ; 26 89 45 02
    49225504    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    4923     je short 04416h                           ; 74 5b
    4924     mov bx, 00c16h                            ; bb 16 0c
     5505    je near 04296h                            ; 0f 84 bf 00
     5506    mov bx, 00c08h                            ; bb 08 0c
    49255507    mov cx, ds                                ; 8c d9
    49265508    mov ax, strict word 00004h                ; b8 04 00
    4927     call 018bdh                               ; e8 f7 d4
    4928     mov al, byte [bp-004h]                    ; 8a 46 fc
    4929     xor ah, ah                                ; 30 e4
     5509    call 018aeh                               ; e8 cc d6
     5510    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    49305511    push ax                                   ; 50
    4931     mov al, byte [bp+01dh]                    ; 8a 46 1d
     5512    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5513    shr ax, 008h                              ; c1 e8 08
    49325514    push ax                                   ; 50
    4933     mov ax, 00335h                            ; b8 35 03
    4934     push ax                                   ; 50
    4935     mov ax, 003c7h                            ; b8 c7 03
    4936     push ax                                   ; 50
    4937     mov ax, strict word 00004h                ; b8 04 00
    4938     push ax                                   ; 50
    4939     call 018fah                               ; e8 1b d5
     5515    push 00335h                               ; 68 35 03
     5516    push 003c7h                               ; 68 c7 03
     5517    push strict byte 00004h                   ; 6a 04
     5518    call 018e9h                               ; e8 f0 d6
    49405519    add sp, strict byte 0000ah                ; 83 c4 0a
    49415520    mov ax, word [bp+01ch]                    ; 8b 46 1c
    49425521    xor ah, ah                                ; 30 e4
    49435522    or ah, 00ch                               ; 80 cc 0c
    4944     jmp near 04756h                           ; e9 69 03
     5523    jmp near 044fdh                           ; e9 f6 02
    49455524    cmp bx, strict byte 00002h                ; 83 fb 02
    4946     jnbe short 04454h                         ; 77 62
    4947     mov al, byte [bp-002h]                    ; 8a 46 fe
    4948     xor ah, ah                                ; 30 e4
    4949     mov dx, strict word 00018h                ; ba 18 00
    4950     imul dx                                   ; f7 ea
    4951     mov es, [bp-018h]                         ; 8e 46 e8
    4952     mov si, word [bp-00ah]                    ; 8b 76 f6
    4953     add si, ax                                ; 01 c6
    4954     mov cl, byte [es:si+021h]                 ; 26 8a 4c 21
     5525    jnbe near 044f5h                          ; 0f 87 e7 02
     5526    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     5527    imul ax, ax, strict byte 00018h           ; 6b c0 18
     5528    mov es, [bp-00ah]                         ; 8e 46 f6
     5529    mov di, si                                ; 89 f7
     5530    add di, ax                                ; 01 c7
     5531    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    49555532    cmp bx, strict byte 00002h                ; 83 fb 02
    4956     je short 04467h                           ; 74 5a
     5533    je short 04287h                           ; 74 62
    49575534    cmp bx, strict byte 00001h                ; 83 fb 01
    4958     je short 04457h                           ; 74 45
     5535    je short 04265h                           ; 74 3b
    49595536    test bx, bx                               ; 85 db
    4960     je short 04419h                           ; 74 03
    4961     jmp near 04717h                           ; e9 fe 02
    4962     cmp cl, 0ffh                              ; 80 f9 ff
    4963     jne short 04430h                          ; 75 12
     5537    jne near 04296h                           ; 0f 85 66 00
     5538    cmp AL, strict byte 0ffh                  ; 3c ff
     5539    jne short 04246h                          ; 75 12
    49645540    mov ax, word [bp+01ch]                    ; 8b 46 1c
    49655541    xor ah, ah                                ; 30 e4
     
    49685544    xor al, al                                ; 30 c0
    49695545    or AL, strict byte 001h                   ; 0c 01
    4970     jmp near 04756h                           ; e9 26 03
    4971     mov al, byte [bp-002h]                    ; 8a 46 fe
    4972     xor ah, ah                                ; 30 e4
    4973     mov dx, strict word 00018h                ; ba 18 00
    4974     imul dx                                   ; f7 ea
    4975     db  0feh, 0c1h
    4976     ; inc cl                                    ; fe c1
    4977     mov es, [bp-018h]                         ; 8e 46 e8
    4978     mov bx, word [bp-00ah]                    ; 8b 5e f6
    4979     add bx, ax                                ; 01 c3
    4980     mov byte [es:bx+021h], cl                 ; 26 88 4f 21
     5546    jmp near 044fdh                           ; e9 b7 02
     5547    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     5548    imul dx, dx, strict byte 00018h           ; 6b d2 18
     5549    db  0feh, 0c0h
     5550    ; inc al                                    ; fe c0
     5551    mov es, [bp-00ah]                         ; 8e 46 f6
     5552    add si, dx                                ; 01 d6
     5553    mov byte [es:si+021h], al                 ; 26 88 44 21
    49815554    mov ax, word [bp+01ch]                    ; 8b 46 1c
    49825555    xor al, al                                ; 30 c0
    49835556    or AL, strict byte 001h                   ; 0c 01
    49845557    mov word [bp+01ch], ax                    ; 89 46 1c
    4985     jmp short 04416h                          ; eb c2
    4986     jmp near 0474eh                           ; e9 f7 02
    4987     test cl, cl                               ; 84 c9
    4988     jne short 04469h                          ; 75 0e
     5558    jmp near 04296h                           ; e9 31 00
     5559    test al, al                               ; 84 c0
     5560    jne short 04275h                          ; 75 0c
    49895561    or bh, 0b0h                               ; 80 cf b0
    49905562    mov word [bp+01ch], bx                    ; 89 5e 1c
    4991     mov byte [bp+01ch], cl                    ; 88 4e 1c
    4992     jmp near 04759h                           ; e9 f2 02
    4993     jmp short 04481h                          ; eb 18
    4994     mov al, byte [bp-002h]                    ; 8a 46 fe
     5563    mov byte [bp+01ch], al                    ; 88 46 1c
     5564    jmp near 04500h                           ; e9 8b 02
     5565    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     5566    imul dx, dx, strict byte 00018h           ; 6b d2 18
     5567    db  0feh, 0c8h
     5568    ; dec al                                    ; fe c8
     5569    mov es, [bp-00ah]                         ; 8e 46 f6
     5570    add si, dx                                ; 01 d6
     5571    mov byte [es:si+021h], al                 ; 26 88 44 21
     5572    test al, al                               ; 84 c0
     5573    db  00fh, 095h, 0c0h
     5574    ; setne al                                  ; 0f 95 c0
    49955575    xor ah, ah                                ; 30 e4
    4996     mov dx, strict word 00018h                ; ba 18 00
    4997     imul dx                                   ; f7 ea
    4998     db  0feh, 0c9h
    4999     ; dec cl                                    ; fe c9
    5000     mov es, [bp-018h]                         ; 8e 46 e8
    5001     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5002     add bx, ax                                ; 01 c3
    5003     mov byte [es:bx+021h], cl                 ; 26 88 4f 21
    5004     test cl, cl                               ; 84 c9
    5005     jne short 04493h                          ; 75 0e
    5006     xor ax, ax                                ; 31 c0
    50075576    mov dx, word [bp+01ch]                    ; 8b 56 1c
    5008     xor dl, dl                                ; 30 d2
    5009     or dx, ax                                 ; 09 c2
     5577    mov dl, al                                ; 88 c2
    50105578    mov word [bp+01ch], dx                    ; 89 56 1c
    5011     jmp short 04416h                          ; eb 83
    5012     mov ax, strict word 00001h                ; b8 01 00
    5013     jmp short 04487h                          ; eb ef
    5014     mov al, byte [bp-002h]                    ; 8a 46 fe
    5015     xor ah, ah                                ; 30 e4
    5016     mov dx, strict word 00018h                ; ba 18 00
    5017     imul dx                                   ; f7 ea
    5018     mov es, [bp-018h]                         ; 8e 46 e8
    5019     mov si, word [bp-00ah]                    ; 8b 76 f6
     5579    mov byte [bp+01dh], 000h                  ; c6 46 1d 00
     5580    xor bx, bx                                ; 31 db
     5581    mov dx, strict word 00074h                ; ba 74 00
     5582    mov ax, strict word 00040h                ; b8 40 00
     5583    call 0160eh                               ; e8 69 d3
     5584    and byte [bp+022h], 0feh                  ; 80 66 22 fe
     5585    leave                                     ; c9
     5586    pop di                                    ; 5f
     5587    pop si                                    ; 5e
     5588    retn                                      ; c3
     5589    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     5590    imul ax, ax, strict byte 00018h           ; 6b c0 18
     5591    mov es, [bp-00ah]                         ; 8e 46 f6
    50205592    add si, ax                                ; 01 c6
    5021     mov cl, byte [es:si+021h]                 ; 26 8a 4c 21
    5022     test cl, cl                               ; 84 c9
    5023     je short 044b8h                           ; 74 06
     5593    mov al, byte [es:si+021h]                 ; 26 8a 44 21
     5594    test al, al                               ; 84 c0
     5595    je short 042c7h                           ; 74 06
    50245596    or bh, 0b1h                               ; 80 cf b1
    5025     jmp near 04255h                           ; e9 9d fd
     5597    jmp near 040a0h                           ; e9 d9 fd
    50265598    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    5027     je short 044e4h                           ; 74 26
     5599    je short 04296h                           ; 74 c9
    50285600    mov ax, word [bp+01ch]                    ; 8b 46 1c
    50295601    xor ah, ah                                ; 30 e4
    50305602    or ah, 0b1h                               ; 80 cc b1
    5031     jmp near 04756h                           ; e9 8d 02
    5032     mov bx, word [bp+010h]                    ; 8b 5e 10
     5603    jmp near 044fdh                           ; e9 25 02
     5604    mov dx, word [bp+010h]                    ; 8b 56 10
    50335605    mov cx, word [bp+00ah]                    ; 8b 4e 0a
    5034     mov si, bx                                ; 89 de
     5606    mov bx, dx                                ; 89 d3
    50355607    mov word [bp-008h], cx                    ; 89 4e f8
    50365608    mov es, cx                                ; 8e c1
    5037     mov ax, word [es:bx]                      ; 26 8b 07
    5038     mov word [bp-00ch], ax                    ; 89 46 f4
     5609    mov di, dx                                ; 89 d7
     5610    mov ax, word [es:di]                      ; 26 8b 05
     5611    mov word [bp-00eh], ax                    ; 89 46 f2
    50395612    cmp ax, strict word 0001ah                ; 3d 1a 00
    5040     jnc short 044e7h                          ; 73 06
    5041     jmp near 0474eh                           ; e9 6a 02
    5042     jmp near 04717h                           ; e9 30 02
    5043     jc short 0454ch                           ; 72 63
    5044     mov al, byte [bp-002h]                    ; 8a 46 fe
    5045     xor ah, ah                                ; 30 e4
    5046     mov dx, strict word 00018h                ; ba 18 00
    5047     imul dx                                   ; f7 ea
    5048     mov es, [bp-018h]                         ; 8e 46 e8
    5049     mov di, word [bp-00ah]                    ; 8b 7e f6
    5050     add di, ax                                ; 01 c7
     5613    jc near 044f5h                            ; 0f 82 01 02
     5614    jc short 04343h                           ; 72 4d
     5615    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
     5616    imul di, di, strict byte 00018h           ; 6b ff 18
     5617    mov es, [bp-00ah]                         ; 8e 46 f6
     5618    add di, si                                ; 01 f7
    50515619    mov ax, word [es:di+024h]                 ; 26 8b 45 24
    50525620    mov es, cx                                ; 8e c1
    5053     mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
    5054     mov word [es:bx+002h], strict word 00074h ; 26 c7 47 02 74 00
    5055     mov word [es:bx+004h], strict word 0ffffh ; 26 c7 47 04 ff ff
    5056     mov word [es:bx+006h], strict word 0ffffh ; 26 c7 47 06 ff ff
    5057     mov word [es:bx+008h], strict word 0ffffh ; 26 c7 47 08 ff ff
    5058     mov word [es:bx+00ah], strict word 0ffffh ; 26 c7 47 0a ff ff
    5059     mov word [es:bx+00ch], strict word 0ffffh ; 26 c7 47 0c ff ff
    5060     mov word [es:bx+00eh], strict word 0ffffh ; 26 c7 47 0e ff ff
    5061     mov word [es:bx+018h], ax                 ; 26 89 47 18
    5062     mov word [es:bx+010h], strict word 0ffffh ; 26 c7 47 10 ff ff
    5063     mov word [es:bx+012h], strict word 0ffffh ; 26 c7 47 12 ff ff
    5064     mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff
    5065     mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    5066     cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
    5067     jc short 045b6h                           ; 72 64
     5621    mov di, dx                                ; 89 d7
     5622    db  066h, 026h, 0c7h, 005h, 01ah, 000h, 074h, 000h
     5623    ; mov dword [es:di], strict dword 00074001ah ; 66 26 c7 05 1a 00 74 00
     5624    db  066h, 026h, 0c7h, 045h, 004h, 0ffh, 0ffh, 0ffh, 0ffh
     5625    ; mov dword [es:di+004h], strict dword 0ffffffffh ; 66 26 c7 45 04 ff ff ff ff
     5626    db  066h, 026h, 0c7h, 045h, 008h, 0ffh, 0ffh, 0ffh, 0ffh
     5627    ; mov dword [es:di+008h], strict dword 0ffffffffh ; 66 26 c7 45 08 ff ff ff ff
     5628    db  066h, 026h, 0c7h, 045h, 00ch, 0ffh, 0ffh, 0ffh, 0ffh
     5629    ; mov dword [es:di+00ch], strict dword 0ffffffffh ; 66 26 c7 45 0c ff ff ff ff
     5630    mov word [es:di+018h], ax                 ; 26 89 45 18
     5631    db  066h, 026h, 0c7h, 045h, 010h, 0ffh, 0ffh, 0ffh, 0ffh
     5632    ; mov dword [es:di+010h], strict dword 0ffffffffh ; 66 26 c7 45 10 ff ff ff ff
     5633    db  066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh
     5634    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
     5635    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
     5636    jc near 04419h                            ; 0f 82 ce 00
    50685637    mov es, [bp-008h]                         ; 8e 46 f8
    5069     mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
    5070     mov ax, word [bp-01eh]                    ; 8b 46 e2
    5071     mov word [es:si+01ch], ax                 ; 26 89 44 1c
    5072     mov word [es:si+01ah], 00312h             ; 26 c7 44 1a 12 03
    5073     mov cl, byte [bp-002h]                    ; 8a 4e fe
    5074     xor ch, ch                                ; 30 ed
     5638    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     5639    mov ax, word [bp-018h]                    ; 8b 46 e8
     5640    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
     5641    mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
     5642    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    50755643    mov ax, cx                                ; 89 c8
    50765644    cwd                                       ; 99
     
    50795647    sar ax, 1                                 ; d1 f8
    50805648    xor ah, ah                                ; 30 e4
    5081     mov dx, strict word 00006h                ; ba 06 00
    5082     imul dx                                   ; f7 ea
    5083     mov es, [bp-018h]                         ; 8e 46 e8
    5084     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5085     add bx, ax                                ; 01 c3
    5086     mov ax, word [es:bx+001c2h]               ; 26 8b 87 c2 01
    5087     mov word [bp-016h], ax                    ; 89 46 ea
    5088     mov ax, word [es:bx+001c4h]               ; 26 8b 87 c4 01
    5089     mov word [bp-014h], ax                    ; 89 46 ec
    5090     mov al, byte [es:bx+001c1h]               ; 26 8a 87 c1 01
    5091     mov byte [bp-006h], al                    ; 88 46 fa
    5092     mov ax, cx                                ; 89 c8
    5093     mov dx, strict word 00018h                ; ba 18 00
    5094     imul dx                                   ; f7 ea
    5095     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5096     add bx, ax                                ; 01 c3
    5097     mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    5098     mov di, strict word 00070h                ; bf 70 00
     5649    imul ax, ax, strict byte 00006h           ; 6b c0 06
     5650    mov es, [bp-00ah]                         ; 8e 46 f6
     5651    mov di, si                                ; 89 f7
     5652    add di, ax                                ; 01 c7
     5653    mov dx, word [es:di+001c2h]               ; 26 8b 95 c2 01
     5654    mov ax, word [es:di+001c4h]               ; 26 8b 85 c4 01
     5655    mov word [bp-01ah], ax                    ; 89 46 e6
     5656    mov al, byte [es:di+001c1h]               ; 26 8a 85 c1 01
     5657    mov byte [bp-002h], al                    ; 88 46 fe
     5658    imul cx, cx, strict byte 00018h           ; 6b c9 18
     5659    mov di, si                                ; 89 f7
     5660    add di, cx                                ; 01 cf
     5661    mov al, byte [es:di+022h]                 ; 26 8a 45 22
    50995662    cmp AL, strict byte 001h                  ; 3c 01
    5100     jne short 045b9h                          ; 75 08
    5101     mov ax, strict word 00001h                ; b8 01 00
    5102     jmp short 045bbh                          ; eb 05
    5103     jmp near 04648h                           ; e9 8f 00
    5104     xor ax, ax                                ; 31 c0
    5105     or di, ax                                 ; 09 c7
    5106     mov ax, word [bp-016h]                    ; 8b 46 ea
    5107     mov es, [bp-018h]                         ; 8e 46 e8
    5108     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5109     mov word [es:bx+001f0h], ax               ; 26 89 87 f0 01
    5110     mov ax, word [bp-014h]                    ; 8b 46 ec
    5111     mov word [es:bx+001f2h], ax               ; 26 89 87 f2 01
     5663    db  00fh, 094h, 0c0h
     5664    ; sete al                                   ; 0f 94 c0
     5665    xor ah, ah                                ; 30 e4
     5666    or AL, strict byte 070h                   ; 0c 70
     5667    mov di, ax                                ; 89 c7
     5668    mov word [es:si+001f0h], dx               ; 26 89 94 f0 01
     5669    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5670    mov word [es:si+001f2h], ax               ; 26 89 84 f2 01
     5671    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     5672    cwd                                       ; 99
     5673    mov cx, strict word 00002h                ; b9 02 00
     5674    idiv cx                                   ; f7 f9
     5675    or dl, 00eh                               ; 80 ca 0e
     5676    sal dx, 004h                              ; c1 e2 04
     5677    mov byte [es:si+001f4h], dl               ; 26 88 94 f4 01
     5678    mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
    51125679    mov al, byte [bp-002h]                    ; 8a 46 fe
    5113     xor ah, ah                                ; 30 e4
    5114     cwd                                       ; 99
    5115     mov bx, strict word 00002h                ; bb 02 00
    5116     idiv bx                                   ; f7 fb
    5117     or dl, 00eh                               ; 80 ca 0e
    5118     mov ax, dx                                ; 89 d0
    5119     mov CL, strict byte 004h                  ; b1 04
    5120     sal ax, CL                                ; d3 e0
    5121     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5122     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    5123     mov byte [es:bx+001f5h], 0cbh             ; 26 c6 87 f5 01 cb
    5124     mov al, byte [bp-006h]                    ; 8a 46 fa
    5125     mov byte [es:bx+001f6h], al               ; 26 88 87 f6 01
    5126     mov word [es:bx+001f7h], strict word 00001h ; 26 c7 87 f7 01 01 00
    5127     mov byte [es:bx+001f9h], 000h             ; 26 c6 87 f9 01 00
    5128     mov word [es:bx+001fah], di               ; 26 89 bf fa 01
    5129     mov word [es:bx+001fch], strict word 00000h ; 26 c7 87 fc 01 00 00
    5130     mov byte [es:bx+001feh], 011h             ; 26 c6 87 fe 01 11
    5131     xor bl, bl                                ; 30 db
    5132     xor bh, bh                                ; 30 ff
    5133     jmp short 04627h                          ; eb 05
    5134     cmp bh, 00fh                              ; 80 ff 0f
    5135     jnc short 0463bh                          ; 73 14
    5136     mov dl, bh                                ; 88 fa
    5137     xor dh, dh                                ; 30 f6
     5680    mov byte [es:si+001f6h], al               ; 26 88 84 f6 01
     5681    mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
     5682    mov byte [es:si+001f9h], 000h             ; 26 c6 84 f9 01 00
     5683    mov word [es:si+001fah], di               ; 26 89 bc fa 01
     5684    mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00
     5685    mov byte [es:si+001feh], 011h             ; 26 c6 84 fe 01 11
     5686    xor cl, cl                                ; 30 c9
     5687    xor ch, ch                                ; 30 ed
     5688    jmp short 043fch                          ; eb 05
     5689    cmp ch, 00fh                              ; 80 fd 0f
     5690    jnc short 0440fh                          ; 73 13
     5691    movzx dx, ch                              ; 0f b6 d5
    51385692    add dx, 00312h                            ; 81 c2 12 03
    5139     mov ax, word [bp-01eh]                    ; 8b 46 e2
    5140     call 01600h                               ; e8 cb cf
    5141     add bl, al                                ; 00 c3
    5142     db  0feh, 0c7h
    5143     ; inc bh                                    ; fe c7
    5144     jmp short 04622h                          ; eb e7
    5145     neg bl                                    ; f6 db
    5146     mov es, [bp-018h]                         ; 8e 46 e8
    5147     mov di, word [bp-00ah]                    ; 8b 7e f6
    5148     mov byte [es:di+001ffh], bl               ; 26 88 9d ff 01
    5149     cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
    5150     jnc short 04651h                          ; 73 03
    5151     jmp near 04717h                           ; e9 c6 00
    5152     mov al, byte [bp-002h]                    ; 8a 46 fe
    5153     xor ah, ah                                ; 30 e4
     5693    mov ax, word [bp-018h]                    ; 8b 46 e8
     5694    call 01600h                               ; e8 f7 d1
     5695    add cl, al                                ; 00 c1
     5696    db  0feh, 0c5h
     5697    ; inc ch                                    ; fe c5
     5698    jmp short 043f7h                          ; eb e8
     5699    neg cl                                    ; f6 d9
     5700    mov es, [bp-00ah]                         ; 8e 46 f6
     5701    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
     5702    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
     5703    jc near 04296h                            ; 0f 82 75 fe
     5704    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    51545705    cwd                                       ; 99
    51555706    db  02bh, 0c2h
     
    51575708    sar ax, 1                                 ; d1 f8
    51585709    xor ah, ah                                ; 30 e4
    5159     mov dx, strict word 00006h                ; ba 06 00
    5160     imul dx                                   ; f7 ea
    5161     mov es, [bp-018h]                         ; 8e 46 e8
    5162     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5163     add bx, ax                                ; 01 c3
    5164     mov al, byte [es:bx+001c0h]               ; 26 8a 87 c0 01
    5165     mov dx, word [es:bx+001c2h]               ; 26 8b 97 c2 01
     5710    imul ax, ax, strict byte 00006h           ; 6b c0 06
     5711    mov es, [bp-00ah]                         ; 8e 46 f6
     5712    add si, ax                                ; 01 c6
     5713    mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
     5714    mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
    51665715    mov es, [bp-008h]                         ; 8e 46 f8
    5167     mov word [es:si], strict word 00042h      ; 26 c7 04 42 00
    5168     mov word [es:si+01eh], 0beddh             ; 26 c7 44 1e dd be
    5169     mov word [es:si+020h], strict word 00024h ; 26 c7 44 20 24 00
    5170     mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
     5716    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
     5717    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
     5718    ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00
     5719    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    51715720    test al, al                               ; 84 c0
    5172     jne short 0469eh                          ; 75 0c
    5173     mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    5174     mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     5721    jne short 04462h                          ; 75 09
     5722    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
     5723    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
    51755724    mov es, [bp-008h]                         ; 8e 46 f8
    5176     mov word [es:si+028h], 05441h             ; 26 c7 44 28 41 54
    5177     mov word [es:si+02ah], 02041h             ; 26 c7 44 2a 41 20
    5178     mov word [es:si+02ch], 02020h             ; 26 c7 44 2c 20 20
    5179     mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
     5725    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
     5726    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
     5727    db  066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h
     5728    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    51805729    test al, al                               ; 84 c0
    5181     jne short 046d3h                          ; 75 16
    5182     mov word [es:si+030h], dx                 ; 26 89 54 30
    5183     mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
    5184     mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00
    5185     mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00
    5186     mov al, byte [bp-002h]                    ; 8a 46 fe
     5730    jne short 0448eh                          ; 75 13
     5731    mov word [es:bx+030h], dx                 ; 26 89 57 30
     5732    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     5733    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
     5734    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
     5735    mov al, byte [bp-006h]                    ; 8a 46 fa
    51875736    and AL, strict byte 001h                  ; 24 01
    51885737    xor ah, ah                                ; 30 e4
    51895738    mov es, [bp-008h]                         ; 8e 46 f8
    5190     mov word [es:si+038h], ax                 ; 26 89 44 38
    5191     mov word [es:si+03ah], strict word 00000h ; 26 c7 44 3a 00 00
    5192     mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00
    5193     mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00
     5739    mov word [es:bx+038h], ax                 ; 26 89 47 38
     5740    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
     5741    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
     5742    mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
    51945743    xor al, al                                ; 30 c0
    51955744    mov AH, strict byte 01eh                  ; b4 1e
    5196     jmp short 046feh                          ; eb 05
     5745    jmp short 044b6h                          ; eb 05
    51975746    cmp ah, 040h                              ; 80 fc 40
    5198     jnc short 0470eh                          ; 73 10
    5199     mov bl, ah                                ; 88 e3
    5200     xor bh, bh                                ; 30 ff
     5747    jnc short 044c5h                          ; 73 0f
     5748    movzx si, ah                              ; 0f b6 f4
    52015749    mov es, [bp-008h]                         ; 8e 46 f8
    5202     add bx, si                                ; 01 f3
    5203     add al, byte [es:bx]                      ; 26 02 07
     5750    add si, bx                                ; 01 de
     5751    add al, byte [es:si]                      ; 26 02 04
    52045752    db  0feh, 0c4h
    52055753    ; inc ah                                    ; fe c4
    5206     jmp short 046f9h                          ; eb eb
     5754    jmp short 044b1h                          ; eb ec
    52075755    neg al                                    ; f6 d8
    52085756    mov es, [bp-008h]                         ; 8e 46 f8
    5209     mov byte [es:si+041h], al                 ; 26 88 44 41
    5210     mov byte [bp+01dh], 000h                  ; c6 46 1d 00
    5211     xor bx, bx                                ; 31 db
    5212     mov dx, strict word 00074h                ; ba 74 00
    5213     mov ax, strict word 00040h                ; b8 40 00
    5214     call 0160eh                               ; e8 e8 ce
    5215     and byte [bp+022h], 0feh                  ; 80 66 22 fe
    5216     mov sp, bp                                ; 89 ec
    5217     pop bp                                    ; 5d
    5218     pop di                                    ; 5f
    5219     pop si                                    ; 5e
    5220     retn                                      ; c3
     5757    mov byte [es:bx+041h], al                 ; 26 88 47 41
     5758    jmp near 04296h                           ; e9 c5 fd
    52215759    or bh, 006h                               ; 80 cf 06
    52225760    mov word [bp+01ch], bx                    ; 89 5e 1c
    5223     jmp short 04767h                          ; eb 2f
     5761    jmp short 04511h                          ; eb 38
    52245762    cmp bx, strict byte 00006h                ; 83 fb 06
    5225     je short 04717h                           ; 74 da
     5763    je near 04296h                            ; 0f 84 b6 fd
    52265764    cmp bx, strict byte 00001h                ; 83 fb 01
    5227     jc short 0474eh                           ; 72 0c
    5228     jbe short 04717h                          ; 76 d3
     5765    jc short 044f5h                           ; 72 10
     5766    jbe near 04296h                           ; 0f 86 ad fd
    52295767    cmp bx, strict byte 00003h                ; 83 fb 03
    5230     jc short 0474eh                           ; 72 05
     5768    jc short 044f5h                           ; 72 07
    52315769    cmp bx, strict byte 00004h                ; 83 fb 04
    5232     jbe short 04717h                          ; 76 c9
     5770    jbe near 04296h                           ; 0f 86 a1 fd
    52335771    mov ax, word [bp+01ch]                    ; 8b 46 1c
    52345772    xor ah, ah                                ; 30 e4
    52355773    or ah, 001h                               ; 80 cc 01
    52365774    mov word [bp+01ch], ax                    ; 89 46 1c
    5237     mov bl, byte [bp+01dh]                    ; 8a 5e 1d
     5775    mov bx, word [bp+01ch]                    ; 8b 5e 1c
     5776    shr bx, 008h                              ; c1 eb 08
    52385777    xor bh, bh                                ; 30 ff
    52395778    mov dx, strict word 00074h                ; ba 74 00
    52405779    mov ax, strict word 00040h                ; b8 40 00
    5241     call 0160eh                               ; e8 a7 ce
     5780    call 0160eh                               ; e8 fd d0
    52425781    or byte [bp+022h], 001h                   ; 80 4e 22 01
    5243     jmp short 0472ah                          ; eb bd
    5244 print_boot_device_:                          ; 0xf476d LB 0x4e
     5782    jmp near 042a9h                           ; e9 91 fd
     5783    mov bx, 00c08h                            ; bb 08 0c
     5784    mov cx, ds                                ; 8c d9
     5785    mov ax, strict word 00004h                ; b8 04 00
     5786    call 018aeh                               ; e8 8b d3
     5787    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5788    shr ax, 008h                              ; c1 e8 08
     5789    push ax                                   ; 50
     5790    push 00335h                               ; 68 35 03
     5791    push 00289h                               ; 68 89 02
     5792    push strict byte 00004h                   ; 6a 04
     5793    jmp near 040fbh                           ; e9 c6 fb
     5794print_boot_device_:                          ; 0xf4535 LB 0x48
    52455795    push cx                                   ; 51
    52465796    push bp                                   ; 55
    52475797    mov bp, sp                                ; 89 e5
    52485798    test al, al                               ; 84 c0
    5249     je short 0477ah                           ; 74 05
     5799    je short 04542h                           ; 74 05
    52505800    mov dx, strict word 00002h                ; ba 02 00
    5251     jmp short 04794h                          ; eb 1a
     5801    jmp short 0455ch                          ; eb 1a
    52525802    test dl, dl                               ; 84 d2
    5253     je short 04783h                           ; 74 05
     5803    je short 0454bh                           ; 74 05
    52545804    mov dx, strict word 00003h                ; ba 03 00
    5255     jmp short 04794h                          ; eb 11
     5805    jmp short 0455ch                          ; eb 11
    52565806    test bl, 080h                             ; f6 c3 80
    5257     jne short 0478ch                          ; 75 04
     5807    jne short 04554h                          ; 75 04
    52585808    xor dh, dh                                ; 30 f6
    5259     jmp short 04794h                          ; eb 08
     5809    jmp short 0455ch                          ; eb 08
    52605810    test bl, 080h                             ; f6 c3 80
    5261     je short 047b8h                           ; 74 27
     5811    je short 0457ah                           ; 74 21
    52625812    mov dx, strict word 00001h                ; ba 01 00
    5263     mov bx, 00c16h                            ; bb 16 0c
     5813    mov bx, 00c08h                            ; bb 08 0c
    52645814    mov cx, ds                                ; 8c d9
    52655815    mov ax, strict word 00004h                ; b8 04 00
    5266     call 018bdh                               ; e8 1e d1
    5267     mov ax, dx                                ; 89 d0
    5268     mov dx, strict word 0000ah                ; ba 0a 00
    5269     imul dx                                   ; f7 ea
    5270     add ax, 00c3ch                            ; 05 3c 0c
    5271     push ax                                   ; 50
    5272     mov ax, 003eah                            ; b8 ea 03
    5273     push ax                                   ; 50
    5274     mov ax, strict word 00004h                ; b8 04 00
    5275     push ax                                   ; 50
    5276     call 018fah                               ; e8 45 d1
     5816    call 018aeh                               ; e8 47 d3
     5817    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
     5818    add dx, 00c2eh                            ; 81 c2 2e 0c
     5819    push dx                                   ; 52
     5820    push 003eah                               ; 68 ea 03
     5821    push strict byte 00004h                   ; 6a 04
     5822    call 018e9h                               ; e8 72 d3
    52775823    add sp, strict byte 00006h                ; 83 c4 06
    52785824    pop bp                                    ; 5d
    52795825    pop cx                                    ; 59
    52805826    retn                                      ; c3
    5281 print_boot_failure_:                         ; 0xf47bb LB 0x9c
     5827print_boot_failure_:                         ; 0xf457d LB 0x90
    52825828    push si                                   ; 56
    52835829    push bp                                   ; 55
    52845830    mov bp, sp                                ; 89 e5
    52855831    mov dh, cl                                ; 88 ce
    5286     mov cl, bl                                ; 88 d9
    5287     and cl, 07fh                              ; 80 e1 7f
    5288     xor ch, ch                                ; 30 ed
    5289     mov si, cx                                ; 89 ce
     5832    mov ah, bl                                ; 88 dc
     5833    and ah, 07fh                              ; 80 e4 7f
     5834    movzx si, ah                              ; 0f b6 f4
    52905835    test al, al                               ; 84 c0
    5291     je short 047edh                           ; 74 1f
    5292     mov bx, 00c16h                            ; bb 16 0c
     5836    je short 045aah                           ; 74 1b
     5837    mov bx, 00c08h                            ; bb 08 0c
    52935838    mov cx, ds                                ; 8c d9
    52945839    mov ax, strict word 00004h                ; b8 04 00
    5295     call 018bdh                               ; e8 e4 d0
    5296     mov cx, 00c50h                            ; b9 50 0c
    5297     push cx                                   ; 51
    5298     mov cx, 003feh                            ; b9 fe 03
    5299     push cx                                   ; 51
    5300     mov cx, strict word 00004h                ; b9 04 00
    5301     push cx                                   ; 51
    5302     call 018fah                               ; e8 12 d1
     5840    call 018aeh                               ; e8 14 d3
     5841    push 00c42h                               ; 68 42 0c
     5842    push 003feh                               ; 68 fe 03
     5843    push strict byte 00004h                   ; 6a 04
     5844    call 018e9h                               ; e8 44 d3
    53035845    add sp, strict byte 00006h                ; 83 c4 06
    5304     jmp short 04835h                          ; eb 48
     5846    jmp short 045eeh                          ; eb 44
    53055847    test dl, dl                               ; 84 d2
    5306     je short 04801h                           ; 74 10
    5307     mov bx, 00c16h                            ; bb 16 0c
     5848    je short 045beh                           ; 74 10
     5849    mov bx, 00c08h                            ; bb 08 0c
    53085850    mov cx, ds                                ; 8c d9
    53095851    mov ax, strict word 00004h                ; b8 04 00
    5310     call 018bdh                               ; e8 c1 d0
    5311     mov cx, 00c5ah                            ; b9 5a 0c
    5312     jmp short 047dch                          ; eb db
     5852    call 018aeh                               ; e8 f5 d2
     5853    push 00c4ch                               ; 68 4c 0c
     5854    jmp short 0459dh                          ; eb df
    53135855    test bl, 080h                             ; f6 c3 80
    5314     je short 04817h                           ; 74 11
    5315     mov bx, 00c16h                            ; bb 16 0c
     5856    je short 045d4h                           ; 74 11
     5857    mov bx, 00c08h                            ; bb 08 0c
    53165858    mov cx, ds                                ; 8c d9
    53175859    mov ax, strict word 00004h                ; b8 04 00
    5318     call 018bdh                               ; e8 ac d0
     5860    call 018aeh                               ; e8 e0 d2
    53195861    push si                                   ; 56
    5320     mov cx, 00c46h                            ; b9 46 0c
    5321     jmp short 04826h                          ; eb 0f
    5322     mov bx, 00c16h                            ; bb 16 0c
     5862    push 00c38h                               ; 68 38 0c
     5863    jmp short 045e3h                          ; eb 0f
     5864    mov bx, 00c08h                            ; bb 08 0c
    53235865    mov cx, ds                                ; 8c d9
    53245866    mov ax, strict word 00004h                ; b8 04 00
    5325     call 018bdh                               ; e8 9b d0
     5867    call 018aeh                               ; e8 cf d2
    53265868    push si                                   ; 56
    5327     mov cx, 00c3ch                            ; b9 3c 0c
    5328     push cx                                   ; 51
    5329     mov cx, 00413h                            ; b9 13 04
    5330     push cx                                   ; 51
    5331     mov cx, strict word 00004h                ; b9 04 00
    5332     push cx                                   ; 51
    5333     call 018fah                               ; e8 c8 d0
     5869    push 00c2eh                               ; 68 2e 0c
     5870    push 00413h                               ; 68 13 04
     5871    push strict byte 00004h                   ; 6a 04
     5872    call 018e9h                               ; e8 fe d2
    53345873    add sp, strict byte 00008h                ; 83 c4 08
    53355874    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    5336     jne short 04852h                          ; 75 17
     5875    jne short 04608h                          ; 75 14
    53375876    test dh, dh                               ; 84 f6
    5338     jne short 04844h                          ; 75 05
    5339     mov dx, 0042bh                            ; ba 2b 04
    5340     jmp short 04847h                          ; eb 03
    5341     mov dx, 00455h                            ; ba 55 04
    5342     push dx                                   ; 52
    5343     mov dx, strict word 00007h                ; ba 07 00
    5344     push dx                                   ; 52
    5345     call 018fah                               ; e8 ab d0
     5877    jne short 045fdh                          ; 75 05
     5878    push 0042bh                               ; 68 2b 04
     5879    jmp short 04600h                          ; eb 03
     5880    push 00455h                               ; 68 55 04
     5881    push strict byte 00007h                   ; 6a 07
     5882    call 018e9h                               ; e8 e4 d2
    53465883    add sp, strict byte 00004h                ; 83 c4 04
    53475884    pop bp                                    ; 5d
    53485885    pop si                                    ; 5e
    53495886    retn 00002h                               ; c2 02 00
    5350 print_cdromboot_failure_:                    ; 0xf4857 LB 0x27
     5887print_cdromboot_failure_:                    ; 0xf460d LB 0x24
    53515888    push bx                                   ; 53
    53525889    push cx                                   ; 51
     
    53555892    mov bp, sp                                ; 89 e5
    53565893    mov dx, ax                                ; 89 c2
    5357     mov bx, 00c16h                            ; bb 16 0c
     5894    mov bx, 00c08h                            ; bb 08 0c
    53585895    mov cx, ds                                ; 8c d9
    53595896    mov ax, strict word 00004h                ; b8 04 00
    5360     call 018bdh                               ; e8 53 d0
     5897    call 018aeh                               ; e8 8e d2
    53615898    push dx                                   ; 52
    5362     mov dx, 0048ah                            ; ba 8a 04
    5363     push dx                                   ; 52
    5364     mov dx, strict word 00004h                ; ba 04 00
    5365     push dx                                   ; 52
    5366     call 018fah                               ; e8 84 d0
     5899    push 0048ah                               ; 68 8a 04
     5900    push strict byte 00004h                   ; 6a 04
     5901    call 018e9h                               ; e8 c0 d2
    53675902    add sp, strict byte 00006h                ; 83 c4 06
    53685903    pop bp                                    ; 5d
     
    53715906    pop bx                                    ; 5b
    53725907    retn                                      ; c3
    5373 _int19_function:                             ; 0xf487e LB 0x296
     5908_int19_function:                             ; 0xf4631 LB 0x251
    53745909    push si                                   ; 56
    53755910    push di                                   ; 57
    5376     push bp                                   ; 55
    5377     mov bp, sp                                ; 89 e5
    5378     sub sp, strict byte 00010h                ; 83 ec 10
     5911    enter 0000eh, 000h                        ; c8 0e 00 00
    53795912    mov dx, strict word 0000eh                ; ba 0e 00
    53805913    mov ax, strict word 00040h                ; b8 40 00
    5381     call 0161ch                               ; e8 8d cd
     5914    call 0161ch                               ; e8 dc cf
    53825915    mov bx, ax                                ; 89 c3
    5383     mov di, ax                                ; 89 c7
    5384     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     5916    mov word [bp-00ah], ax                    ; 89 46 f6
     5917    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    53855918    mov ax, strict word 0003dh                ; b8 3d 00
    5386     call 0165ch                               ; e8 bf cd
    5387     mov dl, al                                ; 88 c2
    5388     xor dh, dh                                ; 30 f6
    5389     mov word [bp-00ch], dx                    ; 89 56 f4
     5919    call 0165ch                               ; e8 0d d0
     5920    movzx si, al                              ; 0f b6 f0
    53905921    mov ax, strict word 00038h                ; b8 38 00
    5391     call 0165ch                               ; e8 b2 cd
     5922    call 0165ch                               ; e8 04 d0
    53925923    and AL, strict byte 0f0h                  ; 24 f0
    5393     mov byte [bp-00ah], al                    ; 88 46 f6
    5394     mov byte [bp-009h], dh                    ; 88 76 f7
    5395     mov CL, strict byte 004h                  ; b1 04
    5396     mov ax, word [bp-00ah]                    ; 8b 46 f6
    5397     sal ax, CL                                ; d3 e0
    5398     or dx, ax                                 ; 09 c2
    5399     mov word [bp-00ch], dx                    ; 89 56 f4
     5924    xor ah, ah                                ; 30 e4
     5925    sal ax, 004h                              ; c1 e0 04
     5926    or si, ax                                 ; 09 c6
    54005927    mov ax, strict word 0003ch                ; b8 3c 00
    5401     call 0165ch                               ; e8 98 cd
     5928    call 0165ch                               ; e8 f5 cf
    54025929    and AL, strict byte 00fh                  ; 24 0f
    54035930    xor ah, ah                                ; 30 e4
    5404     mov CL, strict byte 00ch                  ; b1 0c
    5405     sal ax, CL                                ; d3 e0
    5406     or word [bp-00ch], ax                     ; 09 46 f4
     5931    sal ax, 00ch                              ; c1 e0 0c
     5932    or si, ax                                 ; 09 c6
    54075933    mov dx, 00339h                            ; ba 39 03
    54085934    mov ax, bx                                ; 89 d8
    5409     call 01600h                               ; e8 29 cd
     5935    call 01600h                               ; e8 88 cf
    54105936    test al, al                               ; 84 c0
    5411     je short 048e8h                           ; 74 0d
     5937    je short 04687h                           ; 74 0b
    54125938    mov dx, 00339h                            ; ba 39 03
    54135939    mov ax, bx                                ; 89 d8
    5414     call 01600h                               ; e8 1d cd
    5415     xor ah, ah                                ; 30 e4
    5416     mov word [bp-00ch], ax                    ; 89 46 f4
     5940    call 01600h                               ; e8 7c cf
     5941    movzx si, al                              ; 0f b6 f0
    54175942    cmp byte [bp+008h], 001h                  ; 80 7e 08 01
    5418     jne short 048ffh                          ; 75 11
     5943    jne short 0469dh                          ; 75 10
    54195944    mov ax, strict word 0003ch                ; b8 3c 00
    5420     call 0165ch                               ; e8 68 cd
     5945    call 0165ch                               ; e8 c9 cf
    54215946    and AL, strict byte 0f0h                  ; 24 f0
    54225947    xor ah, ah                                ; 30 e4
    5423     mov CL, strict byte 004h                  ; b1 04
    5424     sar ax, CL                                ; d3 f8
    5425     call 07610h                               ; e8 11 2d
     5948    sar ax, 004h                              ; c1 f8 04
     5949    call 07216h                               ; e8 79 2b
    54265950    cmp byte [bp+008h], 002h                  ; 80 7e 08 02
    5427     jne short 0490ah                          ; 75 05
    5428     mov CL, strict byte 004h                  ; b1 04
    5429     shr word [bp-00ch], CL                    ; d3 6e f4
     5951    jne short 046a6h                          ; 75 03
     5952    shr si, 004h                              ; c1 ee 04
    54305953    cmp byte [bp+008h], 003h                  ; 80 7e 08 03
    5431     jne short 04918h                          ; 75 08
    5432     mov al, byte [bp-00bh]                    ; 8a 46 f5
    5433     xor ah, ah                                ; 30 e4
    5434     mov word [bp-00ch], ax                    ; 89 46 f4
     5954    jne short 046afh                          ; 75 03
     5955    shr si, 008h                              ; c1 ee 08
    54355956    cmp byte [bp+008h], 004h                  ; 80 7e 08 04
    5436     jne short 04923h                          ; 75 05
    5437     mov CL, strict byte 00ch                  ; b1 0c
    5438     shr word [bp-00ch], CL                    ; d3 6e f4
    5439     cmp word [bp-00ch], strict byte 00010h    ; 83 7e f4 10
    5440     jnc short 0492dh                          ; 73 04
    5441     mov byte [bp-008h], 001h                  ; c6 46 f8 01
     5957    jne short 046b8h                          ; 75 03
     5958    shr si, 00ch                              ; c1 ee 0c
     5959    cmp si, strict byte 00010h                ; 83 fe 10
     5960    jnc short 046c1h                          ; 73 04
     5961    mov byte [bp-004h], 001h                  ; c6 46 fc 01
    54425962    xor al, al                                ; 30 c0
    54435963    mov byte [bp-002h], al                    ; 88 46 fe
    5444     mov byte [bp-004h], al                    ; 88 46 fc
    54455964    mov byte [bp-006h], al                    ; 88 46 fa
    5446     mov bx, 00c16h                            ; bb 16 0c
     5965    mov byte [bp-008h], al                    ; 88 46 f8
     5966    mov bx, 00c08h                            ; bb 08 0c
    54475967    mov cx, ds                                ; 8c d9
    54485968    mov ax, strict word 00004h                ; b8 04 00
    5449     call 018bdh                               ; e8 7a cf
    5450     push word [bp-00ch]                       ; ff 76 f4
    5451     mov al, byte [bp+008h]                    ; 8a 46 08
    5452     xor ah, ah                                ; 30 e4
     5969    call 018aeh                               ; e8 d7 d1
     5970    push si                                   ; 56
     5971    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    54535972    push ax                                   ; 50
    5454     mov ax, 004aah                            ; b8 aa 04
    5455     push ax                                   ; 50
    5456     mov ax, strict word 00004h                ; b8 04 00
    5457     push ax                                   ; 50
    5458     call 018fah                               ; e8 a3 cf
     5973    push 004aah                               ; 68 aa 04
     5974    push strict byte 00004h                   ; 6a 04
     5975    call 018e9h                               ; e8 04 d2
    54595976    add sp, strict byte 00008h                ; 83 c4 08
    5460     mov ax, word [bp-00ch]                    ; 8b 46 f4
    5461     and ax, strict word 0000fh                ; 25 0f 00
    5462     cmp ax, strict word 00002h                ; 3d 02 00
    5463     jc short 04973h                           ; 72 0e
    5464     jbe short 04982h                          ; 76 1b
    5465     cmp ax, strict word 00004h                ; 3d 04 00
    5466     je short 0499fh                           ; 74 33
    5467     cmp ax, strict word 00003h                ; 3d 03 00
    5468     je short 04995h                           ; 74 24
    5469     jmp short 049ceh                          ; eb 5b
    5470     cmp ax, strict word 00001h                ; 3d 01 00
    5471     jne short 049ceh                          ; 75 56
     5977    and si, strict byte 0000fh                ; 83 e6 0f
     5978    cmp si, strict byte 00002h                ; 83 fe 02
     5979    jc short 046feh                           ; 72 0e
     5980    jbe short 0470dh                          ; 76 1b
     5981    cmp si, strict byte 00004h                ; 83 fe 04
     5982    je short 0472bh                           ; 74 34
     5983    cmp si, strict byte 00003h                ; 83 fe 03
     5984    je short 04721h                           ; 74 25
     5985    jmp short 04758h                          ; eb 5a
     5986    cmp si, strict byte 00001h                ; 83 fe 01
     5987    jne short 04758h                          ; 75 55
    54725988    xor al, al                                ; 30 c0
    54735989    mov byte [bp-002h], al                    ; 88 46 fe
    5474     mov byte [bp-004h], al                    ; 88 46 fc
    5475     jmp short 049e2h                          ; eb 60
     5990    mov byte [bp-006h], al                    ; 88 46 fa
     5991    jmp short 04770h                          ; eb 63
    54765992    mov dx, 00338h                            ; ba 38 03
    5477     mov ax, di                                ; 89 f8
    5478     call 01600h                               ; e8 76 cc
     5993    mov ax, word [bp-00ah]                    ; 8b 46 f6
     5994    call 01600h                               ; e8 ea ce
    54795995    add AL, strict byte 080h                  ; 04 80
    54805996    mov byte [bp-002h], al                    ; 88 46 fe
    5481     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    5482     jmp short 049e2h                          ; eb 4d
     5997    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     5998    jmp short 04770h                          ; eb 4f
    54835999    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    5484     mov byte [bp-004h], 001h                  ; c6 46 fc 01
    5485     jmp short 049a9h                          ; eb 0a
    54866000    mov byte [bp-006h], 001h                  ; c6 46 fa 01
    5487     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    5488     je short 049e2h                           ; 74 39
    5489     call 038fah                               ; e8 4e ef
     6001    jmp short 04735h                          ; eb 0a
     6002    mov byte [bp-008h], 001h                  ; c6 46 f8 01
     6003    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     6004    je short 04770h                           ; 74 3b
     6005    call 0377ah                               ; e8 42 f0
    54906006    mov bx, ax                                ; 89 c3
    54916007    test AL, strict byte 0ffh                 ; a8 ff
    5492     je short 049d5h                           ; 74 23
    5493     call 04857h                               ; e8 a2 fe
    5494     mov al, byte [bp-008h]                    ; 8a 46 f8
    5495     xor ah, ah                                ; 30 e4
     6008    je short 0475fh                           ; 74 21
     6009    call 0460dh                               ; e8 cc fe
     6010    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    54966011    push ax                                   ; 50
    5497     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5498     xor bh, bh                                ; 30 ff
    5499     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5500     xor dh, dh                                ; 30 f6
    5501     mov al, byte [bp-004h]                    ; 8a 46 fc
     6012    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6013    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     6014    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    55026015    mov cx, strict word 00001h                ; b9 01 00
    5503     call 047bbh                               ; e8 ed fd
     6016    call 0457dh                               ; e8 25 fe
    55046017    xor ax, ax                                ; 31 c0
    55056018    xor dx, dx                                ; 31 d2
    5506     jmp near 04b0eh                           ; e9 39 01
     6019    jmp near 0487eh                           ; e9 1f 01
    55076020    mov dx, 0032eh                            ; ba 2e 03
    5508     mov ax, di                                ; 89 f8
    5509     call 0161ch                               ; e8 3f cc
    5510     mov si, ax                                ; 89 c6
    5511     mov byte [bp-002h], bh                    ; 88 7e fe
    5512     cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    5513     jne short 04a3dh                          ; 75 55
     6021    mov ax, word [bp-00ah]                    ; 8b 46 f6
     6022    call 0161ch                               ; e8 b4 ce
     6023    mov di, ax                                ; 89 c7
     6024    shr bx, 008h                              ; c1 eb 08
     6025    mov byte [bp-002h], bl                    ; 88 5e fe
     6026    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
     6027    jne near 047ech                           ; 0f 85 74 00
    55146028    xor si, si                                ; 31 f6
    55156029    mov ax, 0e200h                            ; b8 00 e2
    55166030    mov es, ax                                ; 8e c0
    55176031    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    5518     jne short 049b5h                          ; 75 bf
     6032    jne short 04741h                          ; 75 bb
    55196033    mov cx, ax                                ; 89 c1
    55206034    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    55216035    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    5522     jne short 049b5h                          ; 75 b1
     6036    jne short 04741h                          ; 75 ad
    55236037    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    5524     jne short 049b5h                          ; 75 aa
    5525     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    5526     mov dx, word [es:bx]                      ; 26 8b 17
    5527     mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     6038    jne short 04741h                          ; 75 a6
     6039    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     6040    mov dx, word [es:di]                      ; 26 8b 15
     6041    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    55286042    cmp ax, 06568h                            ; 3d 68 65
    5529     jne short 04a3fh                          ; 75 24
     6043    jne short 047cah                          ; 75 1f
    55306044    cmp dx, 07445h                            ; 81 fa 45 74
    5531     jne short 04a3fh                          ; 75 1e
    5532     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5533     xor bh, bh                                ; 30 ff
    5534     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5535     xor dh, dh                                ; 30 f6
    5536     mov al, byte [bp-004h]                    ; 8a 46 fc
    5537     xor ah, ah                                ; 30 e4
    5538     call 0476dh                               ; e8 3a fd
    5539     mov word [bp-010h], strict word 00006h    ; c7 46 f0 06 00
    5540     mov word [bp-00eh], cx                    ; 89 4e f2
    5541     jmp short 04a6ch                          ; eb 2f
    5542     jmp short 04a71h                          ; eb 32
    5543     cmp ax, 06574h                            ; 3d 74 65
    5544     je short 04a47h                           ; 74 03
    5545     jmp near 049b5h                           ; e9 6e ff
    5546     cmp dx, 06e49h                            ; 81 fa 49 6e
    5547     jne short 04a44h                          ; 75 f7
    5548     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5549     xor bh, bh                                ; 30 ff
    5550     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5551     xor dh, dh                                ; 30 f6
    5552     mov al, byte [bp-004h]                    ; 8a 46 fc
    5553     xor ah, ah                                ; 30 e4
    5554     call 0476dh                               ; e8 0e fd
     6045    jne short 047cah                          ; 75 19
     6046    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6047    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     6048    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6049    call 04535h                               ; e8 75 fd
     6050    mov word [bp-00eh], strict word 00006h    ; c7 46 f2 06 00
     6051    mov word [bp-00ch], cx                    ; 89 4e f4
     6052    jmp short 047e6h                          ; eb 1c
     6053    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6054    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     6055    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6056    call 04535h                               ; e8 5c fd
    55556057    sti                                       ; fb
    5556     mov word [bp-00eh], cx                    ; 89 4e f2
     6058    mov word [bp-00ch], cx                    ; 89 4e f4
    55576059    mov es, cx                                ; 8e c1
    55586060    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    5559     mov word [bp-010h], ax                    ; 89 46 f0
    5560     call far [bp-010h]                        ; ff 5e f0
    5561     jmp short 04a44h                          ; eb d3
    5562     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    5563     jne short 04a9bh                          ; 75 24
     6061    mov word [bp-00eh], ax                    ; 89 46 f2
     6062    call far [bp-00eh]                        ; ff 5e f2
     6063    jmp near 04741h                           ; e9 55 ff
    55646064    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5565     jne short 04a9bh                          ; 75 1e
    5566     mov si, 007c0h                            ; be c0 07
    5567     mov es, si                                ; 8e c6
     6065    jne short 04818h                          ; 75 26
     6066    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     6067    jne short 04818h                          ; 75 20
     6068    mov di, 007c0h                            ; bf c0 07
     6069    mov es, di                                ; 8e c7
    55686070    mov dl, byte [bp-002h]                    ; 8a 56 fe
    55696071    mov ax, 00201h                            ; b8 01 02
     
    55766078    sbb ax, strict byte 00000h                ; 83 d8 00
    55776079    test ax, ax                               ; 85 c0
    5578     jne short 04a44h                          ; 75 a9
     6080    jne near 04741h                           ; 0f 85 29 ff
    55796081    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    5580     je short 04aa5h                           ; 74 04
    5581     xor bl, bl                                ; 30 db
    5582     jmp short 04aa7h                          ; eb 02
    5583     mov BL, strict byte 001h                  ; b3 01
    5584     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    5585     je short 04aafh                           ; 74 02
    5586     mov BL, strict byte 001h                  ; b3 01
     6082    db  00fh, 094h, 0c1h
     6083    ; sete cl                                   ; 0f 94 c1
     6084    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     6085    je short 04827h                           ; 74 02
     6086    mov CL, strict byte 001h                  ; b1 01
    55876087    xor dx, dx                                ; 31 d2
    5588     mov ax, si                                ; 89 f0
    5589     call 0161ch                               ; e8 66 cb
    5590     mov di, ax                                ; 89 c7
     6088    mov ax, di                                ; 89 f8
     6089    call 0161ch                               ; e8 ee cd
     6090    mov bx, ax                                ; 89 c3
    55916091    mov dx, strict word 00002h                ; ba 02 00
    5592     mov ax, si                                ; 89 f0
    5593     call 0161ch                               ; e8 5c cb
    5594     cmp di, ax                                ; 39 c7
    5595     je short 04ad5h                           ; 74 11
    5596     test bl, bl                               ; 84 db
    5597     jne short 04aedh                          ; 75 25
     6092    mov ax, di                                ; 89 f8
     6093    call 0161ch                               ; e8 e4 cd
     6094    cmp bx, ax                                ; 39 c3
     6095    je short 0484dh                           ; 74 11
     6096    test cl, cl                               ; 84 c9
     6097    jne short 04863h                          ; 75 23
    55986098    mov dx, 001feh                            ; ba fe 01
    5599     mov ax, si                                ; 89 f0
    5600     call 0161ch                               ; e8 4c cb
     6099    mov ax, di                                ; 89 f8
     6100    call 0161ch                               ; e8 d4 cd
    56016101    cmp ax, 0aa55h                            ; 3d 55 aa
    5602     je short 04aedh                           ; 74 18
    5603     mov al, byte [bp-008h]                    ; 8a 46 f8
    5604     xor ah, ah                                ; 30 e4
     6102    je short 04863h                           ; 74 16
     6103    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    56056104    push ax                                   ; 50
    5606     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5607     xor bh, bh                                ; 30 ff
    5608     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5609     xor dh, dh                                ; 30 f6
    5610     mov al, byte [bp-004h]                    ; 8a 46 fc
     6105    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6106    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     6107    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    56116108    xor cx, cx                                ; 31 c9
    5612     jmp near 049cbh                           ; e9 de fe
    5613     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5614     xor bh, bh                                ; 30 ff
    5615     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5616     xor dh, dh                                ; 30 f6
    5617     mov al, byte [bp-004h]                    ; 8a 46 fc
    5618     xor ah, ah                                ; 30 e4
    5619     call 0476dh                               ; e8 6e fc
    5620     mov al, byte [bp-002h]                    ; 8a 46 fe
    5621     xor ah, ah                                ; 30 e4
    5622     mov bx, ax                                ; 89 c3
     6109    jmp near 04755h                           ; e9 f2 fe
     6110    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6111    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     6112    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6113    call 04535h                               ; e8 c3 fc
     6114    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    56236115    xor dx, dx                                ; 31 d2
    5624     xor al, al                                ; 30 c0
    5625     add ax, si                                ; 01 f0
     6116    xor ax, ax                                ; 31 c0
     6117    add ax, di                                ; 01 f8
    56266118    adc dx, bx                                ; 11 da
    5627     mov sp, bp                                ; 89 ec
    5628     pop bp                                    ; 5d
     6119    leave                                     ; c9
    56296120    pop di                                    ; 5f
    56306121    pop si                                    ; 5e
    56316122    retn                                      ; c3
    5632 keyboard_panic_:                             ; 0xf4b14 LB 0x14
     6123keyboard_panic_:                             ; 0xf4882 LB 0x11
    56336124    push bp                                   ; 55
    56346125    mov bp, sp                                ; 89 e5
    56356126    push ax                                   ; 50
    5636     mov ax, 004cah                            ; b8 ca 04
    5637     push ax                                   ; 50
    5638     mov ax, strict word 00007h                ; b8 07 00
    5639     push ax                                   ; 50
    5640     call 018fah                               ; e8 d7 cd
     6127    push 004cah                               ; 68 ca 04
     6128    push strict byte 00007h                   ; 6a 07
     6129    call 018e9h                               ; e8 5b d0
    56416130    add sp, strict byte 00006h                ; 83 c4 06
    56426131    pop bp                                    ; 5d
    56436132    retn                                      ; c3
    5644 _keyboard_init:                              ; 0xf4b28 LB 0x27a
     6133_keyboard_init:                              ; 0xf4893 LB 0x27a
    56456134    push bp                                   ; 55
    56466135    mov bp, sp                                ; 89 e5
     
    56546143    ; sub ah, ah                                ; 2a e4
    56556144    test AL, strict byte 002h                 ; a8 02
    5656     je short 04b4bh                           ; 74 0d
     6145    je short 048b6h                           ; 74 0d
    56576146    dec bx                                    ; 4b
    56586147    test bx, bx                               ; 85 db
    5659     jbe short 04b4bh                          ; 76 08
     6148    jbe short 048b6h                          ; 76 08
    56606149    xor al, al                                ; 30 c0
    56616150    mov dx, 00080h                            ; ba 80 00
    56626151    out DX, AL                                ; ee
    5663     jmp short 04b34h                          ; eb e9
     6152    jmp short 0489fh                          ; eb e9
    56646153    test bx, bx                               ; 85 db
    5665     jne short 04b54h                          ; 75 05
     6154    jne short 048bfh                          ; 75 05
    56666155    xor ax, ax                                ; 31 c0
    5667     call 04b14h                               ; e8 c0 ff
     6156    call 04882h                               ; e8 c3 ff
    56686157    mov bx, strict word 0ffffh                ; bb ff ff
    56696158    mov dx, strict word 00064h                ; ba 64 00
     
    56726161    ; sub ah, ah                                ; 2a e4
    56736162    test AL, strict byte 001h                 ; a8 01
    5674     jne short 04b6eh                          ; 75 0d
     6163    jne short 048d9h                          ; 75 0d
    56756164    dec bx                                    ; 4b
    56766165    test bx, bx                               ; 85 db
    5677     jbe short 04b6eh                          ; 76 08
     6166    jbe short 048d9h                          ; 76 08
    56786167    mov AL, strict byte 001h                  ; b0 01
    56796168    mov dx, 00080h                            ; ba 80 00
    56806169    out DX, AL                                ; ee
    5681     jmp short 04b57h                          ; eb e9
     6170    jmp short 048c2h                          ; eb e9
    56826171    test bx, bx                               ; 85 db
    5683     jne short 04b78h                          ; 75 06
     6172    jne short 048e3h                          ; 75 06
    56846173    mov ax, strict word 00001h                ; b8 01 00
    5685     call 04b14h                               ; e8 9c ff
     6174    call 04882h                               ; e8 9f ff
    56866175    mov dx, strict word 00060h                ; ba 60 00
    56876176    in AL, DX                                 ; ec
     
    56896178    ; sub ah, ah                                ; 2a e4
    56906179    cmp ax, strict word 00055h                ; 3d 55 00
    5691     je short 04b89h                           ; 74 06
     6180    je short 048f4h                           ; 74 06
    56926181    mov ax, 003dfh                            ; b8 df 03
    5693     call 04b14h                               ; e8 8b ff
     6182    call 04882h                               ; e8 8e ff
    56946183    mov AL, strict byte 0abh                  ; b0 ab
    56956184    mov dx, strict word 00064h                ; ba 64 00
     
    57016190    ; sub ah, ah                                ; 2a e4
    57026191    test AL, strict byte 002h                 ; a8 02
    5703     je short 04ba9h                           ; 74 0d
     6192    je short 04914h                           ; 74 0d
    57046193    dec bx                                    ; 4b
    57056194    test bx, bx                               ; 85 db
    5706     jbe short 04ba9h                          ; 76 08
     6195    jbe short 04914h                          ; 76 08
    57076196    mov AL, strict byte 010h                  ; b0 10
    57086197    mov dx, 00080h                            ; ba 80 00
    57096198    out DX, AL                                ; ee
    5710     jmp short 04b92h                          ; eb e9
     6199    jmp short 048fdh                          ; eb e9
    57116200    test bx, bx                               ; 85 db
    5712     jne short 04bb3h                          ; 75 06
     6201    jne short 0491eh                          ; 75 06
    57136202    mov ax, strict word 0000ah                ; b8 0a 00
    5714     call 04b14h                               ; e8 61 ff
     6203    call 04882h                               ; e8 64 ff
    57156204    mov bx, strict word 0ffffh                ; bb ff ff
    57166205    mov dx, strict word 00064h                ; ba 64 00
     
    57196208    ; sub ah, ah                                ; 2a e4
    57206209    test AL, strict byte 001h                 ; a8 01
    5721     jne short 04bcdh                          ; 75 0d
     6210    jne short 04938h                          ; 75 0d
    57226211    dec bx                                    ; 4b
    57236212    test bx, bx                               ; 85 db
    5724     jbe short 04bcdh                          ; 76 08
     6213    jbe short 04938h                          ; 76 08
    57256214    mov AL, strict byte 011h                  ; b0 11
    57266215    mov dx, 00080h                            ; ba 80 00
    57276216    out DX, AL                                ; ee
    5728     jmp short 04bb6h                          ; eb e9
     6217    jmp short 04921h                          ; eb e9
    57296218    test bx, bx                               ; 85 db
    5730     jne short 04bd7h                          ; 75 06
     6219    jne short 04942h                          ; 75 06
    57316220    mov ax, strict word 0000bh                ; b8 0b 00
    5732     call 04b14h                               ; e8 3d ff
     6221    call 04882h                               ; e8 40 ff
    57336222    mov dx, strict word 00060h                ; ba 60 00
    57346223    in AL, DX                                 ; ec
     
    57366225    ; sub ah, ah                                ; 2a e4
    57376226    test ax, ax                               ; 85 c0
    5738     je short 04be7h                           ; 74 06
     6227    je short 04952h                           ; 74 06
    57396228    mov ax, 003e0h                            ; b8 e0 03
    5740     call 04b14h                               ; e8 2d ff
     6229    call 04882h                               ; e8 30 ff
    57416230    mov AL, strict byte 0ffh                  ; b0 ff
    57426231    mov dx, strict word 00060h                ; ba 60 00
     
    57486237    ; sub ah, ah                                ; 2a e4
    57496238    test AL, strict byte 002h                 ; a8 02
    5750     je short 04c07h                           ; 74 0d
     6239    je short 04972h                           ; 74 0d
    57516240    dec bx                                    ; 4b
    57526241    test bx, bx                               ; 85 db
    5753     jbe short 04c07h                          ; 76 08
     6242    jbe short 04972h                          ; 76 08
    57546243    mov AL, strict byte 020h                  ; b0 20
    57556244    mov dx, 00080h                            ; ba 80 00
    57566245    out DX, AL                                ; ee
    5757     jmp short 04bf0h                          ; eb e9
     6246    jmp short 0495bh                          ; eb e9
    57586247    test bx, bx                               ; 85 db
    5759     jne short 04c11h                          ; 75 06
     6248    jne short 0497ch                          ; 75 06
    57606249    mov ax, strict word 00014h                ; b8 14 00
    5761     call 04b14h                               ; e8 03 ff
     6250    call 04882h                               ; e8 06 ff
    57626251    mov bx, strict word 0ffffh                ; bb ff ff
    57636252    mov dx, strict word 00064h                ; ba 64 00
     
    57666255    ; sub ah, ah                                ; 2a e4
    57676256    test AL, strict byte 001h                 ; a8 01
    5768     jne short 04c2bh                          ; 75 0d
     6257    jne short 04996h                          ; 75 0d
    57696258    dec bx                                    ; 4b
    57706259    test bx, bx                               ; 85 db
    5771     jbe short 04c2bh                          ; 76 08
     6260    jbe short 04996h                          ; 76 08
    57726261    mov AL, strict byte 021h                  ; b0 21
    57736262    mov dx, 00080h                            ; ba 80 00
    57746263    out DX, AL                                ; ee
    5775     jmp short 04c14h                          ; eb e9
     6264    jmp short 0497fh                          ; eb e9
    57766265    test bx, bx                               ; 85 db
    5777     jne short 04c35h                          ; 75 06
     6266    jne short 049a0h                          ; 75 06
    57786267    mov ax, strict word 00015h                ; b8 15 00
    5779     call 04b14h                               ; e8 df fe
     6268    call 04882h                               ; e8 e2 fe
    57806269    mov dx, strict word 00060h                ; ba 60 00
    57816270    in AL, DX                                 ; ec
     
    57836272    ; sub ah, ah                                ; 2a e4
    57846273    cmp ax, 000fah                            ; 3d fa 00
    5785     je short 04c46h                           ; 74 06
     6274    je short 049b1h                           ; 74 06
    57866275    mov ax, 003e1h                            ; b8 e1 03
    5787     call 04b14h                               ; e8 ce fe
     6276    call 04882h                               ; e8 d1 fe
    57886277    mov bx, strict word 0ffffh                ; bb ff ff
    57896278    mov dx, strict word 00064h                ; ba 64 00
     
    57926281    ; sub ah, ah                                ; 2a e4
    57936282    test AL, strict byte 001h                 ; a8 01
    5794     jne short 04c60h                          ; 75 0d
     6283    jne short 049cbh                          ; 75 0d
    57956284    dec bx                                    ; 4b
    57966285    test bx, bx                               ; 85 db
    5797     jbe short 04c60h                          ; 76 08
     6286    jbe short 049cbh                          ; 76 08
    57986287    mov AL, strict byte 031h                  ; b0 31
    57996288    mov dx, 00080h                            ; ba 80 00
    58006289    out DX, AL                                ; ee
    5801     jmp short 04c49h                          ; eb e9
     6290    jmp short 049b4h                          ; eb e9
    58026291    test bx, bx                               ; 85 db
    5803     jne short 04c6ah                          ; 75 06
     6292    jne short 049d5h                          ; 75 06
    58046293    mov ax, strict word 0001fh                ; b8 1f 00
    5805     call 04b14h                               ; e8 aa fe
     6294    call 04882h                               ; e8 ad fe
    58066295    mov dx, strict word 00060h                ; ba 60 00
    58076296    in AL, DX                                 ; ec
     
    58096298    ; sub ah, ah                                ; 2a e4
    58106299    cmp ax, 000aah                            ; 3d aa 00
    5811     je short 04c83h                           ; 74 0e
     6300    je short 049eeh                           ; 74 0e
    58126301    in AL, DX                                 ; ec
    58136302    db  02ah, 0e4h
    58146303    ; sub ah, ah                                ; 2a e4
    58156304    cmp ax, 000aah                            ; 3d aa 00
    5816     je short 04c83h                           ; 74 06
     6305    je short 049eeh                           ; 74 06
    58176306    mov ax, 003e2h                            ; b8 e2 03
    5818     call 04b14h                               ; e8 91 fe
     6307    call 04882h                               ; e8 94 fe
    58196308    mov AL, strict byte 0f5h                  ; b0 f5
    58206309    mov dx, strict word 00060h                ; ba 60 00
     
    58266315    ; sub ah, ah                                ; 2a e4
    58276316    test AL, strict byte 002h                 ; a8 02
    5828     je short 04ca3h                           ; 74 0d
     6317    je short 04a0eh                           ; 74 0d
    58296318    dec bx                                    ; 4b
    58306319    test bx, bx                               ; 85 db
    5831     jbe short 04ca3h                          ; 76 08
     6320    jbe short 04a0eh                          ; 76 08
    58326321    mov AL, strict byte 040h                  ; b0 40
    58336322    mov dx, 00080h                            ; ba 80 00
    58346323    out DX, AL                                ; ee
    5835     jmp short 04c8ch                          ; eb e9
     6324    jmp short 049f7h                          ; eb e9
    58366325    test bx, bx                               ; 85 db
    5837     jne short 04cadh                          ; 75 06
     6326    jne short 04a18h                          ; 75 06
    58386327    mov ax, strict word 00028h                ; b8 28 00
    5839     call 04b14h                               ; e8 67 fe
     6328    call 04882h                               ; e8 6a fe
    58406329    mov bx, strict word 0ffffh                ; bb ff ff
    58416330    mov dx, strict word 00064h                ; ba 64 00
     
    58446333    ; sub ah, ah                                ; 2a e4
    58456334    test AL, strict byte 001h                 ; a8 01
    5846     jne short 04cc7h                          ; 75 0d
     6335    jne short 04a32h                          ; 75 0d
    58476336    dec bx                                    ; 4b
    58486337    test bx, bx                               ; 85 db
    5849     jbe short 04cc7h                          ; 76 08
     6338    jbe short 04a32h                          ; 76 08
    58506339    mov AL, strict byte 041h                  ; b0 41
    58516340    mov dx, 00080h                            ; ba 80 00
    58526341    out DX, AL                                ; ee
    5853     jmp short 04cb0h                          ; eb e9
     6342    jmp short 04a1bh                          ; eb e9
    58546343    test bx, bx                               ; 85 db
    5855     jne short 04cd1h                          ; 75 06
     6344    jne short 04a3ch                          ; 75 06
    58566345    mov ax, strict word 00029h                ; b8 29 00
    5857     call 04b14h                               ; e8 43 fe
     6346    call 04882h                               ; e8 46 fe
    58586347    mov dx, strict word 00060h                ; ba 60 00
    58596348    in AL, DX                                 ; ec
     
    58616350    ; sub ah, ah                                ; 2a e4
    58626351    cmp ax, 000fah                            ; 3d fa 00
    5863     je short 04ce2h                           ; 74 06
     6352    je short 04a4dh                           ; 74 06
    58646353    mov ax, 003e3h                            ; b8 e3 03
    5865     call 04b14h                               ; e8 32 fe
     6354    call 04882h                               ; e8 35 fe
    58666355    mov AL, strict byte 060h                  ; b0 60
    58676356    mov dx, strict word 00064h                ; ba 64 00
     
    58736362    ; sub ah, ah                                ; 2a e4
    58746363    test AL, strict byte 002h                 ; a8 02
    5875     je short 04d02h                           ; 74 0d
     6364    je short 04a6dh                           ; 74 0d
    58766365    dec bx                                    ; 4b
    58776366    test bx, bx                               ; 85 db
    5878     jbe short 04d02h                          ; 76 08
     6367    jbe short 04a6dh                          ; 76 08
    58796368    mov AL, strict byte 050h                  ; b0 50
    58806369    mov dx, 00080h                            ; ba 80 00
    58816370    out DX, AL                                ; ee
    5882     jmp short 04cebh                          ; eb e9
     6371    jmp short 04a56h                          ; eb e9
    58836372    test bx, bx                               ; 85 db
    5884     jne short 04d0ch                          ; 75 06
     6373    jne short 04a77h                          ; 75 06
    58856374    mov ax, strict word 00032h                ; b8 32 00
    5886     call 04b14h                               ; e8 08 fe
     6375    call 04882h                               ; e8 0b fe
    58876376    mov AL, strict byte 065h                  ; b0 65
    58886377    mov dx, strict word 00060h                ; ba 60 00
     
    58946383    ; sub ah, ah                                ; 2a e4
    58956384    test AL, strict byte 002h                 ; a8 02
    5896     je short 04d2ch                           ; 74 0d
     6385    je short 04a97h                           ; 74 0d
    58976386    dec bx                                    ; 4b
    58986387    test bx, bx                               ; 85 db
    5899     jbe short 04d2ch                          ; 76 08
     6388    jbe short 04a97h                          ; 76 08
    59006389    mov AL, strict byte 060h                  ; b0 60
    59016390    mov dx, 00080h                            ; ba 80 00
    59026391    out DX, AL                                ; ee
    5903     jmp short 04d15h                          ; eb e9
     6392    jmp short 04a80h                          ; eb e9
    59046393    test bx, bx                               ; 85 db
    5905     jne short 04d36h                          ; 75 06
     6394    jne short 04aa1h                          ; 75 06
    59066395    mov ax, strict word 0003ch                ; b8 3c 00
    5907     call 04b14h                               ; e8 de fd
     6396    call 04882h                               ; e8 e1 fd
    59086397    mov AL, strict byte 0f4h                  ; b0 f4
    59096398    mov dx, strict word 00060h                ; ba 60 00
     
    59156404    ; sub ah, ah                                ; 2a e4
    59166405    test AL, strict byte 002h                 ; a8 02
    5917     je short 04d56h                           ; 74 0d
     6406    je short 04ac1h                           ; 74 0d
    59186407    dec bx                                    ; 4b
    59196408    test bx, bx                               ; 85 db
    5920     jbe short 04d56h                          ; 76 08
     6409    jbe short 04ac1h                          ; 76 08
    59216410    mov AL, strict byte 070h                  ; b0 70
    59226411    mov dx, 00080h                            ; ba 80 00
    59236412    out DX, AL                                ; ee
    5924     jmp short 04d3fh                          ; eb e9
     6413    jmp short 04aaah                          ; eb e9
    59256414    test bx, bx                               ; 85 db
    5926     jne short 04d60h                          ; 75 06
     6415    jne short 04acbh                          ; 75 06
    59276416    mov ax, strict word 00046h                ; b8 46 00
    5928     call 04b14h                               ; e8 b4 fd
     6417    call 04882h                               ; e8 b7 fd
    59296418    mov bx, strict word 0ffffh                ; bb ff ff
    59306419    mov dx, strict word 00064h                ; ba 64 00
     
    59336422    ; sub ah, ah                                ; 2a e4
    59346423    test AL, strict byte 001h                 ; a8 01
    5935     jne short 04d7ah                          ; 75 0d
     6424    jne short 04ae5h                          ; 75 0d
    59366425    dec bx                                    ; 4b
    59376426    test bx, bx                               ; 85 db
    5938     jbe short 04d7ah                          ; 76 08
     6427    jbe short 04ae5h                          ; 76 08
    59396428    mov AL, strict byte 071h                  ; b0 71
    59406429    mov dx, 00080h                            ; ba 80 00
    59416430    out DX, AL                                ; ee
    5942     jmp short 04d63h                          ; eb e9
     6431    jmp short 04aceh                          ; eb e9
    59436432    test bx, bx                               ; 85 db
    5944     jne short 04d84h                          ; 75 06
     6433    jne short 04aefh                          ; 75 06
    59456434    mov ax, strict word 00046h                ; b8 46 00
    5946     call 04b14h                               ; e8 90 fd
     6435    call 04882h                               ; e8 93 fd
    59476436    mov dx, strict word 00060h                ; ba 60 00
    59486437    in AL, DX                                 ; ec
     
    59506439    ; sub ah, ah                                ; 2a e4
    59516440    cmp ax, 000fah                            ; 3d fa 00
    5952     je short 04d95h                           ; 74 06
     6441    je short 04b00h                           ; 74 06
    59536442    mov ax, 003e4h                            ; b8 e4 03
    5954     call 04b14h                               ; e8 7f fd
     6443    call 04882h                               ; e8 82 fd
    59556444    mov AL, strict byte 0a8h                  ; b0 a8
    59566445    mov dx, strict word 00064h                ; ba 64 00
    59576446    out DX, AL                                ; ee
    59586447    xor ax, ax                                ; 31 c0
    5959     call 06040h                               ; e8 a0 12
     6448    call 05cf1h                               ; e8 e6 11
    59606449    pop bp                                    ; 5d
    59616450    retn                                      ; c3
    5962 enqueue_key_:                                ; 0xf4da2 LB 0x97
     6451enqueue_key_:                                ; 0xf4b0d LB 0x90
    59636452    push bx                                   ; 53
    59646453    push cx                                   ; 51
    59656454    push si                                   ; 56
    59666455    push di                                   ; 57
    5967     push bp                                   ; 55
    5968     mov bp, sp                                ; 89 e5
    5969     push ax                                   ; 50
     6456    enter 00002h, 000h                        ; c8 02 00 00
    59706457    mov byte [bp-002h], al                    ; 88 46 fe
    59716458    mov bl, dl                                ; 88 d3
    59726459    mov dx, strict word 0001ah                ; ba 1a 00
    59736460    mov ax, strict word 00040h                ; b8 40 00
    5974     call 0161ch                               ; e8 64 c8
     6461    call 0161ch                               ; e8 f9 ca
    59756462    mov di, ax                                ; 89 c7
    59766463    mov dx, strict word 0001ch                ; ba 1c 00
    59776464    mov ax, strict word 00040h                ; b8 40 00
    5978     call 0161ch                               ; e8 59 c8
     6465    call 0161ch                               ; e8 ee ca
    59796466    mov si, ax                                ; 89 c6
    59806467    lea cx, [si+002h]                         ; 8d 4c 02
    59816468    cmp cx, strict byte 0003eh                ; 83 f9 3e
    5982     jc short 04dd0h                           ; 72 03
     6469    jc short 04b3bh                           ; 72 03
    59836470    mov cx, strict word 0001eh                ; b9 1e 00
    59846471    cmp cx, di                                ; 39 f9
    5985     jne short 04dd8h                          ; 75 04
     6472    jne short 04b43h                          ; 75 04
    59866473    xor ax, ax                                ; 31 c0
    5987     jmp short 04e02h                          ; eb 2a
    5988     mov al, bl                                ; 88 d8
    5989     xor ah, ah                                ; 30 e4
    5990     mov bx, ax                                ; 89 c3
     6474    jmp short 04b68h                          ; eb 25
     6475    xor bh, bh                                ; 30 ff
    59916476    mov dx, si                                ; 89 f2
    59926477    mov ax, strict word 00040h                ; b8 40 00
    5993     call 0160eh                               ; e8 28 c8
    5994     mov bl, byte [bp-002h]                    ; 8a 5e fe
    5995     xor bh, bh                                ; 30 ff
     6478    call 0160eh                               ; e8 c1 ca
     6479    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    59966480    lea dx, [si+001h]                         ; 8d 54 01
    59976481    mov ax, strict word 00040h                ; b8 40 00
    5998     call 0160eh                               ; e8 1a c8
     6482    call 0160eh                               ; e8 b4 ca
    59996483    mov bx, cx                                ; 89 cb
    60006484    mov dx, strict word 0001ch                ; ba 1c 00
    60016485    mov ax, strict word 00040h                ; b8 40 00
    6002     call 0162ah                               ; e8 2b c8
     6486    call 0162ah                               ; e8 c5 ca
    60036487    mov ax, strict word 00001h                ; b8 01 00
    6004     mov sp, bp                                ; 89 ec
    6005     pop bp                                    ; 5d
     6488    leave                                     ; c9
    60066489    pop di                                    ; 5f
    60076490    pop si                                    ; 5e
     
    60186501    cmp bh, byte [bx+si]                      ; 3a 38
    60196502    sub bl, byte [ss:di]                      ; 36 2a 1d
    6020     jnle short 04e6bh                         ; 7f 50
    6021     pop ES                                    ; 07
    6022     dec di                                    ; 4f
    6023     aam 04eh                                  ; d4 4e
    6024     aam 04eh                                  ; d4 4e
    6025     db  08fh, 04fh, 0abh
    6026     ; pop word [bx-055h]                        ; 8f 4f ab
    6027     dec si                                    ; 4e
    6028     add dx, word [bx+si+04fh]                 ; 03 50 4f
    6029     push ax                                   ; 50
    6030     jc short 04e7bh                           ; 72 50
    6031     dec bx                                    ; 4b
    6032     dec di                                    ; 4f
    6033     aam 04eh                                  ; d4 4e
    6034     aam 04eh                                  ; d4 4e
    6035     leave                                     ; c9
    6036     dec di                                    ; 4f
    6037     lds cx, [bp+032h]                         ; c5 4e 32
    6038     push ax                                   ; 50
    6039     db  06bh
    6040     push ax                                   ; 50
    6041 _int09_function:                             ; 0xf4e39 LB 0x3a2
     6503    aad 04dh                                  ; d5 4d
     6504    bound cx, [si+031h]                       ; 62 4c 31
     6505    dec sp                                    ; 4c
     6506    xor word [si-01ch], cx                    ; 31 4c e4
     6507    dec sp                                    ; 4c
     6508    or cl, byte [si+056h]                     ; 0a 4c 56
     6509    dec bp                                    ; 4d
     6510    movsw                                     ; a5
     6511    dec bp                                    ; 4d
     6512    enter 0a34dh, 04ch                        ; c8 4d a3 4c
     6513    xor word [si+031h], cx                    ; 31 4c 31
     6514    dec sp                                    ; 4c
     6515    sbb ax, 0234dh                            ; 1d 4d 23
     6516    dec sp                                    ; 4c
     6517    xchg byte [di-03fh], cl                   ; 86 4d c1
     6518    dec bp                                    ; 4d
     6519_int09_function:                             ; 0xf4b9d LB 0x358
    60426520    push si                                   ; 56
    60436521    push di                                   ; 57
    6044     push bp                                   ; 55
    6045     mov bp, sp                                ; 89 e5
    6046     sub sp, strict byte 0000eh                ; 83 ec 0e
     6522    enter 0000ch, 000h                        ; c8 0c 00 00
    60476523    mov al, byte [bp+018h]                    ; 8a 46 18
    6048     mov byte [bp-00ah], al                    ; 88 46 f6
     6524    mov byte [bp-006h], al                    ; 88 46 fa
    60496525    test al, al                               ; 84 c0
    6050     jne short 04e67h                          ; 75 1c
    6051     mov bx, 00c16h                            ; bb 16 0c
     6526    jne short 04bc6h                          ; 75 19
     6527    mov bx, 00c08h                            ; bb 08 0c
    60526528    mov cx, ds                                ; 8c d9
    60536529    mov ax, strict word 00004h                ; b8 04 00
    6054     call 018bdh                               ; e8 67 ca
    6055     mov ax, 004ddh                            ; b8 dd 04
    6056     push ax                                   ; 50
    6057     mov ax, strict word 00004h                ; b8 04 00
    6058     push ax                                   ; 50
    6059     call 018fah                               ; e8 99 ca
     6530    call 018aeh                               ; e8 f6 cc
     6531    push 004ddh                               ; 68 dd 04
     6532    push strict byte 00004h                   ; 6a 04
     6533    call 018e9h                               ; e8 29 cd
    60606534    add sp, strict byte 00004h                ; 83 c4 04
    6061     jmp near 051d5h                           ; e9 6e 03
     6535    jmp near 04ef1h                           ; e9 2b 03
    60626536    mov dx, strict word 00017h                ; ba 17 00
    60636537    mov ax, strict word 00040h                ; b8 40 00
    6064     call 01600h                               ; e8 90 c7
    6065     mov byte [bp-004h], al                    ; 88 46 fc
     6538    call 01600h                               ; e8 31 ca
     6539    mov byte [bp-00ah], al                    ; 88 46 f6
    60666540    mov bl, al                                ; 88 c3
    60676541    mov dx, strict word 00018h                ; ba 18 00
    60686542    mov ax, strict word 00040h                ; b8 40 00
    6069     call 01600h                               ; e8 82 c7
     6543    call 01600h                               ; e8 23 ca
     6544    mov byte [bp-00ch], al                    ; 88 46 f4
    60706545    mov byte [bp-008h], al                    ; 88 46 f8
    6071     mov byte [bp-006h], al                    ; 88 46 fa
    60726546    mov dx, 00096h                            ; ba 96 00
    60736547    mov ax, strict word 00040h                ; b8 40 00
    6074     call 01600h                               ; e8 73 c7
    6075     mov byte [bp-00eh], al                    ; 88 46 f2
     6548    call 01600h                               ; e8 14 ca
     6549    mov byte [bp-004h], al                    ; 88 46 fc
    60766550    mov byte [bp-002h], al                    ; 88 46 fe
    6077     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6551    mov al, byte [bp-006h]                    ; 8a 46 fa
    60786552    push CS                                   ; 0e
    60796553    pop ES                                    ; 07
    60806554    mov cx, strict word 00010h                ; b9 10 00
    6081     mov di, 04e0ah                            ; bf 0a 4e
     6555    mov di, 04b6eh                            ; bf 6e 4b
    60826556    repne scasb                               ; f2 ae
    60836557    sal cx, 1                                 ; d1 e1
    60846558    mov di, cx                                ; 89 cf
    6085     mov ax, word [cs:di+04e19h]               ; 2e 8b 85 19 4e
     6559    mov ax, word [cs:di+04b7dh]               ; 2e 8b 85 7d 4b
    60866560    jmp ax                                    ; ff e0
    60876561    xor bl, 040h                              ; 80 f3 40
     
    60896563    mov dx, strict word 00017h                ; ba 17 00
    60906564    mov ax, strict word 00040h                ; b8 40 00
    6091     call 0160eh                               ; e8 55 c7
    6092     or byte [bp-006h], 040h                   ; 80 4e fa 40
    6093     mov bl, byte [bp-006h]                    ; 8a 5e fa
    6094     xor bh, bh                                ; 30 ff
    6095     jmp near 05044h                           ; e9 7f 01
    6096     mov al, byte [bp-008h]                    ; 8a 46 f8
     6565    call 0160eh                               ; e8 f6 c9
     6566    or byte [bp-008h], 040h                   ; 80 4e f8 40
     6567    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     6568    jmp near 04d99h                           ; e9 76 01
     6569    mov al, byte [bp-00ch]                    ; 8a 46 f4
    60976570    and AL, strict byte 0bfh                  ; 24 bf
    6098     mov byte [bp-006h], al                    ; 88 46 fa
    6099     xor ah, ah                                ; 30 e4
    6100     mov bx, ax                                ; 89 c3
    6101     jmp near 05044h                           ; e9 70 01
     6571    mov byte [bp-008h], al                    ; 88 46 f8
     6572    movzx bx, al                              ; 0f b6 d8
     6573    jmp near 04d99h                           ; e9 68 01
    61026574    test byte [bp-002h], 002h                 ; f6 46 fe 02
    6103     jne short 04f04h                          ; 75 2a
    6104     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6575    jne near 04ed3h                           ; 0f 85 9a 02
     6576    mov al, byte [bp-006h]                    ; 8a 46 fa
    61056577    and AL, strict byte 07fh                  ; 24 7f
    61066578    cmp AL, strict byte 02ah                  ; 3c 2a
    6107     jne short 04ee8h                          ; 75 05
    6108     mov ax, strict word 00002h                ; b8 02 00
    6109     jmp short 04eebh                          ; eb 03
    6110     mov ax, strict word 00001h                ; b8 01 00
    6111     test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6112     je short 04ef7h                           ; 74 06
     6579    db  00fh, 094h, 0c0h
     6580    ; sete al                                   ; 0f 94 c0
     6581    xor ah, ah                                ; 30 e4
     6582    inc ax                                    ; 40
     6583    test byte [bp-006h], 080h                 ; f6 46 fa 80
     6584    je short 04c52h                           ; 74 06
    61136585    not al                                    ; f6 d0
    61146586    and bl, al                                ; 20 c3
    6115     jmp short 04ef9h                          ; eb 02
     6587    jmp short 04c54h                          ; eb 02
    61166588    or bl, al                                 ; 08 c3
    61176589    xor bh, bh                                ; 30 ff
    61186590    mov dx, strict word 00017h                ; ba 17 00
    61196591    mov ax, strict word 00040h                ; b8 40 00
    6120     call 0160eh                               ; e8 0a c7
    6121     jmp near 051b4h                           ; e9 ad 02
    6122     test byte [bp-00eh], 001h                 ; f6 46 f2 01
    6123     jne short 04f48h                          ; 75 3b
    6124     mov al, bl                                ; 88 d8
    6125     or AL, strict byte 004h                   ; 0c 04
    6126     xor ah, ah                                ; 30 e4
    6127     mov bx, ax                                ; 89 c3
     6592    call 0160eh                               ; e8 af c9
     6593    jmp near 04ed3h                           ; e9 71 02
     6594    test byte [bp-004h], 001h                 ; f6 46 fc 01
     6595    jne near 04ed3h                           ; 0f 85 69 02
     6596    or bl, 004h                               ; 80 cb 04
     6597    xor bh, bh                                ; 30 ff
    61286598    mov dx, strict word 00017h                ; ba 17 00
    61296599    mov ax, strict word 00040h                ; b8 40 00
    6130     call 0160eh                               ; e8 f0 c6
    6131     mov al, byte [bp-00eh]                    ; 8a 46 f2
     6600    call 0160eh                               ; e8 96 c9
     6601    mov al, byte [bp-004h]                    ; 8a 46 fc
    61326602    test AL, strict byte 002h                 ; a8 02
    6133     je short 04f33h                           ; 74 0e
     6603    je short 04c8ch                           ; 74 0d
    61346604    or AL, strict byte 004h                   ; 0c 04
    61356605    mov byte [bp-002h], al                    ; 88 46 fe
    6136     mov bl, al                                ; 88 c3
     6606    movzx bx, al                              ; 0f b6 d8
     6607    mov dx, 00096h                            ; ba 96 00
     6608    jmp short 04c9ah                          ; eb 0e
     6609    mov al, byte [bp-00ch]                    ; 8a 46 f4
     6610    or AL, strict byte 001h                   ; 0c 01
     6611    mov byte [bp-008h], al                    ; 88 46 f8
     6612    movzx bx, al                              ; 0f b6 d8
     6613    mov dx, strict word 00018h                ; ba 18 00
     6614    mov ax, strict word 00040h                ; b8 40 00
     6615    call 0160eh                               ; e8 6e c9
     6616    jmp near 04ed3h                           ; e9 30 02
     6617    test byte [bp-004h], 001h                 ; f6 46 fc 01
     6618    jne near 04ed3h                           ; 0f 85 28 02
     6619    and bl, 0fbh                              ; 80 e3 fb
    61376620    xor bh, bh                                ; 30 ff
    6138     mov dx, 00096h                            ; ba 96 00
    6139     jmp short 04f42h                          ; eb 0f
    6140     mov al, byte [bp-008h]                    ; 8a 46 f8
    6141     or AL, strict byte 001h                   ; 0c 01
    6142     mov byte [bp-006h], al                    ; 88 46 fa
    6143     xor ah, ah                                ; 30 e4
    6144     mov bx, ax                                ; 89 c3
    6145     mov dx, strict word 00018h                ; ba 18 00
    6146     mov ax, strict word 00040h                ; b8 40 00
    6147     call 0160eh                               ; e8 c6 c6
    6148     jmp near 051b4h                           ; e9 69 02
    6149     test byte [bp-00eh], 001h                 ; f6 46 f2 01
    6150     jne short 04f8ch                          ; 75 3b
    6151     mov al, bl                                ; 88 d8
    6152     and AL, strict byte 0fbh                  ; 24 fb
    6153     xor ah, ah                                ; 30 e4
    6154     mov bx, ax                                ; 89 c3
    61556621    mov dx, strict word 00017h                ; ba 17 00
    61566622    mov ax, strict word 00040h                ; b8 40 00
    6157     call 0160eh                               ; e8 ac c6
    6158     mov al, byte [bp-00eh]                    ; 8a 46 f2
     6623    call 0160eh                               ; e8 55 c9
     6624    mov al, byte [bp-004h]                    ; 8a 46 fc
    61596625    test AL, strict byte 002h                 ; a8 02
    6160     je short 04f77h                           ; 74 0e
     6626    je short 04ccdh                           ; 74 0d
    61616627    and AL, strict byte 0fbh                  ; 24 fb
    61626628    mov byte [bp-002h], al                    ; 88 46 fe
    6163     xor ah, ah                                ; 30 e4
    6164     mov bx, ax                                ; 89 c3
     6629    movzx bx, al                              ; 0f b6 d8
    61656630    mov dx, 00096h                            ; ba 96 00
    6166     jmp short 04f86h                          ; eb 0f
    6167     mov al, byte [bp-008h]                    ; 8a 46 f8
     6631    jmp short 04cdbh                          ; eb 0e
     6632    mov al, byte [bp-00ch]                    ; 8a 46 f4
    61686633    and AL, strict byte 0feh                  ; 24 fe
    6169     mov byte [bp-006h], al                    ; 88 46 fa
    6170     xor ah, ah                                ; 30 e4
    6171     mov bx, ax                                ; 89 c3
     6634    mov byte [bp-008h], al                    ; 88 46 f8
     6635    movzx bx, al                              ; 0f b6 d8
    61726636    mov dx, strict word 00018h                ; ba 18 00
    61736637    mov ax, strict word 00040h                ; b8 40 00
    6174     call 0160eh                               ; e8 82 c6
    6175     jmp near 051b4h                           ; e9 25 02
     6638    call 0160eh                               ; e8 2d c9
     6639    jmp near 04ed3h                           ; e9 ef 01
    61766640    or bl, 008h                               ; 80 cb 08
    61776641    xor bh, bh                                ; 30 ff
    61786642    mov dx, strict word 00017h                ; ba 17 00
    61796643    mov ax, strict word 00040h                ; b8 40 00
    6180     call 0160eh                               ; e8 71 c6
    6181     mov al, byte [bp-00eh]                    ; 8a 46 f2
     6644    call 0160eh                               ; e8 1c c9
     6645    mov al, byte [bp-004h]                    ; 8a 46 fc
    61826646    test AL, strict byte 002h                 ; a8 02
    6183     je short 04fb2h                           ; 74 0e
     6647    je short 04d06h                           ; 74 0d
    61846648    or AL, strict byte 008h                   ; 0c 08
    61856649    mov byte [bp-002h], al                    ; 88 46 fe
    6186     xor ah, ah                                ; 30 e4
    6187     mov bx, ax                                ; 89 c3
     6650    movzx bx, al                              ; 0f b6 d8
    61886651    mov dx, 00096h                            ; ba 96 00
    6189     jmp short 04fc1h                          ; eb 0f
    6190     mov al, byte [bp-008h]                    ; 8a 46 f8
     6652    jmp short 04d14h                          ; eb 0e
     6653    mov al, byte [bp-00ch]                    ; 8a 46 f4
    61916654    or AL, strict byte 002h                   ; 0c 02
    6192     mov byte [bp-006h], al                    ; 88 46 fa
    6193     mov bl, al                                ; 88 c3
    6194     xor bh, bh                                ; 30 ff
     6655    mov byte [bp-008h], al                    ; 88 46 f8
     6656    movzx bx, al                              ; 0f b6 d8
    61956657    mov dx, strict word 00018h                ; ba 18 00
    61966658    mov ax, strict word 00040h                ; b8 40 00
    6197     call 0160eh                               ; e8 47 c6
    6198     jmp short 04f8ch                          ; eb c3
     6659    call 0160eh                               ; e8 f4 c8
     6660    jmp near 04ed3h                           ; e9 b6 01
    61996661    and bl, 0f7h                              ; 80 e3 f7
    62006662    xor bh, bh                                ; 30 ff
    62016663    mov dx, strict word 00017h                ; ba 17 00
    62026664    mov ax, strict word 00040h                ; b8 40 00
    6203     call 0160eh                               ; e8 37 c6
    6204     mov al, byte [bp-00eh]                    ; 8a 46 f2
     6665    call 0160eh                               ; e8 e3 c8
     6666    mov al, byte [bp-004h]                    ; 8a 46 fc
    62056667    test AL, strict byte 002h                 ; a8 02
    6206     je short 04fech                           ; 74 0e
     6668    je short 04d3fh                           ; 74 0d
    62076669    and AL, strict byte 0f7h                  ; 24 f7
    62086670    mov byte [bp-002h], al                    ; 88 46 fe
    6209     xor ah, ah                                ; 30 e4
    6210     mov bx, ax                                ; 89 c3
     6671    movzx bx, al                              ; 0f b6 d8
    62116672    mov dx, 00096h                            ; ba 96 00
    6212     jmp short 04ffbh                          ; eb 0f
    6213     mov al, byte [bp-008h]                    ; 8a 46 f8
     6673    jmp short 04d4dh                          ; eb 0e
     6674    mov al, byte [bp-00ch]                    ; 8a 46 f4
    62146675    and AL, strict byte 0fdh                  ; 24 fd
    6215     mov byte [bp-006h], al                    ; 88 46 fa
    6216     xor ah, ah                                ; 30 e4
    6217     mov bx, ax                                ; 89 c3
     6676    mov byte [bp-008h], al                    ; 88 46 f8
     6677    movzx bx, al                              ; 0f b6 d8
    62186678    mov dx, strict word 00018h                ; ba 18 00
    62196679    mov ax, strict word 00040h                ; b8 40 00
    6220     call 0160eh                               ; e8 0d c6
    6221     jmp short 04f8ch                          ; eb 89
    6222     test byte [bp-00eh], 003h                 ; f6 46 f2 03
    6223     jne short 0504dh                          ; 75 44
    6224     mov al, byte [bp-008h]                    ; 8a 46 f8
     6680    call 0160eh                               ; e8 bb c8
     6681    jmp near 04ed3h                           ; e9 7d 01
     6682    test byte [bp-004h], 003h                 ; f6 46 fc 03
     6683    jne near 04ed3h                           ; 0f 85 75 01
     6684    mov al, byte [bp-00ch]                    ; 8a 46 f4
    62256685    or AL, strict byte 020h                   ; 0c 20
    6226     mov byte [bp-006h], al                    ; 88 46 fa
    6227     xor ah, ah                                ; 30 e4
    6228     mov bx, ax                                ; 89 c3
     6686    mov byte [bp-008h], al                    ; 88 46 f8
     6687    movzx bx, al                              ; 0f b6 d8
    62296688    mov dx, strict word 00018h                ; ba 18 00
    62306689    mov ax, strict word 00040h                ; b8 40 00
    6231     call 0160eh                               ; e8 f0 c5
    6232     mov al, byte [bp-004h]                    ; 8a 46 fc
    6233     xor AL, strict byte 020h                  ; 34 20
    6234     xor ah, ah                                ; 30 e4
    6235     mov bx, ax                                ; 89 c3
     6690    call 0160eh                               ; e8 9c c8
     6691    mov bl, byte [bp-00ah]                    ; 8a 5e f6
     6692    xor bl, 020h                              ; 80 f3 20
     6693    xor bh, bh                                ; 30 ff
    62366694    mov dx, strict word 00017h                ; ba 17 00
    62376695    mov ax, strict word 00040h                ; b8 40 00
    6238     call 0160eh                               ; e8 de c5
    6239     jmp short 0504dh                          ; eb 1b
    6240     test byte [bp-00eh], 003h                 ; f6 46 f2 03
    6241     jne short 05085h                          ; 75 4d
    6242     mov al, byte [bp-008h]                    ; 8a 46 f8
     6696    call 0160eh                               ; e8 8b c8
     6697    jmp near 04ed3h                           ; e9 4d 01
     6698    test byte [bp-004h], 003h                 ; f6 46 fc 03
     6699    jne near 04ed3h                           ; 0f 85 45 01
     6700    mov al, byte [bp-00ch]                    ; 8a 46 f4
    62436701    and AL, strict byte 0dfh                  ; 24 df
    6244     mov byte [bp-006h], al                    ; 88 46 fa
    6245     xor ah, ah                                ; 30 e4
    6246     mov bx, ax                                ; 89 c3
     6702    mov byte [bp-008h], al                    ; 88 46 f8
     6703    movzx bx, al                              ; 0f b6 d8
    62476704    mov dx, strict word 00018h                ; ba 18 00
    62486705    mov ax, strict word 00040h                ; b8 40 00
    6249     call 0160eh                               ; e8 c1 c5
    6250     jmp short 05085h                          ; eb 36
    6251     mov al, byte [bp-008h]                    ; 8a 46 f8
     6706    call 0160eh                               ; e8 6c c8
     6707    jmp near 04ed3h                           ; e9 2e 01
     6708    mov al, byte [bp-00ch]                    ; 8a 46 f4
    62526709    or AL, strict byte 010h                   ; 0c 10
    6253     mov byte [bp-006h], al                    ; 88 46 fa
    6254     xor ah, ah                                ; 30 e4
    6255     mov bx, ax                                ; 89 c3
     6710    mov byte [bp-008h], al                    ; 88 46 f8
     6711    movzx bx, al                              ; 0f b6 d8
    62566712    mov dx, strict word 00018h                ; ba 18 00
    62576713    mov ax, strict word 00040h                ; b8 40 00
    6258     call 0160eh                               ; e8 aa c5
    6259     mov al, byte [bp-004h]                    ; 8a 46 fc
    6260     xor AL, strict byte 010h                  ; 34 10
    6261     jmp short 05023h                          ; eb b8
    6262     mov al, byte [bp-008h]                    ; 8a 46 f8
     6714    call 0160eh                               ; e8 55 c8
     6715    mov bl, byte [bp-00ah]                    ; 8a 5e f6
     6716    xor bl, 010h                              ; 80 f3 10
     6717    jmp short 04d78h                          ; eb b7
     6718    mov al, byte [bp-00ch]                    ; 8a 46 f4
    62636719    and AL, strict byte 0efh                  ; 24 ef
    6264     jmp short 0503dh                          ; eb cb
     6720    jmp short 04d93h                          ; eb cb
    62656721    mov al, bl                                ; 88 d8
    62666722    and AL, strict byte 00ch                  ; 24 0c
    62676723    cmp AL, strict byte 00ch                  ; 3c 0c
    6268     jne short 0507fh                          ; 75 05
     6724    jne short 04dd5h                          ; 75 05
    62696725    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    6270     test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6271     je short 05088h                           ; 74 03
    6272     jmp near 051b4h                           ; e9 2c 01
    6273     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    6274     jbe short 050b0h                          ; 76 22
    6275     mov bx, 00c16h                            ; bb 16 0c
     6726    test byte [bp-006h], 080h                 ; f6 46 fa 80
     6727    jne near 04ed3h                           ; 0f 85 f6 00
     6728    cmp byte [bp-006h], 058h                  ; 80 7e fa 58
     6729    jbe short 04e01h                          ; 76 1e
     6730    mov bx, 00c08h                            ; bb 08 0c
    62766731    mov cx, ds                                ; 8c d9
    62776732    mov ax, strict word 00004h                ; b8 04 00
    6278     call 018bdh                               ; e8 24 c8
    6279     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6280     xor ah, ah                                ; 30 e4
     6733    call 018aeh                               ; e8 c0 ca
     6734    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    62816735    push ax                                   ; 50
    6282     mov ax, 004f7h                            ; b8 f7 04
    6283     push ax                                   ; 50
    6284     mov ax, strict word 00004h                ; b8 04 00
    6285     push ax                                   ; 50
    6286     call 018fah                               ; e8 50 c8
     6736    push 004f7h                               ; 68 f7 04
     6737    push strict byte 00004h                   ; 6a 04
     6738    call 018e9h                               ; e8 ee ca
    62876739    add sp, strict byte 00006h                ; 83 c4 06
    6288     jmp near 051d5h                           ; e9 25 01
     6740    jmp near 04ef1h                           ; e9 f0 00
    62896741    test bl, 008h                             ; f6 c3 08
    6290     je short 050cfh                           ; 74 1a
    6291     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6292     xor ah, ah                                ; 30 e4
    6293     mov dx, strict word 0000ah                ; ba 0a 00
    6294     imul dx                                   ; f7 ea
    6295     mov si, ax                                ; 89 c6
    6296     mov al, byte [si+00c6ah]                  ; 8a 84 6a 0c
    6297     mov byte [bp-00ch], al                    ; 88 46 f4
    6298     mov al, byte [si+00c6bh]                  ; 8a 84 6b 0c
    6299     jmp near 0517fh                           ; e9 b0 00
     6742    je short 04e18h                           ; 74 12
     6743    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6744    imul si, si, strict byte 0000ah           ; 6b f6 0a
     6745    mov dl, byte [si+00c5ch]                  ; 8a 94 5c 0c
     6746    mov ax, word [si+00c5ch]                  ; 8b 84 5c 0c
     6747    jmp near 04ea4h                           ; e9 8c 00
    63006748    test bl, 004h                             ; f6 c3 04
    6301     je short 050eeh                           ; 74 1a
    6302     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6303     xor ah, ah                                ; 30 e4
    6304     mov dx, strict word 0000ah                ; ba 0a 00
    6305     imul dx                                   ; f7 ea
    6306     mov si, ax                                ; 89 c6
    6307     mov al, byte [si+00c68h]                  ; 8a 84 68 0c
    6308     mov byte [bp-00ch], al                    ; 88 46 f4
    6309     mov al, byte [si+00c69h]                  ; 8a 84 69 0c
    6310     jmp near 0517fh                           ; e9 91 00
     6749    je short 04e2fh                           ; 74 12
     6750    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6751    imul si, si, strict byte 0000ah           ; 6b f6 0a
     6752    mov dl, byte [si+00c5ah]                  ; 8a 94 5a 0c
     6753    mov ax, word [si+00c5ah]                  ; 8b 84 5a 0c
     6754    jmp near 04ea4h                           ; e9 75 00
    63116755    mov al, byte [bp-002h]                    ; 8a 46 fe
    63126756    and AL, strict byte 002h                  ; 24 02
    63136757    test al, al                               ; 84 c0
    6314     jbe short 05111h                          ; 76 1a
    6315     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6758    jbe short 04e4dh                          ; 76 15
     6759    mov al, byte [bp-006h]                    ; 8a 46 fa
    63166760    cmp AL, strict byte 047h                  ; 3c 47
    6317     jc short 05111h                           ; 72 13
     6761    jc short 04e4dh                           ; 72 0e
    63186762    cmp AL, strict byte 053h                  ; 3c 53
    6319     jnbe short 05111h                         ; 77 0f
    6320     mov byte [bp-00ch], 0e0h                  ; c6 46 f4 e0
    6321     xor ah, ah                                ; 30 e4
    6322     mov dx, strict word 0000ah                ; ba 0a 00
    6323     imul dx                                   ; f7 ea
    6324     mov si, ax                                ; 89 c6
    6325     jmp short 0517bh                          ; eb 6a
     6763    jnbe short 04e4dh                         ; 77 0a
     6764    mov DL, strict byte 0e0h                  ; b2 e0
     6765    movzx si, al                              ; 0f b6 f0
     6766    imul si, si, strict byte 0000ah           ; 6b f6 0a
     6767    jmp short 04ea0h                          ; eb 53
    63266768    test bl, 003h                             ; f6 c3 03
    6327     je short 0514dh                           ; 74 37
    6328     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6329     xor ah, ah                                ; 30 e4
    6330     mov dx, strict word 0000ah                ; ba 0a 00
    6331     imul dx                                   ; f7 ea
    6332     mov si, ax                                ; 89 c6
    6333     mov al, byte [si+00c6ch]                  ; 8a 84 6c 0c
    6334     xor ah, ah                                ; 30 e4
    6335     mov dx, ax                                ; 89 c2
    6336     mov al, bl                                ; 88 d8
    6337     test ax, dx                               ; 85 d0
    6338     je short 0513dh                           ; 74 0d
    6339     mov al, byte [si+00c64h]                  ; 8a 84 64 0c
    6340     mov byte [bp-00ch], al                    ; 88 46 f4
    6341     mov al, byte [si+00c65h]                  ; 8a 84 65 0c
    6342     jmp short 05148h                          ; eb 0b
    6343     mov al, byte [si+00c66h]                  ; 8a 84 66 0c
    6344     mov byte [bp-00ch], al                    ; 88 46 f4
    6345     mov al, byte [si+00c67h]                  ; 8a 84 67 0c
    6346     mov byte [bp-00ah], al                    ; 88 46 f6
    6347     jmp short 05182h                          ; eb 35
    6348     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6349     xor ah, ah                                ; 30 e4
    6350     mov dx, strict word 0000ah                ; ba 0a 00
    6351     imul dx                                   ; f7 ea
    6352     mov si, ax                                ; 89 c6
    6353     mov al, byte [si+00c6ch]                  ; 8a 84 6c 0c
    6354     xor ah, ah                                ; 30 e4
    6355     mov dx, ax                                ; 89 c2
    6356     mov al, bl                                ; 88 d8
    6357     test ax, dx                               ; 85 d0
    6358     je short 05174h                           ; 74 0d
    6359     mov al, byte [si+00c66h]                  ; 8a 84 66 0c
    6360     mov byte [bp-00ch], al                    ; 88 46 f4
    6361     mov al, byte [si+00c67h]                  ; 8a 84 67 0c
    6362     jmp short 0517fh                          ; eb 0b
    6363     mov al, byte [si+00c64h]                  ; 8a 84 64 0c
    6364     mov byte [bp-00ch], al                    ; 88 46 f4
    6365     mov al, byte [si+00c65h]                  ; 8a 84 65 0c
    6366     mov byte [bp-00ah], al                    ; 88 46 f6
    6367     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6368     jne short 051a7h                          ; 75 1f
    6369     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6370     jne short 051a7h                          ; 75 19
    6371     mov bx, 00c16h                            ; bb 16 0c
     6769    je short 04e7fh                           ; 74 2d
     6770    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6771    imul si, si, strict byte 0000ah           ; 6b f6 0a
     6772    movzx ax, byte [si+00c5eh]                ; 0f b6 84 5e 0c
     6773    movzx dx, bl                              ; 0f b6 d3
     6774    test dx, ax                               ; 85 c2
     6775    je short 04e6fh                           ; 74 0a
     6776    mov dl, byte [si+00c56h]                  ; 8a 94 56 0c
     6777    mov ax, word [si+00c56h]                  ; 8b 84 56 0c
     6778    jmp short 04e77h                          ; eb 08
     6779    mov dl, byte [si+00c58h]                  ; 8a 94 58 0c
     6780    mov ax, word [si+00c58h]                  ; 8b 84 58 0c
     6781    shr ax, 008h                              ; c1 e8 08
     6782    mov byte [bp-006h], al                    ; 88 46 fa
     6783    jmp short 04eaah                          ; eb 2b
     6784    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6785    imul si, si, strict byte 0000ah           ; 6b f6 0a
     6786    movzx ax, byte [si+00c5eh]                ; 0f b6 84 5e 0c
     6787    movzx dx, bl                              ; 0f b6 d3
     6788    test dx, ax                               ; 85 c2
     6789    je short 04e9ch                           ; 74 0a
     6790    mov dl, byte [si+00c58h]                  ; 8a 94 58 0c
     6791    mov ax, word [si+00c58h]                  ; 8b 84 58 0c
     6792    jmp short 04ea4h                          ; eb 08
     6793    mov dl, byte [si+00c56h]                  ; 8a 94 56 0c
     6794    mov ax, word [si+00c56h]                  ; 8b 84 56 0c
     6795    shr ax, 008h                              ; c1 e8 08
     6796    mov byte [bp-006h], al                    ; 88 46 fa
     6797    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     6798    jne short 04ecah                          ; 75 1a
     6799    test dl, dl                               ; 84 d2
     6800    jne short 04ecah                          ; 75 16
     6801    mov bx, 00c08h                            ; bb 08 0c
    63726802    mov cx, ds                                ; 8c d9
    63736803    mov ax, strict word 00004h                ; b8 04 00
    6374     call 018bdh                               ; e8 24 c7
    6375     mov ax, 0052eh                            ; b8 2e 05
    6376     push ax                                   ; 50
    6377     mov ax, strict word 00004h                ; b8 04 00
    6378     push ax                                   ; 50
    6379     call 018fah                               ; e8 56 c7
     6804    call 018aeh                               ; e8 ef c9
     6805    push 0052eh                               ; 68 2e 05
     6806    push strict byte 00004h                   ; 6a 04
     6807    call 018e9h                               ; e8 22 ca
    63806808    add sp, strict byte 00004h                ; 83 c4 04
    6381     mov al, byte [bp-00ch]                    ; 8a 46 f4
    6382     xor ah, ah                                ; 30 e4
    6383     mov dx, ax                                ; 89 c2
    6384     mov al, byte [bp-00ah]                    ; 8a 46 f6
    6385     call 04da2h                               ; e8 ee fb
    6386     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6809    xor dh, dh                                ; 30 f6
     6810    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6811    call 04b0dh                               ; e8 3a fc
     6812    mov al, byte [bp-006h]                    ; 8a 46 fa
    63876813    and AL, strict byte 07fh                  ; 24 7f
    63886814    cmp AL, strict byte 01dh                  ; 3c 1d
    6389     je short 051c1h                           ; 74 04
     6815    je short 04ee0h                           ; 74 04
    63906816    and byte [bp-002h], 0feh                  ; 80 66 fe fe
    63916817    and byte [bp-002h], 0fdh                  ; 80 66 fe fd
    6392     mov al, byte [bp-002h]                    ; 8a 46 fe
    6393     xor ah, ah                                ; 30 e4
    6394     mov bx, ax                                ; 89 c3
     6818    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    63956819    mov dx, 00096h                            ; ba 96 00
    63966820    mov ax, strict word 00040h                ; b8 40 00
    6397     call 0160eh                               ; e8 39 c4
    6398     mov sp, bp                                ; 89 ec
    6399     pop bp                                    ; 5d
     6821    call 0160eh                               ; e8 1d c7
     6822    leave                                     ; c9
    64006823    pop di                                    ; 5f
    64016824    pop si                                    ; 5e
    64026825    retn                                      ; c3
    6403 dequeue_key_:                                ; 0xf51db LB 0x93
     6826dequeue_key_:                                ; 0xf4ef5 LB 0x90
    64046827    push si                                   ; 56
    64056828    push di                                   ; 57
    6406     push bp                                   ; 55
    6407     mov bp, sp                                ; 89 e5
    6408     push ax                                   ; 50
    6409     push ax                                   ; 50
     6829    enter 00004h, 000h                        ; c8 04 00 00
    64106830    mov di, ax                                ; 89 c7
    64116831    mov word [bp-002h], dx                    ; 89 56 fe
     
    64146834    mov dx, strict word 0001ah                ; ba 1a 00
    64156835    mov ax, strict word 00040h                ; b8 40 00
    6416     call 0161ch                               ; e8 27 c4
     6836    call 0161ch                               ; e8 0e c7
    64176837    mov bx, ax                                ; 89 c3
    64186838    mov dx, strict word 0001ch                ; ba 1c 00
    64196839    mov ax, strict word 00040h                ; b8 40 00
    6420     call 0161ch                               ; e8 1c c4
     6840    call 0161ch                               ; e8 03 c7
    64216841    cmp bx, ax                                ; 39 c3
    6422     je short 05241h                           ; 74 3d
     6842    je short 04f5ah                           ; 74 3d
    64236843    mov dx, bx                                ; 89 da
    64246844    mov ax, strict word 00040h                ; b8 40 00
    6425     call 01600h                               ; e8 f4 c3
     6845    call 01600h                               ; e8 db c6
    64266846    mov cl, al                                ; 88 c1
    64276847    lea dx, [bx+001h]                         ; 8d 57 01
    64286848    mov ax, strict word 00040h                ; b8 40 00
    6429     call 01600h                               ; e8 e9 c3
     6849    call 01600h                               ; e8 d0 c6
    64306850    mov es, [bp-004h]                         ; 8e 46 fc
    64316851    mov byte [es:si], cl                      ; 26 88 0c
     
    64336853    mov byte [es:di], al                      ; 26 88 05
    64346854    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    6435     je short 0523ch                           ; 74 13
     6855    je short 04f55h                           ; 74 13
    64366856    inc bx                                    ; 43
    64376857    inc bx                                    ; 43
    64386858    cmp bx, strict byte 0003eh                ; 83 fb 3e
    6439     jc short 05233h                           ; 72 03
     6859    jc short 04f4ch                           ; 72 03
    64406860    mov bx, strict word 0001eh                ; bb 1e 00
    64416861    mov dx, strict word 0001ah                ; ba 1a 00
    64426862    mov ax, strict word 00040h                ; b8 40 00
    6443     call 0162ah                               ; e8 ee c3
     6863    call 0162ah                               ; e8 d5 c6
    64446864    mov ax, strict word 00001h                ; b8 01 00
    6445     jmp short 05243h                          ; eb 02
     6865    jmp short 04f5ch                          ; eb 02
    64466866    xor ax, ax                                ; 31 c0
    6447     mov sp, bp                                ; 89 ec
    6448     pop bp                                    ; 5d
     6867    leave                                     ; c9
    64496868    pop di                                    ; 5f
    64506869    pop si                                    ; 5e
     
    64546873    or cl, byte [bx+di]                       ; 0a 09
    64556874    add ax, 00102h                            ; 05 02 01
    6456     add byte [si+053h], dh                    ; 00 74 53
    6457     das                                       ; 2f
    6458     push bx                                   ; 53
    6459     retn                                      ; c3
    6460     push bx                                   ; 53
    6461     pop ES                                    ; 07
    6462     push sp                                   ; 54
    6463     sbb dl, byte [si+041h]                    ; 1a 54 41
    6464     push sp                                   ; 54
    6465     dec bx                                    ; 4b
    6466     push sp                                   ; 54
    6467     mov dx, 0f154h                            ; ba 54 f1
    6468     push sp                                   ; 54
    6469     and word [di+058h], dx                    ; 21 55 58
    6470     push bp                                   ; 55
    6471     db  0beh
    6472     push bx                                   ; 53
    6473 _int16_function:                             ; 0xf526e LB 0x327
     6875    add byte [bx+di], ah                      ; 00 21
     6876    push dx                                   ; 52
     6877    aaa                                       ; 37
     6878    push ax                                   ; 50
     6879    jle short 04fc3h                          ; 7e 50
     6880    retf 0da50h                               ; ca 50 da
     6881    push ax                                   ; 50
     6882    add AL, strict byte 051h                  ; 04 51
     6883    or ax, 07e51h                             ; 0d 51 7e
     6884    push cx                                   ; 51
     6885    scasw                                     ; af
     6886    push cx                                   ; 51
     6887    fcom qword [bx+di+016h]                   ; dc 51 16
     6888    push dx                                   ; 52
     6889    db  064h, 052h
     6890    ; fs push dx                                ; 64 52
     6891_int16_function:                             ; 0xf4f85 LB 0x314
    64746892    push di                                   ; 57
    6475     push bp                                   ; 55
    6476     mov bp, sp                                ; 89 e5
    6477     sub sp, strict byte 00006h                ; 83 ec 06
     6893    enter 00006h, 000h                        ; c8 06 00 00
    64786894    mov dx, strict word 00017h                ; ba 17 00
    64796895    mov ax, strict word 00040h                ; b8 40 00
    6480     call 01600h                               ; e8 82 c3
     6896    call 01600h                               ; e8 6d c6
    64816897    mov cl, al                                ; 88 c1
    64826898    mov bh, al                                ; 88 c7
    64836899    mov dx, 00097h                            ; ba 97 00
    64846900    mov ax, strict word 00040h                ; b8 40 00
    6485     call 01600h                               ; e8 75 c3
     6901    call 01600h                               ; e8 60 c6
    64866902    mov bl, al                                ; 88 c3
    6487     mov dl, cl                                ; 88 ca
    6488     xor dh, dh                                ; 30 f6
    6489     mov CL, strict byte 004h                  ; b1 04
    6490     sar dx, CL                                ; d3 fa
     6903    movzx dx, cl                              ; 0f b6 d1
     6904    sar dx, 004h                              ; c1 fa 04
    64916905    and dl, 007h                              ; 80 e2 07
    64926906    and AL, strict byte 007h                  ; 24 07
     
    64946908    xor al, dl                                ; 30 d0
    64956909    test ax, ax                               ; 85 c0
    6496     je short 0530eh                           ; 74 6c
     6910    je short 05015h                           ; 74 60
    64976911    cli                                       ; fa
    64986912    mov AL, strict byte 0edh                  ; b0 ed
     
    65046918    ; sub ah, ah                                ; 2a e4
    65056919    test AL, strict byte 001h                 ; a8 01
    6506     jne short 052bbh                          ; 75 08
     6920    jne short 04fceh                          ; 75 08
    65076921    mov AL, strict byte 021h                  ; b0 21
    65086922    mov dx, 00080h                            ; ba 80 00
    65096923    out DX, AL                                ; ee
    6510     jmp short 052a9h                          ; eb ee
     6924    jmp short 04fbch                          ; eb ee
    65116925    mov dx, strict word 00060h                ; ba 60 00
    65126926    in AL, DX                                 ; ec
     
    65146928    ; sub ah, ah                                ; 2a e4
    65156929    cmp ax, 000fah                            ; 3d fa 00
    6516     jne short 0530dh                          ; 75 47
     6930    jne short 05014h                          ; 75 3b
    65176931    and bl, 0f8h                              ; 80 e3 f8
    6518     mov al, bh                                ; 88 f8
    6519     xor ah, ah                                ; 30 e4
    6520     mov CL, strict byte 004h                  ; b1 04
    6521     sar ax, CL                                ; d3 f8
    6522     mov cx, ax                                ; 89 c1
    6523     xor ch, ah                                ; 30 e5
    6524     and cl, 007h                              ; 80 e1 07
    6525     mov al, bl                                ; 88 d8
    6526     xor ah, ah                                ; 30 e4
    6527     mov dx, ax                                ; 89 c2
    6528     or dx, cx                                 ; 09 ca
    6529     mov bl, dl                                ; 88 d3
    6530     mov al, dl                                ; 88 d0
     6932    movzx ax, bh                              ; 0f b6 c7
     6933    sar ax, 004h                              ; c1 f8 04
     6934    and ax, strict word 00007h                ; 25 07 00
     6935    movzx cx, bl                              ; 0f b6 cb
     6936    or cx, ax                                 ; 09 c1
     6937    mov bl, cl                                ; 88 cb
     6938    mov al, cl                                ; 88 c8
    65316939    and AL, strict byte 007h                  ; 24 07
    6532     mov dx, strict word 00060h                ; ba 60 00
    65336940    out DX, AL                                ; ee
    65346941    mov dx, strict word 00064h                ; ba 64 00
     
    65376944    ; sub ah, ah                                ; 2a e4
    65386945    test AL, strict byte 001h                 ; a8 01
    6539     jne short 052fch                          ; 75 08
     6946    jne short 05003h                          ; 75 08
    65406947    mov AL, strict byte 021h                  ; b0 21
    65416948    mov dx, 00080h                            ; ba 80 00
    65426949    out DX, AL                                ; ee
    6543     jmp short 052eah                          ; eb ee
     6950    jmp short 04ff1h                          ; eb ee
    65446951    mov dx, strict word 00060h                ; ba 60 00
    65456952    in AL, DX                                 ; ec
     
    65496956    mov dx, 00097h                            ; ba 97 00
    65506957    mov ax, strict word 00040h                ; b8 40 00
    6551     call 0160eh                               ; e8 01 c3
     6958    call 0160eh                               ; e8 fa c5
    65526959    sti                                       ; fb
    6553     mov CL, strict byte 008h                  ; b1 08
    65546960    mov ax, word [bp+014h]                    ; 8b 46 14
    6555     shr ax, CL                                ; d3 e8
     6961    shr ax, 008h                              ; c1 e8 08
    65566962    cmp ax, 000a2h                            ; 3d a2 00
    6557     jnbe short 05374h                         ; 77 5a
     6963    jnbe near 05221h                          ; 0f 87 ff 01
    65586964    push CS                                   ; 0e
    65596965    pop ES                                    ; 07
    65606966    mov cx, strict word 0000ch                ; b9 0c 00
    6561     mov di, 0524bh                            ; bf 4b 52
     6967    mov di, 04f62h                            ; bf 62 4f
    65626968    repne scasb                               ; f2 ae
    65636969    sal cx, 1                                 ; d1 e1
    65646970    mov di, cx                                ; 89 cf
    6565     mov ax, word [cs:di+05256h]               ; 2e 8b 85 56 52
     6971    mov ax, word [cs:di+04f6dh]               ; 2e 8b 85 6d 4f
    65666972    jmp ax                                    ; ff e0
    6567     mov ax, strict word 00001h                ; b8 01 00
    6568     push ax                                   ; 50
     6973    push strict byte 00001h                   ; 6a 01
    65696974    mov cx, ss                                ; 8c d1
    6570     lea bx, [bp-004h]                         ; 8d 5e fc
     6975    lea bx, [bp-006h]                         ; 8d 5e fa
    65716976    mov dx, ss                                ; 8c d2
    6572     lea ax, [bp-006h]                         ; 8d 46 fa
    6573     call 051dbh                               ; e8 9b fe
     6977    lea ax, [bp-004h]                         ; 8d 46 fc
     6978    call 04ef5h                               ; e8 af fe
    65746979    test ax, ax                               ; 85 c0
    6575     jne short 05352h                          ; 75 0e
    6576     mov ax, 00565h                            ; b8 65 05
    6577     push ax                                   ; 50
    6578     mov ax, strict word 00007h                ; b8 07 00
    6579     push ax                                   ; 50
    6580     call 018fah                               ; e8 ab c5
     6980    jne short 05055h                          ; 75 0b
     6981    push 00565h                               ; 68 65 05
     6982    push strict byte 00007h                   ; 6a 07
     6983    call 018e9h                               ; e8 97 c8
    65816984    add sp, strict byte 00004h                ; 83 c4 04
    6582     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6583     je short 0535eh                           ; 74 06
    6584     cmp byte [bp-004h], 0f0h                  ; 80 7e fc f0
    6585     je short 05364h                           ; 74 06
    6586     cmp byte [bp-004h], 0e0h                  ; 80 7e fc e0
    6587     jne short 05368h                          ; 75 04
    6588     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    6589     mov ah, byte [bp-006h]                    ; 8a 66 fa
    6590     mov al, byte [bp-004h]                    ; 8a 46 fc
     6985    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     6986    je short 05061h                           ; 74 06
     6987    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
     6988    je short 05067h                           ; 74 06
     6989    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
     6990    jne short 0506bh                          ; 75 04
     6991    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     6992    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     6993    sal dx, 008h                              ; c1 e2 08
     6994    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6995    or dx, ax                                 ; 09 c2
     6996    mov word [bp+014h], dx                    ; 89 56 14
     6997    leave                                     ; c9
     6998    pop di                                    ; 5f
     6999    retn                                      ; c3
     7000    or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
     7001    push strict byte 00000h                   ; 6a 00
     7002    mov cx, ss                                ; 8c d1
     7003    lea bx, [bp-006h]                         ; 8d 5e fa
     7004    mov dx, ss                                ; 8c d2
     7005    lea ax, [bp-004h]                         ; 8d 46 fc
     7006    call 04ef5h                               ; e8 63 fe
     7007    test ax, ax                               ; 85 c0
     7008    jne short 0509dh                          ; 75 07
     7009    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
     7010    leave                                     ; c9
     7011    pop di                                    ; 5f
     7012    retn                                      ; c3
     7013    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7014    je short 050a9h                           ; 74 06
     7015    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
     7016    je short 050afh                           ; 74 06
     7017    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
     7018    jne short 050b3h                          ; 75 04
     7019    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     7020    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     7021    sal dx, 008h                              ; c1 e2 08
     7022    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     7023    or dx, ax                                 ; 09 c2
     7024    mov word [bp+014h], dx                    ; 89 56 14
     7025    and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
     7026    leave                                     ; c9
     7027    pop di                                    ; 5f
     7028    retn                                      ; c3
     7029    mov dx, strict word 00017h                ; ba 17 00
     7030    mov ax, strict word 00040h                ; b8 40 00
     7031    call 01600h                               ; e8 2d c5
     7032    mov dx, word [bp+014h]                    ; 8b 56 14
     7033    mov dl, al                                ; 88 c2
     7034    jmp short 05078h                          ; eb 9e
     7035    mov al, byte [bp+012h]                    ; 8a 46 12
     7036    movzx dx, al                              ; 0f b6 d0
     7037    mov ax, word [bp+012h]                    ; 8b 46 12
     7038    shr ax, 008h                              ; c1 e8 08
     7039    xor ah, ah                                ; 30 e4
     7040    call 04b0dh                               ; e8 22 fa
     7041    test ax, ax                               ; 85 c0
     7042    jne short 050fch                          ; 75 0d
     7043    mov ax, word [bp+014h]                    ; 8b 46 14
     7044    xor al, al                                ; 30 c0
     7045    or AL, strict byte 001h                   ; 0c 01
    65917046    mov word [bp+014h], ax                    ; 89 46 14
    6592     jmp near 053beh                           ; e9 4a 00
    6593     mov bx, 00c16h                            ; bb 16 0c
     7047    leave                                     ; c9
     7048    pop di                                    ; 5f
     7049    retn                                      ; c3
     7050    and word [bp+014h], 0ff00h                ; 81 66 14 00 ff
     7051    leave                                     ; c9
     7052    pop di                                    ; 5f
     7053    retn                                      ; c3
     7054    mov ax, word [bp+014h]                    ; 8b 46 14
     7055    xor al, al                                ; 30 c0
     7056    or AL, strict byte 030h                   ; 0c 30
     7057    jmp short 050f6h                          ; eb e9
     7058    mov byte [bp-002h], 002h                  ; c6 46 fe 02
     7059    xor cx, cx                                ; 31 c9
     7060    cli                                       ; fa
     7061    mov AL, strict byte 0f2h                  ; b0 f2
     7062    mov dx, strict word 00060h                ; ba 60 00
     7063    out DX, AL                                ; ee
     7064    mov bx, strict word 0ffffh                ; bb ff ff
     7065    mov dx, strict word 00064h                ; ba 64 00
     7066    in AL, DX                                 ; ec
     7067    db  02ah, 0e4h
     7068    ; sub ah, ah                                ; 2a e4
     7069    test AL, strict byte 001h                 ; a8 01
     7070    jne short 05134h                          ; 75 0d
     7071    dec bx                                    ; 4b
     7072    test bx, bx                               ; 85 db
     7073    jbe short 05134h                          ; 76 08
     7074    mov dx, 00080h                            ; ba 80 00
     7075    in AL, DX                                 ; ec
     7076    db  02ah, 0e4h
     7077    ; sub ah, ah                                ; 2a e4
     7078    jmp short 0511dh                          ; eb e9
     7079    test bx, bx                               ; 85 db
     7080    jbe short 05178h                          ; 76 40
     7081    mov dx, strict word 00060h                ; ba 60 00
     7082    in AL, DX                                 ; ec
     7083    db  02ah, 0e4h
     7084    ; sub ah, ah                                ; 2a e4
     7085    cmp ax, 000fah                            ; 3d fa 00
     7086    jne short 05178h                          ; 75 35
     7087    mov bx, strict word 0ffffh                ; bb ff ff
     7088    mov dx, strict word 00064h                ; ba 64 00
     7089    in AL, DX                                 ; ec
     7090    db  02ah, 0e4h
     7091    ; sub ah, ah                                ; 2a e4
     7092    test AL, strict byte 001h                 ; a8 01
     7093    jne short 0515dh                          ; 75 0d
     7094    dec bx                                    ; 4b
     7095    test bx, bx                               ; 85 db
     7096    jbe short 0515dh                          ; 76 08
     7097    mov dx, 00080h                            ; ba 80 00
     7098    in AL, DX                                 ; ec
     7099    db  02ah, 0e4h
     7100    ; sub ah, ah                                ; 2a e4
     7101    jmp short 05146h                          ; eb e9
     7102    test bx, bx                               ; 85 db
     7103    jbe short 0516fh                          ; 76 0e
     7104    shr cx, 008h                              ; c1 e9 08
     7105    mov dx, strict word 00060h                ; ba 60 00
     7106    in AL, DX                                 ; ec
     7107    db  02ah, 0e4h
     7108    ; sub ah, ah                                ; 2a e4
     7109    sal ax, 008h                              ; c1 e0 08
     7110    or cx, ax                                 ; 09 c1
     7111    dec byte [bp-002h]                        ; fe 4e fe
     7112    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     7113    jnbe short 05143h                         ; 77 cb
     7114    mov word [bp+00eh], cx                    ; 89 4e 0e
     7115    leave                                     ; c9
     7116    pop di                                    ; 5f
     7117    retn                                      ; c3
     7118    push strict byte 00001h                   ; 6a 01
     7119    mov cx, ss                                ; 8c d1
     7120    lea bx, [bp-006h]                         ; 8d 5e fa
     7121    mov dx, ss                                ; 8c d2
     7122    lea ax, [bp-004h]                         ; 8d 46 fc
     7123    call 04ef5h                               ; e8 68 fd
     7124    test ax, ax                               ; 85 c0
     7125    jne short 0519ch                          ; 75 0b
     7126    push 00565h                               ; 68 65 05
     7127    push strict byte 00007h                   ; 6a 07
     7128    call 018e9h                               ; e8 50 c7
     7129    add sp, strict byte 00004h                ; 83 c4 04
     7130    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7131    je near 0506bh                            ; 0f 84 c7 fe
     7132    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
     7133    je near 05067h                            ; 0f 84 bb fe
     7134    jmp near 0506bh                           ; e9 bc fe
     7135    or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
     7136    push strict byte 00000h                   ; 6a 00
     7137    mov cx, ss                                ; 8c d1
     7138    lea bx, [bp-006h]                         ; 8d 5e fa
     7139    mov dx, ss                                ; 8c d2
     7140    lea ax, [bp-004h]                         ; 8d 46 fc
     7141    call 04ef5h                               ; e8 32 fd
     7142    test ax, ax                               ; 85 c0
     7143    je near 05096h                            ; 0f 84 cd fe
     7144    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7145    je near 050b3h                            ; 0f 84 e2 fe
     7146    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
     7147    je near 050afh                            ; 0f 84 d6 fe
     7148    jmp near 050b3h                           ; e9 d7 fe
     7149    mov dx, strict word 00017h                ; ba 17 00
     7150    mov ax, strict word 00040h                ; b8 40 00
     7151    call 01600h                               ; e8 1b c4
     7152    mov dx, word [bp+014h]                    ; 8b 56 14
     7153    mov dl, al                                ; 88 c2
     7154    mov word [bp+014h], dx                    ; 89 56 14
     7155    mov dx, strict word 00018h                ; ba 18 00
     7156    mov ax, strict word 00040h                ; b8 40 00
     7157    call 01600h                               ; e8 0a c4
     7158    mov bh, al                                ; 88 c7
     7159    and bh, 073h                              ; 80 e7 73
     7160    mov dx, 00096h                            ; ba 96 00
     7161    mov ax, strict word 00040h                ; b8 40 00
     7162    call 01600h                               ; e8 fc c3
     7163    and AL, strict byte 00ch                  ; 24 0c
     7164    or bh, al                                 ; 08 c7
     7165    mov dx, word [bp+014h]                    ; 8b 56 14
     7166    xor dh, dh                                ; 30 f6
     7167    movzx ax, bh                              ; 0f b6 c7
     7168    sal ax, 008h                              ; c1 e0 08
     7169    jmp near 05076h                           ; e9 60 fe
     7170    mov ax, word [bp+014h]                    ; 8b 46 14
     7171    xor ah, ah                                ; 30 e4
     7172    or ah, 080h                               ; 80 cc 80
     7173    jmp near 050f6h                           ; e9 d5 fe
     7174    mov bx, 00c08h                            ; bb 08 0c
    65947175    mov cx, ds                                ; 8c d9
    65957176    mov ax, strict word 00004h                ; b8 04 00
    6596     call 018bdh                               ; e8 3e c5
    6597     mov CL, strict byte 008h                  ; b1 08
     7177    call 018aeh                               ; e8 82 c6
    65987178    mov ax, word [bp+014h]                    ; 8b 46 14
    6599     shr ax, CL                                ; d3 e8
     7179    shr ax, 008h                              ; c1 e8 08
    66007180    push ax                                   ; 50
    6601     mov ax, 00589h                            ; b8 89 05
    6602     push ax                                   ; 50
    6603     mov ax, strict word 00004h                ; b8 04 00
    6604     push ax                                   ; 50
    6605     call 018fah                               ; e8 68 c5
     7181    push 00589h                               ; 68 89 05
     7182    push strict byte 00004h                   ; 6a 04
     7183    call 018e9h                               ; e8 ae c6
    66067184    add sp, strict byte 00006h                ; 83 c4 06
    6607     mov bx, 00c16h                            ; bb 16 0c
     7185    mov bx, 00c08h                            ; bb 08 0c
    66087186    mov cx, ds                                ; 8c d9
    66097187    mov ax, strict word 00004h                ; b8 04 00
    6610     call 018bdh                               ; e8 1d c5
     7188    call 018aeh                               ; e8 65 c6
    66117189    mov ax, word [bp+010h]                    ; 8b 46 10
    66127190    push ax                                   ; 50
     
    66177195    mov ax, word [bp+014h]                    ; 8b 46 14
    66187196    push ax                                   ; 50
    6619     mov ax, 005b1h                            ; b8 b1 05
    6620     push ax                                   ; 50
    6621     mov ax, strict word 00004h                ; b8 04 00
    6622     push ax                                   ; 50
    6623     call 018fah                               ; e8 3f c5
     7197    push 005b1h                               ; 68 b1 05
     7198    push strict byte 00004h                   ; 6a 04
     7199    call 018e9h                               ; e8 88 c6
    66247200    add sp, strict byte 0000ch                ; 83 c4 0c
    6625     mov sp, bp                                ; 89 ec
    6626     pop bp                                    ; 5d
     7201    leave                                     ; c9
    66277202    pop di                                    ; 5f
    66287203    retn                                      ; c3
    6629     or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
    6630     xor ax, ax                                ; 31 c0
    6631     push ax                                   ; 50
    6632     mov cx, ss                                ; 8c d1
    6633     lea bx, [bp-004h]                         ; 8d 5e fc
    6634     mov dx, ss                                ; 8c d2
    6635     lea ax, [bp-006h]                         ; 8d 46 fa
    6636     call 051dbh                               ; e8 03 fe
    6637     test ax, ax                               ; 85 c0
    6638     jne short 053e2h                          ; 75 06
    6639     or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    6640     jmp short 053beh                          ; eb dc
    6641     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6642     je short 053eeh                           ; 74 06
    6643     cmp byte [bp-004h], 0f0h                  ; 80 7e fc f0
    6644     je short 053f4h                           ; 74 06
    6645     cmp byte [bp-004h], 0e0h                  ; 80 7e fc e0
    6646     jne short 053f8h                          ; 75 04
    6647     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    6648     mov dh, byte [bp-006h]                    ; 8a 76 fa
    6649     mov dl, byte [bp-004h]                    ; 8a 56 fc
    6650     mov word [bp+014h], dx                    ; 89 56 14
    6651     and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
    6652     jmp short 053beh                          ; eb b7
    6653     mov dx, strict word 00017h                ; ba 17 00
    6654     mov ax, strict word 00040h                ; b8 40 00
    6655     call 01600h                               ; e8 f0 c1
    6656     mov dx, word [bp+014h]                    ; 8b 56 14
    6657     mov dl, al                                ; 88 c2
    6658     mov word [bp+014h], dx                    ; 89 56 14
    6659     jmp short 053beh                          ; eb a4
    6660     mov dl, byte [bp+012h]                    ; 8a 56 12
    6661     xor dh, dh                                ; 30 f6
    6662     mov CL, strict byte 008h                  ; b1 08
    6663     mov ax, word [bp+012h]                    ; 8b 46 12
    6664     shr ax, CL                                ; d3 e8
    6665     xor ah, ah                                ; 30 e4
    6666     call 04da2h                               ; e8 77 f9
    6667     test ax, ax                               ; 85 c0
    6668     jne short 05439h                          ; 75 0a
    6669     mov ax, word [bp+014h]                    ; 8b 46 14
    6670     xor al, al                                ; 30 c0
    6671     or AL, strict byte 001h                   ; 0c 01
    6672     jmp near 0536eh                           ; e9 35 ff
    6673     and word [bp+014h], 0ff00h                ; 81 66 14 00 ff
    6674     jmp near 053beh                           ; e9 7d ff
    6675     mov ax, word [bp+014h]                    ; 8b 46 14
    6676     xor al, al                                ; 30 c0
    6677     or AL, strict byte 030h                   ; 0c 30
    6678     jmp near 0536eh                           ; e9 23 ff
    6679     mov byte [bp-002h], 002h                  ; c6 46 fe 02
    6680     xor cx, cx                                ; 31 c9
    6681     cli                                       ; fa
    6682     mov AL, strict byte 0f2h                  ; b0 f2
    6683     mov dx, strict word 00060h                ; ba 60 00
    6684     out DX, AL                                ; ee
    6685     mov bx, strict word 0ffffh                ; bb ff ff
    6686     mov dx, strict word 00064h                ; ba 64 00
    6687     in AL, DX                                 ; ec
    6688     db  02ah, 0e4h
    6689     ; sub ah, ah                                ; 2a e4
    6690     test AL, strict byte 001h                 ; a8 01
    6691     jne short 05472h                          ; 75 0d
    6692     dec bx                                    ; 4b
    6693     test bx, bx                               ; 85 db
    6694     jbe short 05472h                          ; 76 08
    6695     mov dx, 00080h                            ; ba 80 00
    6696     in AL, DX                                 ; ec
    6697     db  02ah, 0e4h
    6698     ; sub ah, ah                                ; 2a e4
    6699     jmp short 0545bh                          ; eb e9
    6700     test bx, bx                               ; 85 db
    6701     jbe short 054b4h                          ; 76 3e
    6702     mov dx, strict word 00060h                ; ba 60 00
    6703     in AL, DX                                 ; ec
    6704     db  02ah, 0e4h
    6705     ; sub ah, ah                                ; 2a e4
    6706     cmp ax, 000fah                            ; 3d fa 00
    6707     jne short 054b4h                          ; 75 33
    6708     mov bx, strict word 0ffffh                ; bb ff ff
    6709     mov dx, strict word 00064h                ; ba 64 00
    6710     in AL, DX                                 ; ec
    6711     db  02ah, 0e4h
    6712     ; sub ah, ah                                ; 2a e4
    6713     test AL, strict byte 001h                 ; a8 01
    6714     jne short 0549bh                          ; 75 0d
    6715     dec bx                                    ; 4b
    6716     test bx, bx                               ; 85 db
    6717     jbe short 0549bh                          ; 76 08
    6718     mov dx, 00080h                            ; ba 80 00
    6719     in AL, DX                                 ; ec
    6720     db  02ah, 0e4h
    6721     ; sub ah, ah                                ; 2a e4
    6722     jmp short 05484h                          ; eb e9
    6723     test bx, bx                               ; 85 db
    6724     jbe short 054abh                          ; 76 0c
    6725     mov bl, ch                                ; 88 eb
    6726     mov dx, strict word 00060h                ; ba 60 00
    6727     in AL, DX                                 ; ec
    6728     db  02ah, 0e4h
    6729     ; sub ah, ah                                ; 2a e4
    6730     mov ch, al                                ; 88 c5
    6731     mov cl, bl                                ; 88 d9
    6732     dec byte [bp-002h]                        ; fe 4e fe
    6733     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    6734     jnbe short 05481h                         ; 77 cd
    6735     mov word [bp+00eh], cx                    ; 89 4e 0e
    6736     jmp near 053beh                           ; e9 04 ff
    6737     mov ax, strict word 00001h                ; b8 01 00
    6738     push ax                                   ; 50
    6739     mov cx, ss                                ; 8c d1
    6740     lea bx, [bp-004h]                         ; 8d 5e fc
    6741     mov dx, ss                                ; 8c d2
    6742     lea ax, [bp-006h]                         ; 8d 46 fa
    6743     call 051dbh                               ; e8 10 fd
    6744     test ax, ax                               ; 85 c0
    6745     jne short 054ddh                          ; 75 0e
    6746     mov ax, 00565h                            ; b8 65 05
    6747     push ax                                   ; 50
    6748     mov ax, strict word 00007h                ; b8 07 00
    6749     push ax                                   ; 50
    6750     call 018fah                               ; e8 20 c4
    6751     add sp, strict byte 00004h                ; 83 c4 04
    6752     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6753     jne short 054e6h                          ; 75 03
    6754     jmp near 05368h                           ; e9 82 fe
    6755     cmp byte [bp-004h], 0f0h                  ; 80 7e fc f0
    6756     jne short 054efh                          ; 75 03
    6757     jmp near 05364h                           ; e9 75 fe
    6758     jmp short 054e3h                          ; eb f2
    6759     or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
    6760     xor ax, ax                                ; 31 c0
    6761     push ax                                   ; 50
    6762     mov cx, ss                                ; 8c d1
    6763     lea bx, [bp-004h]                         ; 8d 5e fc
    6764     mov dx, ss                                ; 8c d2
    6765     lea ax, [bp-006h]                         ; 8d 46 fa
    6766     call 051dbh                               ; e8 d5 fc
    6767     test ax, ax                               ; 85 c0
    6768     jne short 0550dh                          ; 75 03
    6769     jmp near 053dch                           ; e9 cf fe
    6770     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6771     jne short 05516h                          ; 75 03
    6772     jmp near 053f8h                           ; e9 e2 fe
    6773     cmp byte [bp-004h], 0f0h                  ; 80 7e fc f0
    6774     jne short 0551fh                          ; 75 03
    6775     jmp near 053f4h                           ; e9 d5 fe
    6776     jmp short 05513h                          ; eb f2
    6777     mov dx, strict word 00017h                ; ba 17 00
    6778     mov ax, strict word 00040h                ; b8 40 00
    6779     call 01600h                               ; e8 d6 c0
    6780     mov dx, word [bp+014h]                    ; 8b 56 14
    6781     mov dl, al                                ; 88 c2
    6782     mov word [bp+014h], dx                    ; 89 56 14
    6783     mov dx, strict word 00018h                ; ba 18 00
    6784     mov ax, strict word 00040h                ; b8 40 00
    6785     call 01600h                               ; e8 c5 c0
    6786     mov bh, al                                ; 88 c7
    6787     and bh, 073h                              ; 80 e7 73
    6788     mov dx, 00096h                            ; ba 96 00
    6789     mov ax, strict word 00040h                ; b8 40 00
    6790     call 01600h                               ; e8 b7 c0
    6791     mov ah, al                                ; 88 c4
    6792     and ah, 00ch                              ; 80 e4 0c
    6793     or ah, bh                                 ; 08 fc
    6794     mov dx, word [bp+014h]                    ; 8b 56 14
    6795     mov dh, ah                                ; 88 e6
    6796     jmp near 05415h                           ; e9 bd fe
    6797     mov ax, word [bp+014h]                    ; 8b 46 14
    6798     xor ah, ah                                ; 30 e4
    6799     or ah, 080h                               ; 80 cc 80
    6800     jmp near 0536eh                           ; e9 0b fe
    6801     sbb ax, 02e56h                            ; 1d 56 2e
     7204    and word [bp+di+045h], dx                 ; 21 53 45
     7205    push bx                                   ; 53
     7206    jc short 052c0h                           ; 72 53
     7207    jc short 052c2h                           ; 72 53
     7208    jc short 052c4h                           ; 72 53
     7209    dec dx                                    ; 4a
     7210    push bp                                   ; 55
     7211    js short 052cbh                           ; 78 56
     7212    js short 052cdh                           ; 78 56
     7213    arpl word [di+055h], dx                   ; 63 55 55
    68027214    push si                                   ; 56
     7215    js short 052d3h                           ; 78 56
     7216    js short 052d5h                           ; 78 56
     7217    push bp                                   ; 55
    68037218    push si                                   ; 56
     7219    push bp                                   ; 55
    68047220    push si                                   ; 56
     7221    js short 052dbh                           ; 78 56
     7222    js short 052ddh                           ; 78 56
     7223    fst dword [di+055h]                       ; d9 55 55
    68057224    push si                                   ; 56
     7225    js short 052e3h                           ; 78 56
     7226    js short 052e5h                           ; 78 56
     7227    push bp                                   ; 55
    68067228    push si                                   ; 56
     7229    or word [bp+078h], dx                     ; 09 56 78
    68077230    push si                                   ; 56
    6808     push si                                   ; 56
    6809     cmp byte [bx+si+074h], bl                 ; 38 58 74
    6810     pop cx                                    ; 59
    6811     je short 055cch                           ; 74 59
    6812     push 04e58h                               ; 68 58 4e
    6813     pop cx                                    ; 59
    6814     je short 055d2h                           ; 74 59
    6815     je short 055d4h                           ; 74 59
    6816     dec si                                    ; 4e
    6817     pop cx                                    ; 59
    6818     dec si                                    ; 4e
    6819     pop cx                                    ; 59
    6820     je short 055dah                           ; 74 59
    6821     je short 055dch                           ; 74 59
    6822     into                                      ; ce
    6823     pop ax                                    ; 58
    6824     dec si                                    ; 4e
    6825     pop cx                                    ; 59
    6826     je short 055e2h                           ; 74 59
    6827     je short 055e4h                           ; 74 59
    6828     dec si                                    ; 4e
    6829     pop cx                                    ; 59
    6830     call far [bx+si+074h]                     ; ff 58 74
    6831     pop cx                                    ; 59
    6832     je short 055ech                           ; 74 59
    6833     je short 055eeh                           ; 74 59
    6834 _int13_harddisk:                             ; 0xf5595 LB 0x43a
    6835     push bp                                   ; 55
    6836     mov bp, sp                                ; 89 e5
    6837     sub sp, strict byte 00010h                ; 83 ec 10
     7231    js short 052edh                           ; 78 56
     7232    js short 052efh                           ; 78 56
     7233_int13_harddisk:                             ; 0xf5299 LB 0x43c
     7234    enter 00010h, 000h                        ; c8 10 00 00
    68387235    mov dx, strict word 0000eh                ; ba 0e 00
    68397236    mov ax, strict word 00040h                ; b8 40 00
    6840     call 0161ch                               ; e8 78 c0
     7237    call 0161ch                               ; e8 76 c3
    68417238    mov si, 00122h                            ; be 22 01
    68427239    mov word [bp-004h], ax                    ; 89 46 fc
     
    68447241    mov dx, 0008eh                            ; ba 8e 00
    68457242    mov ax, strict word 00040h                ; b8 40 00
    6846     call 0160eh                               ; e8 59 c0
     7243    call 0160eh                               ; e8 57 c3
    68477244    mov ax, word [bp+00eh]                    ; 8b 46 0e
    68487245    xor ah, ah                                ; 30 e4
    68497246    cmp ax, 00080h                            ; 3d 80 00
    6850     jc short 055c4h                           ; 72 05
     7247    jc short 052c6h                           ; 72 05
    68517248    cmp ax, 00090h                            ; 3d 90 00
    6852     jc short 055e3h                           ; 72 1f
     7249    jc short 052e4h                           ; 72 1e
    68537250    mov ax, word [bp+00eh]                    ; 8b 46 0e
    68547251    xor ah, ah                                ; 30 e4
    68557252    push ax                                   ; 50
    6856     mov al, byte [bp+017h]                    ; 8a 46 17
     7253    mov ax, word [bp+016h]                    ; 8b 46 16
     7254    shr ax, 008h                              ; c1 e8 08
    68577255    push ax                                   ; 50
    6858     mov ax, 005d4h                            ; b8 d4 05
    6859     push ax                                   ; 50
    6860     mov ax, 005e3h                            ; b8 e3 05
    6861     push ax                                   ; 50
    6862     mov ax, strict word 00004h                ; b8 04 00
    6863     push ax                                   ; 50
    6864     call 018fah                               ; e8 1d c3
     7256    push 005d4h                               ; 68 d4 05
     7257    push 005e3h                               ; 68 e3 05
     7258    push strict byte 00004h                   ; 6a 04
     7259    call 018e9h                               ; e8 0b c6
    68657260    add sp, strict byte 0000ah                ; 83 c4 0a
    6866     jmp near 0598fh                           ; e9 ac 03
     7261    jmp near 05693h                           ; e9 af 03
    68677262    mov ax, word [bp+00eh]                    ; 8b 46 0e
    68687263    xor ah, ah                                ; 30 e4
     
    68737268    mov byte [bp-002h], dl                    ; 88 56 fe
    68747269    cmp dl, 010h                              ; 80 fa 10
    6875     jc short 0560ah                           ; 72 0e
     7270    jc short 0530dh                           ; 72 10
    68767271    push ax                                   ; 50
    6877     mov al, byte [bp+017h]                    ; 8a 46 17
     7272    mov ax, word [bp+016h]                    ; 8b 46 16
     7273    shr ax, 008h                              ; c1 e8 08
    68787274    push ax                                   ; 50
    6879     mov ax, 005d4h                            ; b8 d4 05
    6880     push ax                                   ; 50
    6881     mov ax, 0060eh                            ; b8 0e 06
    6882     jmp short 055d5h                          ; eb cb
    6883     mov al, byte [bp+017h]                    ; 8a 46 17
    6884     xor ah, ah                                ; 30 e4
    6885     cmp ax, strict word 00018h                ; 3d 18 00
    6886     jnbe short 05653h                         ; 77 3f
    6887     mov bx, ax                                ; 89 c3
    6888     sal bx, 1                                 ; d1 e3
    6889     jmp word [cs:bx+05563h]                   ; 2e ff a7 63 55
     7275    push 005d4h                               ; 68 d4 05
     7276    push 0060eh                               ; 68 0e 06
     7277    jmp short 052d9h                          ; eb cc
     7278    mov bx, word [bp+016h]                    ; 8b 5e 16
     7279    shr bx, 008h                              ; c1 eb 08
     7280    cmp bx, strict byte 00018h                ; 83 fb 18
     7281    jnbe near 05678h                          ; 0f 87 5e 03
     7282    add bx, bx                                ; 01 db
     7283    jmp word [cs:bx+05267h]                   ; 2e ff a7 67 52
    68907284    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    6891     jnc short 0562bh                          ; 73 08
    6892     mov al, byte [bp-002h]                    ; 8a 46 fe
    6893     xor ah, ah                                ; 30 e4
    6894     call 01c2dh                               ; e8 02 c6
    6895     jmp near 05851h                           ; e9 23 02
     7285    jnc near 05330h                           ; 0f 83 07 00
     7286    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     7287    call 01be6h                               ; e8 b6 c8
     7288    mov byte [bp+017h], 000h                  ; c6 46 17 00
     7289    xor bx, bx                                ; 31 db
    68967290    mov dx, strict word 00074h                ; ba 74 00
    68977291    mov ax, strict word 00040h                ; b8 40 00
    6898     call 01600h                               ; e8 c9 bf
     7292    call 0160eh                               ; e8 cf c2
     7293    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     7294    leave                                     ; c9
     7295    retn                                      ; c3
     7296    mov dx, strict word 00074h                ; ba 74 00
     7297    mov ax, strict word 00040h                ; b8 40 00
     7298    call 01600h                               ; e8 b2 c2
    68997299    mov cl, al                                ; 88 c1
    69007300    mov dx, word [bp+016h]                    ; 8b 56 16
    6901     mov dh, al                                ; 88 c6
     7301    xor dh, dh                                ; 30 f6
     7302    movzx ax, cl                              ; 0f b6 c1
     7303    sal ax, 008h                              ; c1 e0 08
     7304    or dx, ax                                 ; 09 c2
    69027305    mov word [bp+016h], dx                    ; 89 56 16
    69037306    xor bx, bx                                ; 31 db
    69047307    mov dx, strict word 00074h                ; ba 74 00
    69057308    mov ax, strict word 00040h                ; b8 40 00
    6906     call 0160eh                               ; e8 c2 bf
     7309    call 0160eh                               ; e8 a3 c2
    69077310    test cl, cl                               ; 84 c9
    6908     je short 056b2h                           ; 74 62
    6909     jmp near 059a8h                           ; e9 55 03
    6910     jmp near 05974h                           ; e9 1e 03
     7311    je short 05334h                           ; 74 c5
     7312    jmp near 056afh                           ; e9 3d 03
    69117313    mov ax, word [bp+016h]                    ; 8b 46 16
    69127314    xor ah, ah                                ; 30 e4
    6913     mov word [bp-00ah], ax                    ; 89 46 f6
    6914     mov al, byte [bp+015h]                    ; 8a 46 15
    6915     mov dx, word [bp+014h]                    ; 8b 56 14
    6916     xor dh, dh                                ; 30 f6
    6917     sal dx, 1                                 ; d1 e2
    6918     sal dx, 1                                 ; d1 e2
    6919     and dh, 003h                              ; 80 e6 03
    6920     mov ah, dh                                ; 88 f4
     7315    mov word [bp-00ch], ax                    ; 89 46 f4
     7316    mov di, word [bp+014h]                    ; 8b 7e 14
     7317    shr di, 008h                              ; c1 ef 08
     7318    mov ax, word [bp+014h]                    ; 8b 46 14
     7319    xor ah, ah                                ; 30 e4
     7320    sal ax, 002h                              ; c1 e0 02
     7321    xor al, al                                ; 30 c0
     7322    and ah, 003h                              ; 80 e4 03
     7323    or di, ax                                 ; 09 c7
     7324    mov ax, word [bp+014h]                    ; 8b 46 14
     7325    and ax, strict word 0003fh                ; 25 3f 00
    69217326    mov word [bp-006h], ax                    ; 89 46 fa
    6922     mov di, word [bp+014h]                    ; 8b 7e 14
    6923     and di, strict byte 0003fh                ; 83 e7 3f
    6924     mov al, byte [bp+013h]                    ; 8a 46 13
    6925     xor ah, dh                                ; 30 f4
     7327    mov ax, word [bp+012h]                    ; 8b 46 12
     7328    shr ax, 008h                              ; c1 e8 08
    69267329    mov word [bp-008h], ax                    ; 89 46 f8
    6927     mov ax, word [bp-00ah]                    ; 8b 46 f6
     7330    mov ax, word [bp-00ch]                    ; 8b 46 f4
    69287331    cmp ax, 00080h                            ; 3d 80 00
    6929     jnbe short 0568ch                         ; 77 04
     7332    jnbe short 053adh                         ; 77 04
    69307333    test ax, ax                               ; 85 c0
    6931     jne short 056b5h                          ; 75 29
    6932     mov bx, 00c16h                            ; bb 16 0c
     7334    jne short 053d0h                          ; 75 23
     7335    mov bx, 00c08h                            ; bb 08 0c
    69337336    mov cx, ds                                ; 8c d9
    69347337    mov ax, strict word 00004h                ; b8 04 00
    6935     call 018bdh                               ; e8 26 c2
    6936     mov al, byte [bp+017h]                    ; 8a 46 17
    6937     xor ah, ah                                ; 30 e4
     7338    call 018aeh                               ; e8 f6 c4
     7339    mov ax, word [bp+016h]                    ; 8b 46 16
     7340    shr ax, 008h                              ; c1 e8 08
    69387341    push ax                                   ; 50
    6939     mov ax, 005d4h                            ; b8 d4 05
    6940     push ax                                   ; 50
    6941     mov ax, 00640h                            ; b8 40 06
    6942     push ax                                   ; 50
    6943     mov ax, strict word 00004h                ; b8 04 00
    6944     push ax                                   ; 50
    6945     call 018fah                               ; e8 4e c2
     7342    push 005d4h                               ; 68 d4 05
     7343    push 00640h                               ; 68 40 06
     7344    push strict byte 00004h                   ; 6a 04
     7345    call 018e9h                               ; e8 1f c5
    69467346    add sp, strict byte 00008h                ; 83 c4 08
    6947     jmp near 0598fh                           ; e9 dd 02
    6948     jmp near 05855h                           ; e9 a0 01
    6949     mov al, byte [bp-002h]                    ; 8a 46 fe
    6950     xor ah, ah                                ; 30 e4
    6951     mov dx, strict word 00018h                ; ba 18 00
    6952     imul dx                                   ; f7 ea
     7347    jmp near 05693h                           ; e9 c3 02
     7348    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     7349    imul ax, ax, strict byte 00018h           ; 6b c0 18
    69537350    mov es, [bp-004h]                         ; 8e 46 fc
    69547351    mov bx, si                                ; 89 f3
     
    69577354    mov cx, word [es:bx+026h]                 ; 26 8b 4f 26
    69587355    mov dx, word [es:bx+02ah]                 ; 26 8b 57 2a
    6959     mov word [bp-00eh], dx                    ; 89 56 f2
    6960     cmp ax, word [bp-006h]                    ; 3b 46 fa
    6961     jbe short 056e3h                          ; 76 09
     7356    mov word [bp-00ah], dx                    ; 89 56 f6
     7357    cmp di, ax                                ; 39 c7
     7358    jnc short 053fdh                          ; 73 0c
    69627359    cmp cx, word [bp-008h]                    ; 3b 4e f8
    6963     jbe short 056e3h                          ; 76 04
    6964     cmp di, dx                                ; 39 d7
    6965     jbe short 05714h                          ; 76 31
    6966     mov bx, 00c16h                            ; bb 16 0c
     7360    jbe short 053fdh                          ; 76 07
     7361    mov ax, word [bp-006h]                    ; 8b 46 fa
     7362    cmp ax, dx                                ; 39 d0
     7363    jbe short 0542bh                          ; 76 2e
     7364    mov bx, 00c08h                            ; bb 08 0c
    69677365    mov cx, ds                                ; 8c d9
    69687366    mov ax, strict word 00004h                ; b8 04 00
    6969     call 018bdh                               ; e8 cf c1
     7367    call 018aeh                               ; e8 a6 c4
     7368    push dword [bp-008h]                      ; 66 ff 76 f8
    69707369    push di                                   ; 57
    6971     push word [bp-008h]                       ; ff 76 f8
    6972     push word [bp-006h]                       ; ff 76 fa
    69737370    mov ax, word [bp+012h]                    ; 8b 46 12
    69747371    xor ah, ah                                ; 30 e4
    69757372    push ax                                   ; 50
    6976     mov al, byte [bp+017h]                    ; 8a 46 17
     7373    mov ax, word [bp+016h]                    ; 8b 46 16
     7374    shr ax, 008h                              ; c1 e8 08
    69777375    push ax                                   ; 50
    6978     mov ax, 005d4h                            ; b8 d4 05
    6979     push ax                                   ; 50
    6980     mov ax, 00668h                            ; b8 68 06
    6981     push ax                                   ; 50
    6982     mov ax, strict word 00004h                ; b8 04 00
    6983     push ax                                   ; 50
    6984     call 018fah                               ; e8 ec c1
     7376    push 005d4h                               ; 68 d4 05
     7377    push 00668h                               ; 68 68 06
     7378    push strict byte 00004h                   ; 6a 04
     7379    call 018e9h                               ; e8 c4 c4
    69857380    add sp, strict byte 00010h                ; 83 c4 10
    6986     jmp near 0598fh                           ; e9 7b 02
    6987     mov al, byte [bp+017h]                    ; 8a 46 17
    6988     xor ah, ah                                ; 30 e4
     7381    jmp near 05693h                           ; e9 68 02
     7382    mov ax, word [bp+016h]                    ; 8b 46 16
     7383    shr ax, 008h                              ; c1 e8 08
    69897384    cmp ax, strict word 00004h                ; 3d 04 00
    6990     je short 0573eh                           ; 74 20
    6991     mov al, byte [bp-002h]                    ; 8a 46 fe
    6992     mov dx, strict word 00018h                ; ba 18 00
    6993     imul dx                                   ; f7 ea
     7385    jne short 05439h                          ; 75 03
     7386    jmp near 05330h                           ; e9 f7 fe
     7387    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     7388    imul bx, bx, strict byte 00018h           ; 6b db 18
    69947389    mov es, [bp-004h]                         ; 8e 46 fc
    6995     mov bx, si                                ; 89 f3
    6996     add bx, ax                                ; 01 c3
     7390    add bx, si                                ; 01 f3
    69977391    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    6998     jne short 05747h                          ; 75 14
     7392    jne short 0545ah                          ; 75 0f
    69997393    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    7000     cmp ax, word [bp-00eh]                    ; 3b 46 f2
    7001     je short 05741h                           ; 74 05
    7002     jmp short 05747h                          ; eb 09
    7003     jmp near 05851h                           ; e9 10 01
     7394    cmp ax, word [bp-00ah]                    ; 3b 46 f6
     7395    jne short 0545ah                          ; 75 06
    70047396    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7005     jc short 05776h                           ; 72 2f
    7006     mov ax, word [bp-006h]                    ; 8b 46 fa
     7397    jc short 0548ah                           ; 72 30
     7398    mov ax, di                                ; 89 f8
    70077399    xor dx, dx                                ; 31 d2
    70087400    mov bx, cx                                ; 89 cb
    70097401    xor cx, cx                                ; 31 c9
    7010     call 08dd2h                               ; e8 7f 36
     7402    call 08829h                               ; e8 c4 33
    70117403    xor bx, bx                                ; 31 db
    70127404    add ax, word [bp-008h]                    ; 03 46 f8
    70137405    adc dx, bx                                ; 11 da
    7014     mov bx, word [bp-00eh]                    ; 8b 5e f2
     7406    mov bx, word [bp-00ah]                    ; 8b 5e f6
    70157407    xor cx, cx                                ; 31 c9
    7016     call 08dd2h                               ; e8 70 36
     7408    call 08829h                               ; e8 b5 33
    70177409    xor bx, bx                                ; 31 db
    7018     add ax, di                                ; 01 f8
    7019     db  011h, 0dah, 005h, 0ffh, 0ffh, 089h, 046h, 0f4h, 083h, 0d2h, 0ffh, 089h, 056h, 0f0h, 031h, 0ffh
    7020     db  08eh, 046h, 0fch, 026h, 0c7h, 044h, 014h, 000h, 000h, 026h, 0c7h, 044h, 016h, 000h, 000h, 026h
    7021     db  0c7h, 044h, 018h, 000h, 000h, 08bh, 046h, 0f4h, 026h, 089h, 004h, 08bh, 046h, 0f0h, 026h, 089h
    7022     db  044h, 002h, 08bh, 056h, 010h, 08bh, 046h, 006h, 026h, 089h, 054h, 004h, 026h, 089h, 044h, 006h
    7023     db  08bh, 046h, 0f6h, 026h, 089h, 044h, 00ah, 026h, 0c7h, 044h, 00ch, 000h, 002h, 08bh, 046h, 0fah
    7024     db  026h, 089h, 044h, 00eh, 08bh, 046h, 0f8h, 026h, 089h, 044h, 010h, 026h, 089h, 07ch, 012h, 08ah
    7025     db  046h, 0feh, 026h, 088h, 044h, 008h, 030h, 0e4h, 0bah, 018h, 000h, 0f7h, 0eah, 089h, 0f3h, 001h
    7026     db  0c3h, 026h, 08ah, 047h, 01eh, 030h, 0e4h, 089h, 0c3h, 0d1h, 0e3h, 0d1h, 0e3h, 08ah, 046h, 017h
    7027     db  0d1h, 0e0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h
    7028     db  0c0h, 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 074h
    7029     db  04ah, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 0abh, 0c0h, 088h, 0d0h, 030h, 0e4h
    7030     db  050h, 08ah, 046h, 017h, 050h, 0b8h, 0d4h, 005h, 050h, 0b8h, 0afh, 006h, 050h, 0b8h, 004h, 000h
    7031     db  050h, 0e8h, 0d0h, 0c0h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h
    7032     db  05fh, 001h, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 07ah, 0c0h, 0b8h, 0d0h, 006h
    7033     db  050h, 0b8h, 004h, 000h, 050h, 0e8h, 0ach, 0c0h, 083h, 0c4h, 004h, 0c6h, 046h, 017h, 000h, 031h
    7034     db  0dbh, 0bah, 074h, 000h, 0b8h, 040h, 000h, 0e8h, 0aeh, 0bdh, 080h, 066h, 01ch, 0feh, 089h, 0ech
    7035     db  05dh, 0c3h, 08ah, 046h, 0feh, 0bah, 018h, 000h, 0f7h, 0eah, 08eh, 046h, 0fch, 089h, 0f3h, 001h
    7036     db  0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h, 026h, 08bh, 047h, 02ah, 089h, 046h, 0f2h
    7037     db  026h, 08ah, 094h, 09eh, 001h, 030h, 0f6h, 088h, 076h, 016h, 08bh, 05eh, 014h, 04fh, 089h, 0f8h
    7038     db  088h, 0c7h, 089h, 05eh, 014h, 0d1h, 0efh, 0d1h, 0efh, 081h, 0e7h, 0c0h, 000h, 08bh, 046h, 0f2h
    7039     db  025h, 03fh, 000h, 009h, 0f8h, 030h, 0dbh, 009h, 0c3h, 089h, 05eh, 014h, 08bh, 05eh, 012h, 030h
    7040     db  0ffh, 088h, 0cch, 030h, 0c0h, 02dh, 000h, 001h, 009h, 0c3h, 089h, 05eh, 012h, 089h, 0d8h, 030h
    7041     db  0d8h, 009h, 0d0h, 089h, 046h, 012h, 0ebh, 083h, 08ah, 046h, 0feh, 099h, 02bh, 0c2h, 0d1h, 0f8h
    7042     db  0bah, 006h, 000h, 0f7h, 0eah, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 094h, 0c2h, 001h, 083h
    7043     db  0c2h, 007h, 0ech, 02ah, 0e4h, 024h, 0c0h, 03ch, 040h, 075h, 003h, 0e9h, 05dh, 0ffh, 08bh, 046h
    7044     db  016h, 030h, 0e4h, 080h, 0cch, 0aah, 0e9h, 098h, 000h, 08ah, 046h, 0feh, 030h, 0e4h, 0bah, 018h
    7045     db  000h, 0f7h, 0eah, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 044h, 02eh, 089h, 046h, 0fah, 026h
    7046     db  08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 07ch, 030h, 08bh, 046h, 0fah, 031h, 0d2h, 08bh
    7047     db  05eh, 0f8h, 031h, 0c9h, 0e8h, 0a5h, 034h, 089h, 0fbh, 031h, 0c9h, 0e8h, 09eh, 034h, 089h, 046h
    7048     db  0f4h, 089h, 056h, 0f0h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h, 016h, 030h, 0e4h, 080h
    7049     db  0cch, 003h, 089h, 046h, 016h, 0e9h, 007h, 0ffh, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h
    7050     db  0e8h, 064h, 0bfh, 08ah, 046h, 017h, 030h, 0e4h, 050h, 0b8h, 0d4h, 005h, 050h, 0b8h, 0eah, 006h
    7051     db  050h, 0b8h, 004h, 000h, 050h, 0e8h, 08ch, 0bfh, 083h, 0c4h, 008h, 0e9h, 0ddh, 0feh, 0bbh, 016h
    7052     db  00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 03eh, 0bfh, 08ah, 046h, 017h, 030h, 0e4h, 050h, 0b8h
    7053     db  0d4h, 005h, 050h, 0b8h, 01dh, 007h, 0e9h, 015h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch
    7054     db  001h, 089h, 046h, 016h, 08ah, 05eh, 017h, 030h, 0ffh, 0bah, 074h, 000h, 0b8h, 040h, 000h, 0e8h
    7055     db  066h, 0bch, 080h, 04eh, 01ch, 001h, 0e9h, 0b5h, 0feh, 066h, 05ah, 07eh, 05ah, 07eh, 05ah, 07eh
    7056     db  05ah, 083h, 05eh, 0e0h, 05bh, 07eh, 05ah, 0e6h, 05bh, 083h, 05eh, 0cfh, 05eh, 0cfh, 05eh, 0cfh
    7057     db  05eh, 0cfh, 05eh, 09ah, 05eh, 0cfh, 05eh, 0cfh, 05eh
    7058 _int13_harddisk_ext:                         ; 0xf59cf LB 0x51b
    7059     push bp                                   ; 55
    7060     mov bp, sp                                ; 89 e5
    7061     sub sp, strict byte 00026h                ; 83 ec 26
     7410    add ax, word [bp-006h]                    ; 03 46 fa
     7411    db  011h, 0dah, 005h, 0ffh, 0ffh, 089h, 046h, 0f0h, 083h, 0d2h, 0ffh, 089h, 056h, 0f2h, 089h, 05eh
     7412    db  0fah, 08eh, 046h, 0fch, 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h, 026h, 0c7h, 044h
     7413    db  018h, 000h, 000h, 08bh, 046h, 0f0h, 026h, 089h, 004h, 08bh, 046h, 0f2h, 026h, 089h, 044h, 002h
     7414    db  08bh, 046h, 010h, 08bh, 056h, 006h, 026h, 089h, 044h, 004h, 026h, 089h, 054h, 006h, 08bh, 046h
     7415    db  0f4h, 026h, 089h, 044h, 00ah, 026h, 0c7h, 044h, 00ch, 000h, 002h, 026h, 089h, 07ch, 00eh, 08bh
     7416    db  046h, 0f8h, 026h, 089h, 044h, 010h, 08bh, 046h, 0fah, 026h, 089h, 044h, 012h, 08ah, 046h, 0feh
     7417    db  026h, 088h, 044h, 008h, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 089h, 0f3h, 001h, 0c3h, 026h
     7418    db  00fh, 0b6h, 047h, 01eh, 089h, 0c3h, 0c1h, 0e3h, 002h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 001h
     7419    db  0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h
     7420    db  08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h
     7421    db  015h, 0feh, 0bbh, 008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h
     7422    db  050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h, 005h, 068h, 0afh, 006h, 06ah, 004h
     7423    db  0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h
     7424    db  001h, 0bbh, 008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0d0h, 006h, 06ah
     7425    db  004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h
     7426    db  018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h
     7427    db  026h, 08bh, 047h, 02ah, 089h, 046h, 0f6h, 026h, 00fh, 0b6h, 084h, 09eh, 001h, 089h, 046h, 0f4h
     7428    db  0c6h, 046h, 016h, 000h, 08bh, 056h, 014h, 030h, 0f6h, 04fh, 089h, 0f8h, 030h, 0e4h, 0c1h, 0e0h
     7429    db  008h, 009h, 0c2h, 089h, 056h, 014h, 0c1h, 0efh, 002h, 081h, 0e7h, 0c0h, 000h, 08bh, 046h, 0f6h
     7430    db  030h, 0e4h, 024h, 03fh, 009h, 0c7h, 089h, 0d0h, 030h, 0d0h, 009h, 0f8h, 089h, 046h, 014h, 08bh
     7431    db  056h, 012h, 030h, 0f6h, 089h, 0c8h, 0c1h, 0e0h, 008h, 02dh, 000h, 001h, 009h, 0c2h, 089h, 056h
     7432    db  012h, 089h, 0d0h, 030h, 0d0h, 08bh, 056h, 0f4h, 009h, 0c2h, 089h, 056h, 012h, 0e9h, 057h, 0fdh
     7433    db  00fh, 0b6h, 046h, 0feh, 099h, 02bh, 0c2h, 0d1h, 0f8h, 06bh, 0c0h, 006h, 08eh, 046h, 0fch, 001h
     7434    db  0c6h, 026h, 08bh, 094h, 0c2h, 001h, 083h, 0c2h, 007h, 0ech, 02ah, 0e4h, 024h, 0c0h, 03ch, 040h
     7435    db  075h, 003h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 0aah, 0e9h, 092h, 000h
     7436    db  00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh
     7437    db  026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h
     7438    db  031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 0f6h, 031h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h
     7439    db  0eeh, 031h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h
     7440    db  016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 008h, 00ch, 08ch
     7441    db  0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h
     7442    db  005h, 068h, 0eah, 006h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh
     7443    db  008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h
     7444    db  050h, 068h, 0d4h, 005h, 068h, 01dh, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h
     7445    db  0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h
     7446    db  0b8h, 040h, 000h, 0e8h, 05fh, 0bfh, 080h, 04eh, 01ch, 001h, 0c9h, 0c3h, 06eh, 057h, 086h, 057h
     7447    db  086h, 057h, 086h, 057h, 035h, 05bh, 0c9h, 058h, 086h, 057h, 0cfh, 058h, 035h, 05bh, 082h, 05bh
     7448    db  082h, 05bh, 082h, 05bh, 082h, 05bh, 04ah, 05bh, 082h, 05bh, 082h, 05bh
     7449_int13_harddisk_ext:                         ; 0xf56d5 LB 0x4c8
     7450    enter 00028h, 000h                        ; c8 28 00 00
    70627451    mov dx, strict word 0000eh                ; ba 0e 00
    70637452    mov ax, strict word 00040h                ; b8 40 00
    7064     call 0161ch                               ; e8 3e bc
    7065     mov word [bp-018h], ax                    ; 89 46 e8
     7453    call 0161ch                               ; e8 3a bf
     7454    mov word [bp-014h], ax                    ; 89 46 ec
    70667455    mov dx, strict word 0000eh                ; ba 0e 00
    70677456    mov ax, strict word 00040h                ; b8 40 00
    7068     call 0161ch                               ; e8 32 bc
    7069     mov di, 00122h                            ; bf 22 01
    7070     mov word [bp-004h], ax                    ; 89 46 fc
     7457    call 0161ch                               ; e8 2e bf
     7458    mov si, 00122h                            ; be 22 01
     7459    mov word [bp-026h], ax                    ; 89 46 da
    70717460    xor bx, bx                                ; 31 db
    70727461    mov dx, 0008eh                            ; ba 8e 00
    70737462    mov ax, strict word 00040h                ; b8 40 00
    7074     call 0160eh                               ; e8 13 bc
     7463    call 0160eh                               ; e8 0f bf
    70757464    mov ax, word [bp+00eh]                    ; 8b 46 0e
    70767465    xor ah, ah                                ; 30 e4
    70777466    cmp ax, 00080h                            ; 3d 80 00
    7078     jc short 05a0ah                           ; 72 05
     7467    jc short 0570eh                           ; 72 05
    70797468    cmp ax, 00090h                            ; 3d 90 00
    7080     jc short 05a29h                           ; 72 1f
     7469    jc short 0572ch                           ; 72 1e
    70817470    mov ax, word [bp+00eh]                    ; 8b 46 0e
    70827471    xor ah, ah                                ; 30 e4
    70837472    push ax                                   ; 50
    7084     mov al, byte [bp+017h]                    ; 8a 46 17
     7473    mov ax, word [bp+016h]                    ; 8b 46 16
     7474    shr ax, 008h                              ; c1 e8 08
    70857475    push ax                                   ; 50
    7086     mov ax, 0074bh                            ; b8 4b 07
    7087     push ax                                   ; 50
    7088     mov ax, 005e3h                            ; b8 e3 05
    7089     push ax                                   ; 50
    7090     mov ax, strict word 00004h                ; b8 04 00
    7091     push ax                                   ; 50
    7092     call 018fah                               ; e8 d7 be
     7476    push 0074bh                               ; 68 4b 07
     7477    push 005e3h                               ; 68 e3 05
     7478    push strict byte 00004h                   ; 6a 04
     7479    call 018e9h                               ; e8 c3 c1
    70937480    add sp, strict byte 0000ah                ; 83 c4 0a
    7094     jmp near 05eb0h                           ; e9 87 04
     7481    jmp near 05b60h                           ; e9 34 04
    70957482    mov ax, word [bp+00eh]                    ; 8b 46 0e
    70967483    xor ah, ah                                ; 30 e4
    7097     mov es, [bp-004h]                         ; 8e 46 fc
    7098     mov bx, di                                ; 89 fb
     7484    mov es, [bp-026h]                         ; 8e 46 da
     7485    mov bx, si                                ; 89 f3
    70997486    add bx, ax                                ; 01 c3
    7100     mov ch, byte [es:bx+0011fh]               ; 26 8a af 1f 01
    7101     cmp ch, 010h                              ; 80 fd 10
    7102     jc short 05a4dh                           ; 72 0e
     7487    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
     7488    cmp cl, 010h                              ; 80 f9 10
     7489    jc short 05752h                           ; 72 10
    71037490    push ax                                   ; 50
    7104     mov al, byte [bp+017h]                    ; 8a 46 17
     7491    mov ax, word [bp+016h]                    ; 8b 46 16
     7492    shr ax, 008h                              ; c1 e8 08
    71057493    push ax                                   ; 50
    7106     mov ax, 0074bh                            ; b8 4b 07
    7107     push ax                                   ; 50
    7108     mov ax, 0060eh                            ; b8 0e 06
    7109     jmp short 05a1bh                          ; eb ce
    7110     mov bl, byte [bp+017h]                    ; 8a 5e 17
    7111     xor bh, bh                                ; 30 ff
     7494    push 0074bh                               ; 68 4b 07
     7495    push 0060eh                               ; 68 0e 06
     7496    jmp short 05721h                          ; eb cf
     7497    mov bx, word [bp+016h]                    ; 8b 5e 16
     7498    shr bx, 008h                              ; c1 eb 08
    71127499    sub bx, strict byte 00041h                ; 83 eb 41
    71137500    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7114     jnbe short 05ac4h                         ; 77 6a
    7115     sal bx, 1                                 ; d1 e3
     7501    jnbe near 05b82h                          ; 0f 87 20 04
     7502    add bx, bx                                ; 01 db
    71167503    mov ax, word [bp+016h]                    ; 8b 46 16
    71177504    xor ah, ah                                ; 30 e4
    7118     jmp word [cs:bx+059afh]                   ; 2e ff a7 af 59
     7505    jmp word [cs:bx+056b5h]                   ; 2e ff a7 b5 56
    71197506    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    71207507    mov ax, word [bp+016h]                    ; 8b 46 16
     
    71237510    mov word [bp+016h], ax                    ; 89 46 16
    71247511    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7125     jmp near 05e87h                           ; e9 09 04
     7512    jmp near 05b39h                           ; e9 b3 03
    71267513    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    71277514    mov es, [bp+004h]                         ; 8e 46 04
    7128     mov si, bx                                ; 89 de
    7129     mov [bp-014h], es                         ; 8c 46 ec
     7515    mov di, bx                                ; 89 df
     7516    mov [bp-010h], es                         ; 8c 46 f0
    71307517    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     7518    mov word [bp-012h], ax                    ; 89 46 ee
     7519    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     7520    mov word [bp-018h], ax                    ; 89 46 e8
     7521    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    71317522    mov word [bp-016h], ax                    ; 89 46 ea
    7132     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    7133     mov word [bp-01ah], ax                    ; 89 46 e6
    7134     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    7135     mov word [bp-024h], ax                    ; 89 46 dc
    71367523    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    7137     mov word [bp-00eh], ax                    ; 89 46 f2
     7524    mov word [bp-00ah], ax                    ; 89 46 f6
    71387525    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
     7526    or ax, word [bp-00ah]                     ; 0b 46 f6
     7527    je short 057c7h                           ; 74 11
     7528    mov ax, word [bp+016h]                    ; 8b 46 16
     7529    shr ax, 008h                              ; c1 e8 08
     7530    push ax                                   ; 50
     7531    push 0074bh                               ; 68 4b 07
     7532    push 0075eh                               ; 68 5e 07
     7533    push strict byte 00007h                   ; 6a 07
     7534    jmp short 05811h                          ; eb 4a
     7535    mov es, [bp-010h]                         ; 8e 46 f0
     7536    mov ax, word [es:di+008h]                 ; 26 8b 45 08
    71397537    mov word [bp-00ah], ax                    ; 89 46 f6
    7140     or ax, word [bp-00eh]                     ; 0b 46 f2
    7141     je short 05ac7h                           ; 74 16
    7142     mov al, byte [bp+017h]                    ; 8a 46 17
    7143     xor ah, ah                                ; 30 e4
    7144     push ax                                   ; 50
    7145     mov ax, 0074bh                            ; b8 4b 07
    7146     push ax                                   ; 50
    7147     mov ax, 0075eh                            ; b8 5e 07
    7148     push ax                                   ; 50
    7149     mov ax, strict word 00007h                ; b8 07 00
    7150     jmp short 05b1ch                          ; eb 58
    7151     jmp near 05ecfh                           ; e9 08 04
    7152     mov es, [bp-014h]                         ; 8e 46 ec
    7153     mov ax, word [es:si+008h]                 ; 26 8b 44 08
    7154     mov word [bp-00eh], ax                    ; 89 46 f2
    7155     mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
    7156     mov word [bp-00ah], ax                    ; 89 46 f6
    7157     mov al, ch                                ; 88 e8
    7158     xor ah, ah                                ; 30 e4
    7159     mov dx, strict word 00018h                ; ba 18 00
    7160     imul dx                                   ; f7 ea
    7161     mov es, [bp-004h]                         ; 8e 46 fc
    7162     mov bx, di                                ; 89 fb
    7163     add bx, ax                                ; 01 c3
    7164     mov al, byte [es:bx+01eh]                 ; 26 8a 47 1e
     7538    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
     7539    movzx dx, cl                              ; 0f b6 d1
     7540    imul dx, dx, strict byte 00018h           ; 6b d2 18
     7541    mov es, [bp-026h]                         ; 8e 46 da
     7542    mov bx, si                                ; 89 f3
     7543    add bx, dx                                ; 01 d3
     7544    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
     7545    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
     7546    jnbe short 057f7h                         ; 77 0b
     7547    jne short 0581ah                          ; 75 2c
    71657548    mov dx, word [bp-00ah]                    ; 8b 56 f6
    7166     cmp dx, word [es:bx+034h]                 ; 26 3b 57 34
    7167     jnbe short 05b00h                         ; 77 0b
    7168     jne short 05b26h                          ; 75 2f
    7169     mov dx, word [bp-00eh]                    ; 8b 56 f2
    71707549    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7171     jc short 05b26h                           ; 72 26
    7172     mov bx, 00c16h                            ; bb 16 0c
     7550    jc short 0581ah                           ; 72 23
     7551    mov bx, 00c08h                            ; bb 08 0c
    71737552    mov cx, ds                                ; 8c d9
    71747553    mov ax, strict word 00004h                ; b8 04 00
    7175     call 018bdh                               ; e8 b2 bd
    7176     mov al, byte [bp+017h]                    ; 8a 46 17
    7177     xor ah, ah                                ; 30 e4
     7554    call 018aeh                               ; e8 ac c0
     7555    mov ax, word [bp+016h]                    ; 8b 46 16
     7556    shr ax, 008h                              ; c1 e8 08
    71787557    push ax                                   ; 50
    7179     mov ax, 0074bh                            ; b8 4b 07
    7180     push ax                                   ; 50
    7181     mov ax, 00787h                            ; b8 87 07
    7182     push ax                                   ; 50
    7183     mov ax, strict word 00004h                ; b8 04 00
    7184     push ax                                   ; 50
    7185     call 018fah                               ; e8 da bd
     7558    push 0074bh                               ; 68 4b 07
     7559    push 00787h                               ; 68 87 07
     7560    push strict byte 00004h                   ; 6a 04
     7561    call 018e9h                               ; e8 d5 c0
    71867562    add sp, strict byte 00008h                ; 83 c4 08
    7187     jmp near 05eb0h                           ; e9 8a 03
    7188     mov ah, byte [bp+017h]                    ; 8a 66 17
    7189     mov byte [bp-010h], ah                    ; 88 66 f0
    7190     mov byte [bp-00fh], 000h                  ; c6 46 f1 00
    7191     cmp word [bp-010h], strict byte 00044h    ; 83 7e f0 44
    7192     je short 05b3ch                           ; 74 06
    7193     cmp word [bp-010h], strict byte 00047h    ; 83 7e f0 47
    7194     jne short 05b3fh                          ; 75 03
    7195     jmp near 05e83h                           ; e9 44 03
    7196     mov es, [bp-004h]                         ; 8e 46 fc
    7197     mov word [es:di+014h], strict word 00000h ; 26 c7 45 14 00 00
    7198     mov word [es:di+016h], strict word 00000h ; 26 c7 45 16 00 00
    7199     mov word [es:di+018h], strict word 00000h ; 26 c7 45 18 00 00
    7200     mov dx, word [bp-00eh]                    ; 8b 56 f2
    7201     mov word [es:di], dx                      ; 26 89 15
     7563    jmp near 05b60h                           ; e9 46 03
     7564    mov dx, word [bp+016h]                    ; 8b 56 16
     7565    shr dx, 008h                              ; c1 ea 08
     7566    mov word [bp-00ch], dx                    ; 89 56 f4
     7567    cmp dx, strict byte 00044h                ; 83 fa 44
     7568    je near 05b35h                            ; 0f 84 0b 03
     7569    cmp dx, strict byte 00047h                ; 83 fa 47
     7570    je near 05b35h                            ; 0f 84 04 03
     7571    mov es, [bp-026h]                         ; 8e 46 da
     7572    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     7573    ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
     7574    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    72027575    mov dx, word [bp-00ah]                    ; 8b 56 f6
    7203     mov word [es:di+002h], dx                 ; 26 89 55 02
    7204     mov dx, word [bp-024h]                    ; 8b 56 dc
    7205     mov word [es:di+004h], dx                 ; 26 89 55 04
    7206     mov dx, word [bp-01ah]                    ; 8b 56 e6
    7207     mov word [es:di+006h], dx                 ; 26 89 55 06
    7208     mov dx, word [bp-016h]                    ; 8b 56 ea
    7209     mov word [es:di+00ah], dx                 ; 26 89 55 0a
    7210     mov word [es:di+00ch], 00200h             ; 26 c7 45 0c 00 02
    7211     mov word [es:di+012h], strict word 00000h ; 26 c7 45 12 00 00
    7212     mov byte [es:di+008h], ch                 ; 26 88 6d 08
    7213     mov bx, word [bp-010h]                    ; 8b 5e f0
    7214     sal bx, 1                                 ; d1 e3
    7215     xor ah, ah                                ; 30 e4
    7216     sal ax, 1                                 ; d1 e0
    7217     sal ax, 1                                 ; d1 e0
     7576    mov word [es:si], dx                      ; 26 89 14
     7577    mov word [es:si+002h], ax                 ; 26 89 44 02
     7578    mov ax, word [bp-016h]                    ; 8b 46 ea
     7579    mov word [es:si+004h], ax                 ; 26 89 44 04
     7580    mov ax, word [bp-018h]                    ; 8b 46 e8
     7581    mov word [es:si+006h], ax                 ; 26 89 44 06
     7582    mov ax, word [bp-012h]                    ; 8b 46 ee
     7583    mov word [es:si+00ah], ax                 ; 26 89 44 0a
     7584    mov word [es:si+00ch], 00200h             ; 26 c7 44 0c 00 02
     7585    mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
     7586    mov byte [es:si+008h], cl                 ; 26 88 4c 08
     7587    mov bx, word [bp-00ch]                    ; 8b 5e f4
     7588    add bx, bx                                ; 01 db
     7589    movzx ax, ch                              ; 0f b6 c5
     7590    sal ax, 002h                              ; c1 e0 02
    72187591    add bx, ax                                ; 01 c3
    72197592    push ES                                   ; 06
    7220     push di                                   ; 57
     7593    push si                                   ; 56
    72217594    call word [bx-00084h]                     ; ff 97 7c ff
    72227595    mov dx, ax                                ; 89 c2
    7223     mov es, [bp-004h]                         ; 8e 46 fc
    7224     mov ax, word [es:di+014h]                 ; 26 8b 45 14
    7225     mov word [bp-016h], ax                    ; 89 46 ea
    7226     mov es, [bp-014h]                         ; 8e 46 ec
    7227     mov word [es:si+002h], ax                 ; 26 89 44 02
     7596    mov es, [bp-026h]                         ; 8e 46 da
     7597    mov ax, word [es:si+014h]                 ; 26 8b 44 14
     7598    mov word [bp-012h], ax                    ; 89 46 ee
     7599    mov es, [bp-010h]                         ; 8e 46 f0
     7600    mov word [es:di+002h], ax                 ; 26 89 45 02
    72287601    test dl, dl                               ; 84 d2
    7229     je short 05b3ch                           ; 74 8c
    7230     mov bx, 00c16h                            ; bb 16 0c
     7602    je near 05b35h                            ; 0f 84 97 02
     7603    mov bx, 00c08h                            ; bb 08 0c
    72317604    mov cx, ds                                ; 8c d9
    72327605    mov ax, strict word 00004h                ; b8 04 00
    7233     call 018bdh                               ; e8 02 bd
    7234     mov al, dl                                ; 88 d0
    7235     xor ah, ah                                ; 30 e4
     7606    call 018aeh                               ; e8 05 c0
     7607    movzx ax, dl                              ; 0f b6 c2
    72367608    push ax                                   ; 50
    7237     push word [bp-010h]                       ; ff 76 f0
    7238     mov ax, 0074bh                            ; b8 4b 07
    7239     push ax                                   ; 50
    7240     mov ax, 006afh                            ; b8 af 06
    7241     push ax                                   ; 50
    7242     mov ax, strict word 00004h                ; b8 04 00
    7243     push ax                                   ; 50
    7244     call 018fah                               ; e8 28 bd
     7609    push word [bp-00ch]                       ; ff 76 f4
     7610    push 0074bh                               ; 68 4b 07
     7611    push 006afh                               ; 68 af 06
     7612    push strict byte 00004h                   ; 6a 04
     7613    call 018e9h                               ; e8 2e c0
    72457614    add sp, strict byte 0000ah                ; 83 c4 0a
    72467615    mov ax, word [bp+016h]                    ; 8b 46 16
    72477616    xor ah, ah                                ; 30 e4
    72487617    or ah, 00ch                               ; 80 cc 0c
    7249     jmp near 05eb8h                           ; e9 d8 02
     7618    jmp near 05b68h                           ; e9 9f 02
    72507619    or ah, 0b2h                               ; 80 cc b2
    7251     jmp near 05eb8h                           ; e9 d2 02
     7620    jmp near 05b68h                           ; e9 99 02
    72527621    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    72537622    mov ax, word [bp+004h]                    ; 8b 46 04
    7254     mov word [bp-008h], ax                    ; 89 46 f8
    7255     mov si, bx                                ; 89 de
    72567623    mov word [bp-006h], ax                    ; 89 46 fa
     7624    mov word [bp-004h], ax                    ; 89 46 fc
    72577625    mov es, ax                                ; 8e c0
    7258     mov ax, word [es:bx]                      ; 26 8b 07
    7259     mov word [bp-012h], ax                    ; 89 46 ee
     7626    mov di, bx                                ; 89 df
     7627    mov ax, word [es:di]                      ; 26 8b 05
     7628    mov word [bp-00eh], ax                    ; 89 46 f2
    72607629    cmp ax, strict word 0001ah                ; 3d 1a 00
    7261     jnc short 05c04h                          ; 73 03
    7262     jmp near 05eb0h                           ; e9 ac 02
    7263     jnc short 05c09h                          ; 73 03
    7264     jmp near 05c8fh                           ; e9 86 00
    7265     mov al, ch                                ; 88 e8
    7266     xor ah, ah                                ; 30 e4
    7267     mov dx, strict word 00018h                ; ba 18 00
    7268     imul dx                                   ; f7 ea
     7630    jc near 05b60h                            ; 0f 82 74 02
     7631    jc near 05973h                            ; 0f 82 83 00
     7632    movzx ax, cl                              ; 0f b6 c1
     7633    imul ax, ax, strict byte 00018h           ; 6b c0 18
     7634    mov es, [bp-026h]                         ; 8e 46 da
     7635    mov di, si                                ; 89 f7
     7636    add di, ax                                ; 01 c7
     7637    mov ax, word [es:di+02eh]                 ; 26 8b 45 2e
     7638    mov word [bp-028h], ax                    ; 89 46 d8
     7639    mov ax, word [es:di+02ch]                 ; 26 8b 45 2c
     7640    mov word [bp-01eh], ax                    ; 89 46 e2
     7641    mov ax, word [es:di+030h]                 ; 26 8b 45 30
     7642    mov word [bp-024h], ax                    ; 89 46 dc
     7643    mov ax, word [es:di+032h]                 ; 26 8b 45 32
     7644    mov word [bp-00ah], ax                    ; 89 46 f6
     7645    mov ax, word [es:di+034h]                 ; 26 8b 45 34
     7646    mov dx, word [es:di+024h]                 ; 26 8b 55 24
     7647    mov word [bp-022h], dx                    ; 89 56 de
     7648    mov es, [bp-006h]                         ; 8e 46 fa
     7649    mov di, bx                                ; 89 df
     7650    db  066h, 026h, 0c7h, 005h, 01ah, 000h, 002h, 000h
     7651    ; mov dword [es:di], strict dword 00002001ah ; 66 26 c7 05 1a 00 02 00
     7652    mov dx, word [bp-028h]                    ; 8b 56 d8
     7653    mov word [es:di+004h], dx                 ; 26 89 55 04
     7654    mov word [es:di+006h], strict word 00000h ; 26 c7 45 06 00 00
     7655    mov dx, word [bp-01eh]                    ; 8b 56 e2
     7656    mov word [es:di+008h], dx                 ; 26 89 55 08
     7657    mov word [es:di+00ah], strict word 00000h ; 26 c7 45 0a 00 00
     7658    mov dx, word [bp-024h]                    ; 8b 56 dc
     7659    mov word [es:di+00ch], dx                 ; 26 89 55 0c
     7660    mov word [es:di+00eh], strict word 00000h ; 26 c7 45 0e 00 00
     7661    mov dx, word [bp-022h]                    ; 8b 56 de
     7662    mov word [es:di+018h], dx                 ; 26 89 55 18
     7663    mov dx, word [bp-00ah]                    ; 8b 56 f6
     7664    mov word [es:di+010h], dx                 ; 26 89 55 10
     7665    mov word [es:di+012h], ax                 ; 26 89 45 12
     7666    db  066h, 026h, 0c7h, 045h, 014h, 000h, 000h, 000h, 000h
     7667    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
     7668    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
     7669    jc near 05a7fh                            ; 0f 82 04 01
    72697670    mov es, [bp-004h]                         ; 8e 46 fc
    7270     mov bx, di                                ; 89 fb
    7271     add bx, ax                                ; 01 c3
    7272     mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
    7273     mov dx, word [es:bx+02ch]                 ; 26 8b 57 2c
    7274     mov word [bp-022h], dx                    ; 89 56 de
    7275     mov dx, word [es:bx+030h]                 ; 26 8b 57 30
    7276     mov word [bp-026h], dx                    ; 89 56 da
    7277     mov dx, word [es:bx+032h]                 ; 26 8b 57 32
    7278     mov word [bp-00eh], dx                    ; 89 56 f2
    7279     mov dx, word [es:bx+034h]                 ; 26 8b 57 34
    7280     mov word [bp-00ah], dx                    ; 89 56 f6
    7281     mov dx, word [es:bx+024h]                 ; 26 8b 57 24
    7282     mov es, [bp-008h]                         ; 8e 46 f8
    7283     mov bx, si                                ; 89 f3
    7284     mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
    7285     mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00
    7286     mov word [es:bx+004h], ax                 ; 26 89 47 04
    7287     mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
    7288     mov ax, word [bp-022h]                    ; 8b 46 de
    7289     mov word [es:bx+008h], ax                 ; 26 89 47 08
    7290     mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
    7291     mov ax, word [bp-026h]                    ; 8b 46 da
    7292     mov word [es:bx+00ch], ax                 ; 26 89 47 0c
    7293     mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
    7294     mov word [es:bx+018h], dx                 ; 26 89 57 18
    7295     mov ax, word [bp-00eh]                    ; 8b 46 f2
    7296     mov word [es:bx+010h], ax                 ; 26 89 47 10
    7297     mov ax, word [bp-00ah]                    ; 8b 46 f6
    7298     mov word [es:bx+012h], ax                 ; 26 89 47 12
    7299     mov word [es:bx+014h], strict word 00000h ; 26 c7 47 14 00 00
    7300     mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00
    7301     cmp word [bp-012h], strict byte 0001eh    ; 83 7e ee 1e
    7302     jc short 05cfbh                           ; 72 66
    7303     mov es, [bp-006h]                         ; 8e 46 fa
    7304     mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
    7305     mov ax, word [bp-018h]                    ; 8b 46 e8
    7306     mov word [es:si+01ch], ax                 ; 26 89 44 1c
    7307     mov word [es:si+01ah], 00312h             ; 26 c7 44 1a 12 03
    7308     mov byte [bp-020h], ch                    ; 88 6e e0
    7309     mov byte [bp-01fh], 000h                  ; c6 46 e1 00
    7310     mov ax, word [bp-020h]                    ; 8b 46 e0
     7671    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     7672    mov ax, word [bp-014h]                    ; 8b 46 ec
     7673    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
     7674    mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
     7675    movzx ax, cl                              ; 0f b6 c1
     7676    mov word [bp-020h], ax                    ; 89 46 e0
     7677    cwd                                       ; 99
     7678    db  02bh, 0c2h
     7679    ; sub ax, dx                                ; 2b c2
     7680    sar ax, 1                                 ; d1 f8
     7681    movzx di, al                              ; 0f b6 f8
     7682    imul di, di, strict byte 00006h           ; 6b ff 06
     7683    mov es, [bp-026h]                         ; 8e 46 da
     7684    add di, si                                ; 01 f7
     7685    mov ax, word [es:di+001c2h]               ; 26 8b 85 c2 01
     7686    mov word [bp-01ah], ax                    ; 89 46 e6
     7687    mov ax, word [es:di+001c4h]               ; 26 8b 85 c4 01
     7688    mov word [bp-01ch], ax                    ; 89 46 e4
     7689    mov ch, byte [es:di+001c1h]               ; 26 8a ad c1 01
     7690    imul di, word [bp-020h], strict byte 00018h ; 6b 7e e0 18
     7691    add di, si                                ; 01 f7
     7692    mov ah, byte [es:di+022h]                 ; 26 8a 65 22
     7693    mov al, byte [es:di+023h]                 ; 26 8a 45 23
     7694    test al, al                               ; 84 c0
     7695    jne short 059d1h                          ; 75 04
     7696    xor dx, dx                                ; 31 d2
     7697    jmp short 059d4h                          ; eb 03
     7698    mov dx, strict word 00008h                ; ba 08 00
     7699    or dl, 010h                               ; 80 ca 10
     7700    mov word [bp-008h], dx                    ; 89 56 f8
     7701    cmp ah, 001h                              ; 80 fc 01
     7702    db  00fh, 094h, 0c4h
     7703    ; sete ah                                   ; 0f 94 c4
     7704    movzx dx, ah                              ; 0f b6 d4
     7705    or word [bp-008h], dx                     ; 09 56 f8
     7706    cmp AL, strict byte 001h                  ; 3c 01
     7707    db  00fh, 094h, 0c4h
     7708    ; sete ah                                   ; 0f 94 c4
     7709    movzx dx, ah                              ; 0f b6 d4
     7710    or word [bp-008h], dx                     ; 09 56 f8
     7711    cmp AL, strict byte 003h                  ; 3c 03
     7712    jne short 059fah                          ; 75 05
     7713    mov ax, strict word 00003h                ; b8 03 00
     7714    jmp short 059fch                          ; eb 02
     7715    xor ax, ax                                ; 31 c0
     7716    or word [bp-008h], ax                     ; 09 46 f8
     7717    mov ax, word [bp-01ah]                    ; 8b 46 e6
     7718    mov es, [bp-026h]                         ; 8e 46 da
     7719    mov word [es:si+001f0h], ax               ; 26 89 84 f0 01
     7720    mov ax, word [bp-01ch]                    ; 8b 46 e4
     7721    mov word [es:si+001f2h], ax               ; 26 89 84 f2 01
     7722    movzx ax, cl                              ; 0f b6 c1
     7723    cwd                                       ; 99
     7724    mov di, strict word 00002h                ; bf 02 00
     7725    idiv di                                   ; f7 ff
     7726    or dl, 00eh                               ; 80 ca 0e
     7727    sal dx, 004h                              ; c1 e2 04
     7728    mov byte [es:si+001f4h], dl               ; 26 88 94 f4 01
     7729    mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
     7730    mov byte [es:si+001f6h], ch               ; 26 88 ac f6 01
     7731    mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
     7732    mov byte [es:si+001f9h], 000h             ; 26 c6 84 f9 01 00
     7733    mov ax, word [bp-008h]                    ; 8b 46 f8
     7734    mov word [es:si+001fah], ax               ; 26 89 84 fa 01
     7735    mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00
     7736    mov byte [es:si+001feh], 011h             ; 26 c6 84 fe 01 11
     7737    xor ch, ch                                ; 30 ed
     7738    mov byte [bp-002h], ch                    ; 88 6e fe
     7739    jmp short 05a60h                          ; eb 06
     7740    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
     7741    jnc short 05a75h                          ; 73 15
     7742    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     7743    add dx, 00312h                            ; 81 c2 12 03
     7744    mov ax, word [bp-014h]                    ; 8b 46 ec
     7745    call 01600h                               ; e8 92 bb
     7746    add ch, al                                ; 00 c5
     7747    inc byte [bp-002h]                        ; fe 46 fe
     7748    jmp short 05a5ah                          ; eb e5
     7749    neg ch                                    ; f6 dd
     7750    mov es, [bp-026h]                         ; 8e 46 da
     7751    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
     7752    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
     7753    jc near 05b35h                            ; 0f 82 ae 00
     7754    movzx ax, cl                              ; 0f b6 c1
    73117755    cwd                                       ; 99
    73127756    db  02bh, 0c2h
     
    73147758    sar ax, 1                                 ; d1 f8
    73157759    xor ah, ah                                ; 30 e4
    7316     mov dx, strict word 00006h                ; ba 06 00
    7317     imul dx                                   ; f7 ea
     7760    imul ax, ax, strict byte 00006h           ; 6b c0 06
     7761    mov es, [bp-026h]                         ; 8e 46 da
     7762    add si, ax                                ; 01 c6
     7763    mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
     7764    mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
    73187765    mov es, [bp-004h]                         ; 8e 46 fc
    7319     mov bx, di                                ; 89 fb
    7320     add bx, ax                                ; 01 c3
    7321     mov ax, word [es:bx+001c2h]               ; 26 8b 87 c2 01
    7322     mov word [bp-01ch], ax                    ; 89 46 e4
    7323     mov ax, word [es:bx+001c4h]               ; 26 8b 87 c4 01
    7324     mov word [bp-01eh], ax                    ; 89 46 e2
    7325     mov al, byte [es:bx+001c1h]               ; 26 8a 87 c1 01
    7326     mov byte [bp-002h], al                    ; 88 46 fe
    7327     mov ax, word [bp-020h]                    ; 8b 46 e0
    7328     mov dx, strict word 00018h                ; ba 18 00
    7329     imul dx                                   ; f7 ea
    7330     mov bx, di                                ; 89 fb
    7331     add bx, ax                                ; 01 c3
    7332     mov ah, byte [es:bx+022h]                 ; 26 8a 67 22
    7333     mov al, byte [es:bx+023h]                 ; 26 8a 47 23
     7766    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
     7767    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
     7768    ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00
     7769    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    73347770    test al, al                               ; 84 c0
    7335     jne short 05cfeh                          ; 75 07
    7336     xor dx, dx                                ; 31 d2
    7337     jmp short 05d01h                          ; eb 06
    7338     jmp near 05db4h                           ; e9 b6 00
    7339     mov dx, strict word 00008h                ; ba 08 00
    7340     or dl, 010h                               ; 80 ca 10
    7341     mov word [bp-00ch], dx                    ; 89 56 f4
    7342     cmp ah, 001h                              ; 80 fc 01
    7343     jne short 05d11h                          ; 75 05
    7344     mov dx, strict word 00001h                ; ba 01 00
    7345     jmp short 05d13h                          ; eb 02
    7346     xor dx, dx                                ; 31 d2
    7347     or word [bp-00ch], dx                     ; 09 56 f4
    7348     cmp AL, strict byte 001h                  ; 3c 01
    7349     jne short 05d1fh                          ; 75 05
    7350     mov dx, strict word 00001h                ; ba 01 00
    7351     jmp short 05d21h                          ; eb 02
    7352     xor dx, dx                                ; 31 d2
    7353     or word [bp-00ch], dx                     ; 09 56 f4
    7354     cmp AL, strict byte 003h                  ; 3c 03
    7355     jne short 05d2dh                          ; 75 05
    7356     mov ax, strict word 00003h                ; b8 03 00
    7357     jmp short 05d2fh                          ; eb 02
    7358     xor ax, ax                                ; 31 c0
    7359     or word [bp-00ch], ax                     ; 09 46 f4
    7360     mov ax, word [bp-01ch]                    ; 8b 46 e4
     7771    jne short 05ac7h                          ; 75 09
     7772    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
     7773    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
    73617774    mov es, [bp-004h]                         ; 8e 46 fc
    7362     mov word [es:di+001f0h], ax               ; 26 89 85 f0 01
    7363     mov ax, word [bp-01eh]                    ; 8b 46 e2
    7364     mov word [es:di+001f2h], ax               ; 26 89 85 f2 01
    7365     mov al, ch                                ; 88 e8
    7366     xor ah, ah                                ; 30 e4
    7367     cwd                                       ; 99
    7368     mov bx, strict word 00002h                ; bb 02 00
    7369     idiv bx                                   ; f7 fb
    7370     or dl, 00eh                               ; 80 ca 0e
    7371     mov CL, strict byte 004h                  ; b1 04
    7372     sal dx, CL                                ; d3 e2
    7373     mov byte [es:di+001f4h], dl               ; 26 88 95 f4 01
    7374     mov byte [es:di+001f5h], 0cbh             ; 26 c6 85 f5 01 cb
    7375     mov al, byte [bp-002h]                    ; 8a 46 fe
    7376     mov byte [es:di+001f6h], al               ; 26 88 85 f6 01
    7377     mov word [es:di+001f7h], strict word 00001h ; 26 c7 85 f7 01 01 00
    7378     mov byte [es:di+001f9h], 000h             ; 26 c6 85 f9 01 00
    7379     mov ax, word [bp-00ch]                    ; 8b 46 f4
    7380     mov word [es:di+001fah], ax               ; 26 89 85 fa 01
    7381     mov word [es:di+001fch], strict word 00000h ; 26 c7 85 fc 01 00 00
    7382     mov byte [es:di+001feh], 011h             ; 26 c6 85 fe 01 11
    7383     xor bl, bl                                ; 30 db
    7384     xor bh, bh                                ; 30 ff
    7385     jmp short 05d96h                          ; eb 05
    7386     cmp bh, 00fh                              ; 80 ff 0f
    7387     jnc short 05daah                          ; 73 14
    7388     mov dl, bh                                ; 88 fa
    7389     xor dh, dh                                ; 30 f6
    7390     add dx, 00312h                            ; 81 c2 12 03
    7391     mov ax, word [bp-018h]                    ; 8b 46 e8
    7392     call 01600h                               ; e8 5c b8
    7393     add bl, al                                ; 00 c3
    7394     db  0feh, 0c7h
    7395     ; inc bh                                    ; fe c7
    7396     jmp short 05d91h                          ; eb e7
    7397     neg bl                                    ; f6 db
    7398     mov es, [bp-004h]                         ; 8e 46 fc
    7399     mov byte [es:di+001ffh], bl               ; 26 88 9d ff 01
    7400     cmp word [bp-012h], strict byte 00042h    ; 83 7e ee 42
    7401     jnc short 05dbdh                          ; 73 03
    7402     jmp near 05e83h                           ; e9 c6 00
    7403     mov al, ch                                ; 88 e8
    7404     xor ah, ah                                ; 30 e4
    7405     cwd                                       ; 99
    7406     db  02bh, 0c2h
    7407     ; sub ax, dx                                ; 2b c2
    7408     sar ax, 1                                 ; d1 f8
    7409     xor ah, ah                                ; 30 e4
    7410     mov dx, strict word 00006h                ; ba 06 00
    7411     imul dx                                   ; f7 ea
    7412     mov es, [bp-004h]                         ; 8e 46 fc
    7413     add di, ax                                ; 01 c7
    7414     mov al, byte [es:di+001c0h]               ; 26 8a 85 c0 01
    7415     mov dx, word [es:di+001c2h]               ; 26 8b 95 c2 01
    7416     mov es, [bp-006h]                         ; 8e 46 fa
    7417     mov word [es:si], strict word 00042h      ; 26 c7 04 42 00
    7418     mov word [es:si+01eh], 0beddh             ; 26 c7 44 1e dd be
    7419     mov word [es:si+020h], strict word 00024h ; 26 c7 44 20 24 00
    7420     mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
     7775    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
     7776    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
     7777    db  066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h
     7778    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    74217779    test al, al                               ; 84 c0
    7422     jne short 05e06h                          ; 75 0c
    7423     mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    7424     mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
    7425     mov es, [bp-006h]                         ; 8e 46 fa
    7426     mov word [es:si+028h], 05441h             ; 26 c7 44 28 41 54
    7427     mov word [es:si+02ah], 02041h             ; 26 c7 44 2a 41 20
    7428     mov word [es:si+02ch], 02020h             ; 26 c7 44 2c 20 20
    7429     mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    7430     test al, al                               ; 84 c0
    7431     jne short 05e3bh                          ; 75 16
    7432     mov word [es:si+030h], dx                 ; 26 89 54 30
    7433     mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
    7434     mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00
    7435     mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00
    7436     mov al, ch                                ; 88 e8
     7780    jne short 05af3h                          ; 75 13
     7781    mov word [es:bx+030h], dx                 ; 26 89 57 30
     7782    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     7783    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
     7784    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
     7785    mov al, cl                                ; 88 c8
    74377786    and AL, strict byte 001h                  ; 24 01
    74387787    xor ah, ah                                ; 30 e4
    7439     mov es, [bp-006h]                         ; 8e 46 fa
    7440     mov word [es:si+038h], ax                 ; 26 89 44 38
    7441     mov word [es:si+03ah], strict word 00000h ; 26 c7 44 3a 00 00
    7442     mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00
    7443     mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00
    7444     xor bl, bl                                ; 30 db
    7445     mov BH, strict byte 01eh                  ; b7 1e
    7446     jmp short 05e65h                          ; eb 05
    7447     cmp bh, 040h                              ; 80 ff 40
    7448     jnc short 05e7ah                          ; 73 15
    7449     mov al, bh                                ; 88 f8
    7450     xor ah, ah                                ; 30 e4
    7451     mov dx, word [bp+00ah]                    ; 8b 56 0a
    7452     add dx, ax                                ; 01 c2
     7788    mov es, [bp-004h]                         ; 8e 46 fc
     7789    mov word [es:bx+038h], ax                 ; 26 89 47 38
     7790    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
     7791    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
     7792    mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
     7793    xor cl, cl                                ; 30 c9
     7794    mov CH, strict byte 01eh                  ; b5 1e
     7795    jmp short 05b1ah                          ; eb 05
     7796    cmp ch, 040h                              ; 80 fd 40
     7797    jnc short 05b2ch                          ; 73 12
     7798    movzx dx, ch                              ; 0f b6 d5
     7799    add dx, word [bp+00ah]                    ; 03 56 0a
    74537800    mov ax, word [bp+004h]                    ; 8b 46 04
    7454     call 01600h                               ; e8 8c b7
    7455     add bl, al                                ; 00 c3
    7456     db  0feh, 0c7h
    7457     ; inc bh                                    ; fe c7
    7458     jmp short 05e60h                          ; eb e6
    7459     neg bl                                    ; f6 db
    7460     mov es, [bp-006h]                         ; 8e 46 fa
    7461     mov byte [es:si+041h], bl                 ; 26 88 5c 41
     7801    call 01600h                               ; e8 da ba
     7802    add cl, al                                ; 00 c1
     7803    db  0feh, 0c5h
     7804    ; inc ch                                    ; fe c5
     7805    jmp short 05b15h                          ; eb e9
     7806    neg cl                                    ; f6 d9
     7807    mov es, [bp-004h]                         ; 8e 46 fc
     7808    mov byte [es:bx+041h], cl                 ; 26 88 4f 41
    74627809    mov byte [bp+017h], 000h                  ; c6 46 17 00
    74637810    xor bx, bx                                ; 31 db
    74647811    mov dx, strict word 00074h                ; ba 74 00
    74657812    mov ax, strict word 00040h                ; b8 40 00
    7466     call 0160eh                               ; e8 7c b7
     7813    call 0160eh                               ; e8 ca ba
    74677814    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    7468     mov sp, bp                                ; 89 ec
    7469     pop bp                                    ; 5d
     7815    leave                                     ; c9
    74707816    retn                                      ; c3
    74717817    cmp ax, strict word 00006h                ; 3d 06 00
    7472     je short 05e83h                           ; 74 e4
     7818    je short 05b35h                           ; 74 e6
    74737819    cmp ax, strict word 00001h                ; 3d 01 00
    7474     jc short 05eb0h                           ; 72 0c
    7475     jbe short 05e83h                          ; 76 dd
     7820    jc short 05b60h                           ; 72 0c
     7821    jbe short 05b35h                          ; 76 df
    74767822    cmp ax, strict word 00003h                ; 3d 03 00
    7477     jc short 05eb0h                           ; 72 05
     7823    jc short 05b60h                           ; 72 05
    74787824    cmp ax, strict word 00004h                ; 3d 04 00
    7479     jbe short 05e83h                          ; 76 d3
     7825    jbe short 05b35h                          ; 76 d5
    74807826    mov ax, word [bp+016h]                    ; 8b 46 16
    74817827    xor ah, ah                                ; 30 e4
    74827828    or ah, 001h                               ; 80 cc 01
    74837829    mov word [bp+016h], ax                    ; 89 46 16
    7484     mov bl, byte [bp+017h]                    ; 8a 5e 17
     7830    mov bx, word [bp+016h]                    ; 8b 5e 16
     7831    shr bx, 008h                              ; c1 eb 08
    74857832    xor bh, bh                                ; 30 ff
    74867833    mov dx, strict word 00074h                ; ba 74 00
    74877834    mov ax, strict word 00040h                ; b8 40 00
    7488     call 0160eh                               ; e8 45 b7
     7835    call 0160eh                               ; e8 92 ba
    74897836    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7490     jmp short 05e96h                          ; eb c7
    7491     mov bx, 00c16h                            ; bb 16 0c
     7837    leave                                     ; c9
     7838    retn                                      ; c3
     7839    mov bx, 00c08h                            ; bb 08 0c
    74927840    mov cx, ds                                ; 8c d9
    74937841    mov ax, strict word 00004h                ; b8 04 00
    7494     call 018bdh                               ; e8 e3 b9
    7495     mov al, byte [bp+017h]                    ; 8a 46 17
    7496     xor ah, ah                                ; 30 e4
     7842    call 018aeh                               ; e8 21 bd
     7843    mov ax, word [bp+016h]                    ; 8b 46 16
     7844    shr ax, 008h                              ; c1 e8 08
    74977845    push ax                                   ; 50
    7498     mov ax, 0074bh                            ; b8 4b 07
    7499     push ax                                   ; 50
    7500     mov ax, 0071dh                            ; b8 1d 07
    7501     jmp near 05b18h                           ; e9 2e fc
    7502 _int14_function:                             ; 0xf5eea LB 0x156
     7846    push 0074bh                               ; 68 4b 07
     7847    push 0071dh                               ; 68 1d 07
     7848    jmp near 0580fh                           ; e9 72 fc
     7849_int14_function:                             ; 0xf5b9d LB 0x154
    75037850    push si                                   ; 56
    75047851    push bp                                   ; 55
     
    75067853    sti                                       ; fb
    75077854    mov dx, word [bp+010h]                    ; 8b 56 10
    7508     sal dx, 1                                 ; d1 e2
    7509     mov ax, strict word 00040h                ; b8 40 00
    7510     call 0161ch                               ; e8 22 b7
     7855    add dx, dx                                ; 01 d2
     7856    mov ax, strict word 00040h                ; b8 40 00
     7857    call 0161ch                               ; e8 6f ba
    75117858    mov si, ax                                ; 89 c6
    75127859    mov bx, ax                                ; 89 c3
     
    75147861    add dx, strict byte 0007ch                ; 83 c2 7c
    75157862    mov ax, strict word 00040h                ; b8 40 00
    7516     call 01600h                               ; e8 f6 b6
     7863    call 01600h                               ; e8 43 ba
    75177864    mov cl, al                                ; 88 c1
    75187865    cmp word [bp+010h], strict byte 00004h    ; 83 7e 10 04
    7519     jnc short 05f16h                          ; 73 04
     7866    jnc near 05ceah                           ; 0f 83 23 01
    75207867    test si, si                               ; 85 f6
    7521     jnbe short 05f19h                         ; 77 03
    7522     jmp near 06039h                           ; e9 20 01
     7868    jbe near 05ceah                           ; 0f 86 1d 01
    75237869    mov al, byte [bp+015h]                    ; 8a 46 15
    75247870    cmp AL, strict byte 001h                  ; 3c 01
    7525     jc short 05f2dh                           ; 72 0d
    7526     jbe short 05f88h                          ; 76 66
     7871    jc short 05be5h                           ; 72 11
     7872    jbe short 05c39h                          ; 76 63
    75277873    cmp AL, strict byte 003h                  ; 3c 03
    7528     je short 05f80h                           ; 74 5a
     7874    je near 05cd2h                            ; 0f 84 f6 00
    75297875    cmp AL, strict byte 002h                  ; 3c 02
    7530     je short 05f83h                           ; 74 59
    7531     jmp near 06032h                           ; e9 05 01
     7876    je near 05c87h                            ; 0f 84 a5 00
     7877    jmp near 05ce3h                           ; e9 fe 00
    75327878    test al, al                               ; 84 c0
    7533     jne short 05f85h                          ; 75 54
     7879    jne near 05ce3h                           ; 0f 85 f8 00
    75347880    lea dx, [bx+003h]                         ; 8d 57 03
    75357881    in AL, DX                                 ; ec
     
    75407886    mov al, byte [bp+014h]                    ; 8a 46 14
    75417887    and AL, strict byte 0e0h                  ; 24 e0
    7542     xor ah, ah                                ; 30 e4
    7543     mov CL, strict byte 005h                  ; b1 05
    7544     sar ax, CL                                ; d3 f8
    7545     mov cx, ax                                ; 89 c1
     7888    movzx cx, al                              ; 0f b6 c8
     7889    sar cx, 005h                              ; c1 f9 05
    75467890    mov ax, 00600h                            ; b8 00 06
    75477891    sar ax, CL                                ; d3 f8
    75487892    mov dx, bx                                ; 89 da
    75497893    out DX, AL                                ; ee
    7550     mov al, ah                                ; 88 e0
     7894    shr ax, 008h                              ; c1 e8 08
    75517895    lea dx, [bx+001h]                         ; 8d 57 01
    75527896    out DX, AL                                ; ee
     
    75657909    ; sub ah, ah                                ; 2a e4
    75667910    mov byte [bp+014h], al                    ; 88 46 14
    7567     jmp near 06012h                           ; e9 9f 00
     7911    jmp near 05cc3h                           ; e9 97 00
    75687912    mov AL, strict byte 017h                  ; b0 17
    75697913    mov dx, bx                                ; 89 da
     
    75727916    mov AL, strict byte 004h                  ; b0 04
    75737917    out DX, AL                                ; ee
    7574     jmp short 05f55h                          ; eb d5
    7575     jmp near 06021h                           ; e9 9e 00
    7576     jmp short 05fd6h                          ; eb 51
    7577     jmp near 06032h                           ; e9 aa 00
     7918    jmp short 05c0eh                          ; eb d5
    75787919    mov dx, strict word 0006ch                ; ba 6c 00
    75797920    mov ax, strict word 00040h                ; b8 40 00
    7580     call 0161ch                               ; e8 8b b6
     7921    call 0161ch                               ; e8 da b9
    75817922    mov si, ax                                ; 89 c6
    75827923    lea dx, [bx+005h]                         ; 8d 57 05
     
    75867927    and ax, strict word 00060h                ; 25 60 00
    75877928    cmp ax, strict word 00060h                ; 3d 60 00
    7588     je short 05fb8h                           ; 74 17
     7929    je short 05c69h                           ; 74 17
    75897930    test cl, cl                               ; 84 c9
    7590     je short 05fb8h                           ; 74 13
     7931    je short 05c69h                           ; 74 13
    75917932    mov dx, strict word 0006ch                ; ba 6c 00
    75927933    mov ax, strict word 00040h                ; b8 40 00
    7593     call 0161ch                               ; e8 6e b6
     7934    call 0161ch                               ; e8 bd b9
    75947935    cmp ax, si                                ; 39 f0
    7595     je short 05f93h                           ; 74 e1
     7936    je short 05c44h                           ; 74 e1
    75967937    mov si, ax                                ; 89 c6
    75977938    db  0feh, 0c9h
    75987939    ; dec cl                                    ; fe c9
    7599     jmp short 05f93h                          ; eb db
     7940    jmp short 05c44h                          ; eb db
    76007941    test cl, cl                               ; 84 c9
    7601     je short 05fc2h                           ; 74 06
     7942    je short 05c73h                           ; 74 06
    76027943    mov al, byte [bp+014h]                    ; 8a 46 14
    76037944    mov dx, bx                                ; 89 da
     
    76097950    mov byte [bp+015h], al                    ; 88 46 15
    76107951    test cl, cl                               ; 84 c9
    7611     jne short 06012h                          ; 75 43
     7952    jne short 05cc3h                          ; 75 43
    76127953    or AL, strict byte 080h                   ; 0c 80
    76137954    mov byte [bp+015h], al                    ; 88 46 15
    7614     jmp short 06012h                          ; eb 3c
     7955    jmp short 05cc3h                          ; eb 3c
    76157956    mov dx, strict word 0006ch                ; ba 6c 00
    76167957    mov ax, strict word 00040h                ; b8 40 00
    7617     call 0161ch                               ; e8 3d b6
     7958    call 0161ch                               ; e8 8c b9
    76187959    mov si, ax                                ; 89 c6
    76197960    lea dx, [bx+005h]                         ; 8d 57 05
     
    76227963    ; sub ah, ah                                ; 2a e4
    76237964    test AL, strict byte 001h                 ; a8 01
    7624     jne short 06002h                          ; 75 17
     7965    jne short 05cb3h                          ; 75 17
    76257966    test cl, cl                               ; 84 c9
    7626     je short 06002h                           ; 74 13
     7967    je short 05cb3h                           ; 74 13
    76277968    mov dx, strict word 0006ch                ; ba 6c 00
    76287969    mov ax, strict word 00040h                ; b8 40 00
    7629     call 0161ch                               ; e8 24 b6
     7970    call 0161ch                               ; e8 73 b9
    76307971    cmp ax, si                                ; 39 f0
    7631     je short 05fe1h                           ; 74 e5
     7972    je short 05c92h                           ; 74 e5
    76327973    mov si, ax                                ; 89 c6
    76337974    db  0feh, 0c9h
    76347975    ; dec cl                                    ; fe c9
    7635     jmp short 05fe1h                          ; eb df
     7976    jmp short 05c92h                          ; eb df
    76367977    test cl, cl                               ; 84 c9
    7637     je short 06019h                           ; 74 13
     7978    je short 05ccah                           ; 74 13
    76387979    mov byte [bp+015h], 000h                  ; c6 46 15 00
    76397980    mov dx, bx                                ; 89 da
     
    76507991    db  02ah, 0e4h
    76517992    ; sub ah, ah                                ; 2a e4
    7652     jmp short 05fd1h                          ; eb b0
     7993    jmp short 05c82h                          ; eb b0
    76537994    lea dx, [si+005h]                         ; 8d 54 05
    76547995    in AL, DX                                 ; ec
     
    76608001    db  02ah, 0e4h
    76618002    ; sub ah, ah                                ; 2a e4
    7662     jmp short 0600fh                          ; eb dd
     8003    jmp short 05cc0h                          ; eb dd
    76638004    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    76648005    pop bp                                    ; 5d
     
    76698010    pop si                                    ; 5e
    76708011    retn                                      ; c3
    7671 set_enable_a20_:                             ; 0xf6040 LB 0x2d
     8012set_enable_a20_:                             ; 0xf5cf1 LB 0x29
    76728013    push bx                                   ; 53
    76738014    push cx                                   ; 51
     
    76828023    mov cl, al                                ; 88 c1
    76838024    test bx, bx                               ; 85 db
    7684     je short 06059h                           ; 74 05
     8025    je short 05d0ah                           ; 74 05
    76858026    or AL, strict byte 002h                   ; 0c 02
    76868027    out DX, AL                                ; ee
    7687     jmp short 0605ch                          ; eb 03
     8028    jmp short 05d0dh                          ; eb 03
    76888029    and AL, strict byte 0fdh                  ; 24 fd
    76898030    out DX, AL                                ; ee
    76908031    test cl, 002h                             ; f6 c1 02
    7691     je short 06066h                           ; 74 05
    7692     mov ax, strict word 00001h                ; b8 01 00
    7693     jmp short 06068h                          ; eb 02
    7694     xor ax, ax                                ; 31 c0
     8032    db  00fh, 095h, 0c0h
     8033    ; setne al                                  ; 0f 95 c0
     8034    xor ah, ah                                ; 30 e4
    76958035    pop bp                                    ; 5d
    76968036    pop dx                                    ; 5a
     
    76988038    pop bx                                    ; 5b
    76998039    retn                                      ; c3
    7700 set_e820_range_:                             ; 0xf606d LB 0x8b
     8040set_e820_range_:                             ; 0xf5d1a LB 0x8c
    77018041    push si                                   ; 56
    77028042    push bp                                   ; 55
    77038043    mov bp, sp                                ; 89 e5
     8044    mov es, ax                                ; 8e c0
    77048045    mov si, dx                                ; 89 d6
    7705     mov es, ax                                ; 8e c0
    77068046    mov word [es:si], bx                      ; 26 89 1c
    77078047    mov word [es:si+002h], cx                 ; 26 89 4c 02
    7708     mov al, byte [bp+00ah]                    ; 8a 46 0a
    7709     xor ah, ah                                ; 30 e4
     8048    movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
    77108049    mov word [es:si+004h], ax                 ; 26 89 44 04
    77118050    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
    77128051    sub word [bp+006h], bx                    ; 29 5e 06
    77138052    sbb word [bp+008h], cx                    ; 19 4e 08
     8053    mov al, byte [bp+00ah]                    ; 8a 46 0a
    77148054    sub byte [bp+00ch], al                    ; 28 46 0c
    77158055    mov ax, word [bp+006h]                    ; 8b 46 06
     
    77178057    mov ax, word [bp+008h]                    ; 8b 46 08
    77188058    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    7719     mov al, byte [bp+00ch]                    ; 8a 46 0c
    7720     xor ah, ah                                ; 30 e4
     8059    movzx ax, byte [bp+00ch]                  ; 0f b6 46 0c
    77218060    mov word [es:si+00ch], ax                 ; 26 89 44 0c
    77228061    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
     
    77288067    retn 0000ah                               ; c2 0a 00
    77298068    in AL, DX                                 ; ec
    7730     jmp near 0229fh                           ; e9 d8 c1
     8069    jmp near 01f4dh                           ; e9 d8 c1
    77318070    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    77328071    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    77348073    inc cx                                    ; 41
    77358074    and AL, strict byte 000h                  ; 24 00
    7736     xchg bx, ax                               ; 93
    7737     db  065h, 034h, 061h
    7738     ; gs xor AL, strict byte 061h               ; 65 34 61
    7739     dec ax                                    ; 48
     8075    inc cx                                    ; 41
     8076    db  062h
     8077    in AL, strict byte 05dh                   ; e4 5d
     8078    neg word [di-077h]                        ; f7 5d 89
     8079    pop si                                    ; 5e
     8080    db  08fh, 05eh, 094h
     8081    ; pop word [bp-06ch]                        ; 8f 5e 94
     8082    pop si                                    ; 5e
     8083    cwd                                       ; 99
     8084    pop si                                    ; 5e
     8085    cmp bx, word [bx-028h]                    ; 3b 5f d8
     8086    pushaw                                    ; 60
     8087    db  0feh
     8088    pushaw                                    ; 60
     8089    test word [bp-07bh], bx                   ; 85 5e 85
     8090    pop si                                    ; 5e
     8091    retf                                      ; cb
    77408092    popaw                                     ; 61
    7741     frstor [bx+di-01dh]                       ; dd 61 e3
    7742     popaw                                     ; 61
    7743     call 04e42h                               ; e8 61 ed
    7744     popaw                                     ; 61
    7745     xchg bp, ax                               ; 95
    7746     bound bp, [bx]                            ; 62 2f
    7747     db  064h, 04eh
    7748     ; fs dec si                                 ; 64 4e
    7749     fldenv [fs:bx+di-027h]                    ; 64 d9 61 d9
    7750     popaw                                     ; 61
    7751     sbb byte [di+043h], ah                    ; 18 65 43
    7752     db  065h, 056h
    7753     ; gs push si                                ; 65 56
    7754     db  065h, 065h, 065h, 0ddh, 061h, 06eh
    7755     ; frstor [gs:bx+di+06eh]                    ; 65 65 65 dd 61 6e
    7756     db  065h
    7757 _int15_function:                             ; 0xf60f8 LB 0x4ce
     8093    db  0f3h, 061h
     8094    ; rep popaw                                 ; f3 61
     8095    push ES                                   ; 06
     8096    bound dx, [di]                            ; 62 15
     8097    bound cx, [bx+di+01c5eh]                  ; 62 89 5e 1c
     8098    db  062h
     8099_int15_function:                             ; 0xf5da6 LB 0x4c9
    77588100    push si                                   ; 56
    77598101    push di                                   ; 57
    7760     push bp                                   ; 55
    7761     mov bp, sp                                ; 89 e5
    7762     mov al, byte [bp+017h]                    ; 8a 46 17
    7763     xor ah, ah                                ; 30 e4
    7764     mov dx, ax                                ; 89 c2
     8102    enter 00004h, 000h                        ; c8 04 00 00
     8103    mov ax, word [bp+016h]                    ; 8b 46 16
     8104    shr ax, 008h                              ; c1 e8 08
    77658105    cmp ax, 000ech                            ; 3d ec 00
    7766     jnbe short 0613eh                         ; 77 35
     8106    jnbe near 06241h                          ; 0f 87 88 04
    77678107    push CS                                   ; 0e
    77688108    pop ES                                    ; 07
    77698109    mov cx, strict word 00012h                ; b9 12 00
    7770     mov di, 060c3h                            ; bf c3 60
     8110    mov di, 05d71h                            ; bf 71 5d
    77718111    repne scasb                               ; f2 ae
    77728112    sal cx, 1                                 ; d1 e1
    77738113    mov di, cx                                ; 89 cf
    7774     mov si, word [cs:di+060d4h]               ; 2e 8b b5 d4 60
     8114    mov si, word [cs:di+05d82h]               ; 2e 8b b5 82 5d
    77758115    mov ax, word [bp+016h]                    ; 8b 46 16
    77768116    xor ah, ah                                ; 30 e4
     
    77858125    xor ah, ah                                ; 30 e4
    77868126    cmp ax, 000c0h                            ; 3d c0 00
    7787     je short 06141h                           ; 74 03
    7788     jmp near 06593h                           ; e9 52 04
     8127    jne near 06241h                           ; 0f 85 51 04
    77898128    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7790     jmp near 0653ah                           ; e9 f2 03
     8129    jmp near 061eah                           ; e9 f3 03
    77918130    mov dx, ax                                ; 89 c2
    77928131    cmp ax, strict word 00001h                ; 3d 01 00
    7793     jc short 0615dh                           ; 72 0e
    7794     jbe short 06171h                          ; 76 20
     8132    jc short 05e0ch                           ; 72 0e
     8133    jbe short 05e20h                          ; 76 20
    77958134    cmp ax, strict word 00003h                ; 3d 03 00
    7796     je short 0619eh                           ; 74 48
     8135    je short 05e4dh                           ; 74 48
    77978136    cmp ax, strict word 00002h                ; 3d 02 00
    7798     je short 06181h                           ; 74 26
    7799     jmp short 061abh                          ; eb 4e
     8137    je short 05e30h                           ; 74 26
     8138    jmp short 05e5ah                          ; eb 4e
    78008139    test ax, ax                               ; 85 c0
    7801     jne short 061abh                          ; 75 4a
     8140    jne short 05e5ah                          ; 75 4a
    78028141    xor ax, ax                                ; 31 c0
    7803     call 06040h                               ; e8 da fe
     8142    call 05cf1h                               ; e8 dc fe
    78048143    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    78058144    mov byte [bp+017h], 000h                  ; c6 46 17 00
    7806     jmp near 061d9h                           ; e9 68 00
     8145    jmp near 05e85h                           ; e9 65 00
    78078146    mov ax, strict word 00001h                ; b8 01 00
    7808     call 06040h                               ; e8 c9 fe
     8147    call 05cf1h                               ; e8 cb fe
    78098148    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    78108149    mov byte [bp+017h], dh                    ; 88 76 17
    7811     jmp near 061d9h                           ; e9 58 00
     8150    jmp near 05e85h                           ; e9 55 00
    78128151    mov dx, 00092h                            ; ba 92 00
    78138152    in AL, DX                                 ; ec
     
    78218160    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    78228161    mov byte [bp+017h], ah                    ; 88 66 17
    7823     jmp near 061d9h                           ; e9 3b 00
     8162    jmp near 05e85h                           ; e9 38 00
    78248163    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    78258164    mov byte [bp+017h], ah                    ; 88 66 17
    78268165    mov word [bp+010h], ax                    ; 89 46 10
    7827     jmp near 061d9h                           ; e9 2e 00
    7828     mov bx, 00c16h                            ; bb 16 0c
     8166    jmp near 05e85h                           ; e9 2b 00
     8167    mov bx, 00c08h                            ; bb 08 0c
    78298168    mov cx, ds                                ; 8c d9
    78308169    mov ax, strict word 00004h                ; b8 04 00
    7831     call 018bdh                               ; e8 07 b7
     8170    call 018aeh                               ; e8 49 ba
    78328171    mov ax, word [bp+016h]                    ; 8b 46 16
    78338172    xor ah, ah                                ; 30 e4
    78348173    push ax                                   ; 50
    7835     mov ax, 007ach                            ; b8 ac 07
    7836     push ax                                   ; 50
    7837     mov ax, strict word 00004h                ; b8 04 00
    7838     push ax                                   ; 50
    7839     call 018fah                               ; e8 33 b7
     8174    push 007ach                               ; 68 ac 07
     8175    push strict byte 00004h                   ; 6a 04
     8176    call 018e9h                               ; e8 76 ba
    78408177    add sp, strict byte 00006h                ; 83 c4 06
    78418178    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    78448181    or ah, 086h                               ; 80 cc 86
    78458182    mov word [bp+016h], ax                    ; 89 46 16
    7846     pop bp                                    ; 5d
     8183    leave                                     ; c9
    78478184    pop di                                    ; 5f
    78488185    pop si                                    ; 5e
    78498186    retn                                      ; c3
    78508187    mov word [bp+01ch], bx                    ; 89 5e 1c
    7851     jmp near 0628fh                           ; e9 ac 00
     8188    jmp near 05f35h                           ; e9 a6 00
    78528189    mov word [bp+01ch], bx                    ; 89 5e 1c
    7853     jmp short 061d9h                          ; eb f1
     8190    jmp short 05e85h                          ; eb f1
    78548191    mov word [bp+01ch], cx                    ; 89 4e 1c
    7855     jmp short 061d6h                          ; eb e9
     8192    jmp short 05e82h                          ; eb e9
    78568193    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    7857     je short 06262h                           ; 74 6f
     8194    je short 05f0bh                           ; 74 6c
    78588195    mov dx, 000a0h                            ; ba a0 00
    78598196    mov ax, strict word 00040h                ; b8 40 00
    7860     call 01600h                               ; e8 04 b4
     8197    call 01600h                               ; e8 58 b7
    78618198    test AL, strict byte 001h                 ; a8 01
    7862     jne short 0625fh                          ; 75 5f
     8199    jne near 061e1h                           ; 0f 85 33 03
    78638200    mov bx, strict word 00001h                ; bb 01 00
    78648201    mov dx, 000a0h                            ; ba a0 00
    78658202    mov ax, strict word 00040h                ; b8 40 00
    7866     call 0160eh                               ; e8 02 b4
     8203    call 0160eh                               ; e8 54 b7
    78678204    mov bx, word [bp+018h]                    ; 8b 5e 18
    78688205    mov dx, 00098h                            ; ba 98 00
    78698206    mov ax, strict word 00040h                ; b8 40 00
    7870     call 0162ah                               ; e8 12 b4
     8207    call 0162ah                               ; e8 64 b7
    78718208    mov bx, word [bp+010h]                    ; 8b 5e 10
    78728209    mov dx, 0009ah                            ; ba 9a 00
    78738210    mov ax, strict word 00040h                ; b8 40 00
    7874     call 0162ah                               ; e8 06 b4
     8211    call 0162ah                               ; e8 58 b7
    78758212    mov bx, word [bp+012h]                    ; 8b 5e 12
    78768213    mov dx, 0009ch                            ; ba 9c 00
    78778214    mov ax, strict word 00040h                ; b8 40 00
    7878     call 0162ah                               ; e8 fa b3
     8215    call 0162ah                               ; e8 4c b7
    78798216    mov bx, word [bp+014h]                    ; 8b 5e 14
    78808217    mov dx, 0009eh                            ; ba 9e 00
    78818218    mov ax, strict word 00040h                ; b8 40 00
    7882     call 0162ah                               ; e8 ee b3
     8219    call 0162ah                               ; e8 40 b7
    78838220    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    78848221    mov dx, 000a1h                            ; ba a1 00
     
    78898226    out DX, AL                                ; ee
    78908227    mov ax, strict word 0000bh                ; b8 0b 00
    7891     call 0165ch                               ; e8 0d b4
    7892     mov dl, al                                ; 88 c2
    7893     or dl, 040h                               ; 80 ca 40
    7894     xor dh, dh                                ; 30 f6
     8228    call 0165ch                               ; e8 5f b7
     8229    or AL, strict byte 040h                   ; 0c 40
     8230    movzx dx, al                              ; 0f b6 d0
    78958231    mov ax, strict word 0000bh                ; b8 0b 00
    7896     call 0166dh                               ; e8 11 b4
    7897     jmp near 061d9h                           ; e9 7a ff
    7898     jmp near 06531h                           ; e9 cf 02
     8232    call 0166dh                               ; e8 65 b7
     8233    jmp near 05e85h                           ; e9 7a ff
    78998234    cmp ax, strict word 00001h                ; 3d 01 00
    7900     jne short 06283h                          ; 75 1c
     8235    jne short 05f29h                          ; 75 19
    79018236    xor bx, bx                                ; 31 db
    79028237    mov dx, 000a0h                            ; ba a0 00
    79038238    mov ax, strict word 00040h                ; b8 40 00
    7904     call 0160eh                               ; e8 9c b3
     8239    call 0160eh                               ; e8 f3 b6
    79058240    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    79068241    mov ax, strict word 0000bh                ; b8 0b 00
    7907     call 0165ch                               ; e8 e0 b3
    7908     mov dl, al                                ; 88 c2
    7909     and dl, 0bfh                              ; 80 e2 bf
    7910     jmp short 06254h                          ; eb d1
     8242    call 0165ch                               ; e8 37 b7
     8243    and AL, strict byte 0bfh                  ; 24 bf
     8244    jmp short 05effh                          ; eb d6
    79118245    mov word [bp+01ch], bx                    ; 89 5e 1c
    79128246    mov ax, dx                                ; 89 d0
     
    79168250    or dx, ax                                 ; 09 c2
    79178251    mov word [bp+016h], dx                    ; 89 56 16
    7918     jmp near 061d9h                           ; e9 44 ff
     8252    jmp near 05e85h                           ; e9 4a ff
    79198253    cli                                       ; fa
    79208254    mov ax, strict word 00001h                ; b8 01 00
    7921     call 06040h                               ; e8 a4 fd
     8255    call 05cf1h                               ; e8 af fd
    79228256    mov di, ax                                ; 89 c7
    7923     mov CL, strict byte 004h                  ; b1 04
    79248257    mov ax, word [bp+018h]                    ; 8b 46 18
    7925     sal ax, CL                                ; d3 e0
    7926     mov si, word [bp+00ah]                    ; 8b 76 0a
    7927     add si, ax                                ; 01 c6
    7928     mov CL, strict byte 00ch                  ; b1 0c
     8258    sal ax, 004h                              ; c1 e0 04
     8259    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     8260    add cx, ax                                ; 01 c1
    79298261    mov dx, word [bp+018h]                    ; 8b 56 18
    7930     shr dx, CL                                ; d3 ea
    7931     mov cl, dl                                ; 88 d1
    7932     cmp si, ax                                ; 39 c6
    7933     jnc short 062b9h                          ; 73 02
    7934     db  0feh, 0c1h
    7935     ; inc cl                                    ; fe c1
     8262    shr dx, 00ch                              ; c1 ea 0c
     8263    mov byte [bp-002h], dl                    ; 88 56 fe
     8264    cmp cx, ax                                ; 39 c1
     8265    jnc short 05f61h                          ; 73 05
     8266    db  0feh, 0c2h
     8267    ; inc dl                                    ; fe c2
     8268    mov byte [bp-002h], dl                    ; 88 56 fe
    79368269    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79378270    add dx, strict byte 00008h                ; 83 c2 08
    79388271    mov ax, word [bp+018h]                    ; 8b 46 18
    79398272    mov bx, strict word 0002fh                ; bb 2f 00
    7940     call 0162ah                               ; e8 62 b3
     8273    call 0162ah                               ; e8 ba b6
    79418274    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79428275    add dx, strict byte 0000ah                ; 83 c2 0a
    79438276    mov ax, word [bp+018h]                    ; 8b 46 18
    7944     mov bx, si                                ; 89 f3
    7945     call 0162ah                               ; e8 54 b3
    7946     mov bl, cl                                ; 88 cb
    7947     xor bh, bh                                ; 30 ff
     8277    mov bx, cx                                ; 89 cb
     8278    call 0162ah                               ; e8 ac b6
     8279    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    79488280    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79498281    add dx, strict byte 0000ch                ; 83 c2 0c
    79508282    mov ax, word [bp+018h]                    ; 8b 46 18
    7951     call 0160eh                               ; e8 28 b3
     8283    call 0160eh                               ; e8 80 b6
    79528284    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79538285    add dx, strict byte 0000dh                ; 83 c2 0d
    79548286    mov ax, word [bp+018h]                    ; 8b 46 18
    79558287    mov bx, 00093h                            ; bb 93 00
    7956     call 0160eh                               ; e8 19 b3
     8288    call 0160eh                               ; e8 71 b6
    79578289    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79588290    add dx, strict byte 0000eh                ; 83 c2 0e
    79598291    mov ax, word [bp+018h]                    ; 8b 46 18
    79608292    xor bx, bx                                ; 31 db
    7961     call 0162ah                               ; e8 27 b3
     8293    call 0162ah                               ; e8 7f b6
    79628294    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79638295    add dx, strict byte 00020h                ; 83 c2 20
    79648296    mov ax, word [bp+018h]                    ; 8b 46 18
    79658297    mov bx, strict word 0ffffh                ; bb ff ff
    7966     call 0162ah                               ; e8 18 b3
     8298    call 0162ah                               ; e8 70 b6
    79678299    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79688300    add dx, strict byte 00022h                ; 83 c2 22
    79698301    mov ax, word [bp+018h]                    ; 8b 46 18
    79708302    xor bx, bx                                ; 31 db
    7971     call 0162ah                               ; e8 0a b3
     8303    call 0162ah                               ; e8 62 b6
    79728304    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79738305    add dx, strict byte 00024h                ; 83 c2 24
    79748306    mov ax, word [bp+018h]                    ; 8b 46 18
    79758307    mov bx, strict word 0000fh                ; bb 0f 00
    7976     call 0160eh                               ; e8 df b2
     8308    call 0160eh                               ; e8 37 b6
    79778309    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79788310    add dx, strict byte 00025h                ; 83 c2 25
    79798311    mov ax, word [bp+018h]                    ; 8b 46 18
    79808312    mov bx, 0009bh                            ; bb 9b 00
    7981     call 0160eh                               ; e8 d0 b2
     8313    call 0160eh                               ; e8 28 b6
    79828314    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79838315    add dx, strict byte 00026h                ; 83 c2 26
    79848316    mov ax, word [bp+018h]                    ; 8b 46 18
    79858317    xor bx, bx                                ; 31 db
    7986     call 0162ah                               ; e8 de b2
     8318    call 0162ah                               ; e8 36 b6
    79878319    mov ax, ss                                ; 8c d0
    7988     mov CL, strict byte 004h                  ; b1 04
    7989     mov si, ax                                ; 89 c6
    7990     sal si, CL                                ; d3 e6
    7991     mov CL, strict byte 00ch                  ; b1 0c
    7992     shr ax, CL                                ; d3 e8
    79938320    mov cx, ax                                ; 89 c1
     8321    sal cx, 004h                              ; c1 e1 04
     8322    shr ax, 00ch                              ; c1 e8 0c
     8323    mov word [bp-004h], ax                    ; 89 46 fc
    79948324    mov dx, word [bp+00ah]                    ; 8b 56 0a
    79958325    add dx, strict byte 00028h                ; 83 c2 28
    79968326    mov ax, word [bp+018h]                    ; 8b 46 18
    79978327    mov bx, strict word 0ffffh                ; bb ff ff
    7998     call 0162ah                               ; e8 c1 b2
     8328    call 0162ah                               ; e8 1a b6
    79998329    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80008330    add dx, strict byte 0002ah                ; 83 c2 2a
    80018331    mov ax, word [bp+018h]                    ; 8b 46 18
    8002     mov bx, si                                ; 89 f3
    8003     call 0162ah                               ; e8 b3 b2
    8004     mov bl, cl                                ; 88 cb
    8005     xor bh, bh                                ; 30 ff
     8332    mov bx, cx                                ; 89 cb
     8333    call 0162ah                               ; e8 0c b6
     8334    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    80068335    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80078336    add dx, strict byte 0002ch                ; 83 c2 2c
    80088337    mov ax, word [bp+018h]                    ; 8b 46 18
    8009     call 0160eh                               ; e8 87 b2
     8338    call 0160eh                               ; e8 e0 b5
    80108339    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80118340    add dx, strict byte 0002dh                ; 83 c2 2d
    80128341    mov ax, word [bp+018h]                    ; 8b 46 18
    80138342    mov bx, 00093h                            ; bb 93 00
    8014     call 0160eh                               ; e8 78 b2
     8343    call 0160eh                               ; e8 d1 b5
    80158344    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80168345    add dx, strict byte 0002eh                ; 83 c2 2e
    80178346    mov ax, word [bp+018h]                    ; 8b 46 18
    80188347    xor bx, bx                                ; 31 db
    8019     call 0162ah                               ; e8 86 b2
     8348    call 0162ah                               ; e8 df b5
    80208349    mov si, word [bp+00ah]                    ; 8b 76 0a
    80218350    mov es, [bp+018h]                         ; 8e 46 18
     
    80288357    mov word [00467h], sp                     ; 89 26 67 04
    80298358    mov [00469h], ss                          ; 8c 16 69 04
    8030     call 063c0h                               ; e8 00 00
     8359    call 06067h                               ; e8 00 00
    80318360    pop di                                    ; 5f
    80328361    add di, strict byte 0001bh                ; 83 c7 1b
     
    80518380    cld                                       ; fc
    80528381    rep movsw                                 ; f3 a5
    8053     call 063f4h                               ; e8 00 00
     8382    call 0609bh                               ; e8 00 00
    80548383    pop ax                                    ; 58
    80558384    push 0f000h                               ; 68 00 f0
     
    80678396    ; xor ax, ax                                ; 33 c0
    80688397    mov ds, ax                                ; 8e d8
     8398    mov es, ax                                ; 8e c0
    80698399    lss sp, [00467h]                          ; 0f b2 26 67 04
    80708400    pop eax                                   ; 66 58
    80718401    pop DS                                    ; 1f
    80728402    mov ax, di                                ; 89 f8
    8073     call 06040h                               ; e8 1d fc
     8403    call 05cf1h                               ; e8 25 fc
    80748404    sti                                       ; fb
    80758405    mov byte [bp+017h], 000h                  ; c6 46 17 00
    80768406    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8077     jmp near 061d9h                           ; e9 aa fd
     8407    jmp near 05e85h                           ; e9 ad fd
    80788408    mov ax, strict word 00031h                ; b8 31 00
    8079     call 0165ch                               ; e8 27 b2
    8080     mov dh, al                                ; 88 c6
     8409    call 0165ch                               ; e8 7e b5
     8410    xor ah, ah                                ; 30 e4
     8411    mov dx, ax                                ; 89 c2
     8412    sal dx, 008h                              ; c1 e2 08
    80818413    mov ax, strict word 00030h                ; b8 30 00
    8082     call 0165ch                               ; e8 1f b2
    8083     mov dl, al                                ; 88 c2
     8414    call 0165ch                               ; e8 71 b5
     8415    xor ah, ah                                ; 30 e4
     8416    or dx, ax                                 ; 09 c2
    80848417    mov word [bp+016h], dx                    ; 89 56 16
    80858418    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8086     jbe short 06428h                          ; 76 e1
     8419    jbe short 060d1h                          ; 76 da
    80878420    mov word [bp+016h], strict word 0ffc0h    ; c7 46 16 c0 ff
    8088     jmp short 06428h                          ; eb da
     8421    jmp short 060d1h                          ; eb d3
    80898422    cli                                       ; fa
    80908423    mov ax, strict word 00001h                ; b8 01 00
    8091     call 06040h                               ; e8 eb fb
     8424    call 05cf1h                               ; e8 ec fb
    80928425    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80938426    add dx, strict byte 00038h                ; 83 c2 38
    80948427    mov ax, word [bp+018h]                    ; 8b 46 18
    80958428    mov bx, strict word 0ffffh                ; bb ff ff
    8096     call 0162ah                               ; e8 c6 b1
     8429    call 0162ah                               ; e8 16 b5
    80978430    mov dx, word [bp+00ah]                    ; 8b 56 0a
    80988431    add dx, strict byte 0003ah                ; 83 c2 3a
    80998432    mov ax, word [bp+018h]                    ; 8b 46 18
    81008433    xor bx, bx                                ; 31 db
    8101     call 0162ah                               ; e8 b8 b1
     8434    call 0162ah                               ; e8 08 b5
    81028435    mov dx, word [bp+00ah]                    ; 8b 56 0a
    81038436    add dx, strict byte 0003ch                ; 83 c2 3c
    81048437    mov ax, word [bp+018h]                    ; 8b 46 18
    81058438    mov bx, strict word 0000fh                ; bb 0f 00
    8106     call 0160eh                               ; e8 8d b1
     8439    call 0160eh                               ; e8 dd b4
    81078440    mov dx, word [bp+00ah]                    ; 8b 56 0a
    81088441    add dx, strict byte 0003dh                ; 83 c2 3d
    81098442    mov ax, word [bp+018h]                    ; 8b 46 18
    81108443    mov bx, 0009bh                            ; bb 9b 00
    8111     call 0160eh                               ; e8 7e b1
     8444    call 0160eh                               ; e8 ce b4
    81128445    mov dx, word [bp+00ah]                    ; 8b 56 0a
    81138446    add dx, strict byte 0003eh                ; 83 c2 3e
    81148447    mov ax, word [bp+018h]                    ; 8b 46 18
    81158448    xor bx, bx                                ; 31 db
    8116     call 0162ah                               ; e8 8c b1
     8449    call 0162ah                               ; e8 dc b4
    81178450    mov AL, strict byte 011h                  ; b0 11
    81188451    mov dx, strict word 00020h                ; ba 20 00
     
    81208453    mov dx, 000a0h                            ; ba a0 00
    81218454    out DX, AL                                ; ee
    8122     mov al, byte [bp+011h]                    ; 8a 46 11
     8455    mov ax, word [bp+010h]                    ; 8b 46 10
     8456    shr ax, 008h                              ; c1 e8 08
    81238457    mov dx, strict word 00021h                ; ba 21 00
    81248458    out DX, AL                                ; ee
     
    81438477    out DX, AL                                ; ee
    81448478    mov si, word [bp+00ah]                    ; 8b 76 0a
    8145     call 064dch                               ; e8 00 00
     8479    call 0618fh                               ; e8 00 00
    81468480    pop di                                    ; 5f
    81478481    add di, strict byte 00018h                ; 83 c7 18
     
    81718505    push cx                                   ; 51
    81728506    retf                                      ; cb
    8173     jmp near 061d9h                           ; e9 c1 fc
    8174     mov bx, 00c16h                            ; bb 16 0c
     8507    jmp near 05e85h                           ; e9 ba fc
     8508    mov bx, 00c08h                            ; bb 08 0c
    81758509    mov cx, ds                                ; 8c d9
    81768510    mov ax, strict word 00004h                ; b8 04 00
    8177     call 018bdh                               ; e8 9a b3
    8178     mov ax, 007ech                            ; b8 ec 07
    8179     push ax                                   ; 50
    8180     mov ax, strict word 00004h                ; b8 04 00
    8181     push ax                                   ; 50
    8182     call 018fah                               ; e8 cc b3
     8511    call 018aeh                               ; e8 d8 b6
     8512    push 007ech                               ; 68 ec 07
     8513    push strict byte 00004h                   ; 6a 04
     8514    call 018e9h                               ; e8 0b b7
    81838515    add sp, strict byte 00004h                ; 83 c4 04
    81848516    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    81878519    or ah, 086h                               ; 80 cc 86
    81888520    mov word [bp+016h], ax                    ; 89 46 16
    8189     jmp near 061d9h                           ; e9 96 fc
     8521    jmp near 05e85h                           ; e9 92 fc
    81908522    mov word [bp+01ch], cx                    ; 89 4e 1c
    81918523    mov word [bp+016h], ax                    ; 89 46 16
    81928524    mov word [bp+010h], 0e6f5h                ; c7 46 10 f5 e6
    81938525    mov word [bp+018h], 0f000h                ; c7 46 18 00 f0
    8194     jmp near 061d9h                           ; e9 83 fc
     8526    jmp near 05e85h                           ; e9 7f fc
    81958527    mov dx, strict word 0000eh                ; ba 0e 00
    81968528    mov ax, strict word 00040h                ; b8 40 00
    8197     call 0161ch                               ; e8 bd b0
     8529    call 0161ch                               ; e8 0d b4
    81988530    mov word [bp+018h], ax                    ; 89 46 18
    8199     jmp near 06428h                           ; e9 c3 fe
    8200     mov ax, 0081bh                            ; b8 1b 08
    8201     push ax                                   ; 50
    8202     mov ax, strict word 00008h                ; b8 08 00
    8203     jmp short 0652ah                          ; eb bc
     8531    jmp near 060d1h                           ; e9 bc fe
     8532    push 0081bh                               ; 68 1b 08
     8533    push strict byte 00008h                   ; 6a 08
     8534    jmp short 061dbh                          ; eb bf
    82048535    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8205     jne short 06593h                          ; 75 1f
     8536    jne short 06241h                          ; 75 1f
    82068537    mov word [bp+016h], ax                    ; 89 46 16
    82078538    mov ax, word [bp+010h]                    ; 8b 46 10
    82088539    xor ah, ah                                ; 30 e4
    82098540    cmp ax, strict word 00001h                ; 3d 01 00
    8210     jc short 0658ch                           ; 72 0b
     8541    jc short 0623ah                           ; 72 0b
    82118542    cmp ax, strict word 00003h                ; 3d 03 00
    8212     jnbe short 0658ch                         ; 77 06
     8543    jnbe short 0623ah                         ; 77 06
    82138544    mov word [bp+01ch], cx                    ; 89 4e 1c
    8214     jmp near 061d9h                           ; e9 4d fc
     8545    jmp near 05e85h                           ; e9 4b fc
    82158546    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8216     jmp near 061d9h                           ; e9 46 fc
    8217     mov bx, 00c16h                            ; bb 16 0c
     8547    jmp near 05e85h                           ; e9 44 fc
     8548    mov bx, 00c08h                            ; bb 08 0c
    82188549    mov cx, ds                                ; 8c d9
    82198550    mov ax, strict word 00004h                ; b8 04 00
    8220     call 018bdh                               ; e8 1f b3
    8221     mov ax, strict word 00001h                ; b8 01 00
    8222     push ax                                   ; 50
     8551    call 018aeh                               ; e8 62 b6
     8552    push word [bp+010h]                       ; ff 76 10
    82238553    push word [bp+016h]                       ; ff 76 16
    8224     mov ax, 00832h                            ; b8 32 08
    8225     push ax                                   ; 50
    8226     mov ax, strict word 00004h                ; b8 04 00
    8227     push ax                                   ; 50
    8228     call 018fah                               ; e8 4a b3
     8554    push 00832h                               ; 68 32 08
     8555    push strict byte 00004h                   ; 6a 04
     8556    call 018e9h                               ; e8 8f b6
    82298557    add sp, strict byte 00008h                ; 83 c4 08
    8230     jmp near 06531h                           ; e9 7b ff
    8231     hlt                                       ; f4
    8232     db  066h, 01eh
    8233     ; push DS                                   ; 66 1e
    8234     db  067h, 075h, 067h
    8235     ; jne short 06623h                          ; 67 75 67
    8236     call far 0d967h:0ba67h                    ; 9a 67 ba 67 d9
    8237     db  067h, 016h
    8238     ; push SS                                   ; 67 16
    8239     push 0684ah                               ; 68 4a 68
    8240 _int15_function32:                           ; 0xf65c6 LB 0x317
     8558    jmp short 061e1h                          ; eb 82
     8559    mov ax, word [0d763h]                     ; a1 63 d7
     8560    arpl cx, di                               ; 63 f9
     8561    arpl word [bp+si], bx                     ; 63 1a
     8562    cmp word [fs:si+058h], sp                 ; 64 39 64 58
     8563    db  064h
     8564    db  09ah
     8565    db  064h
     8566    db  0c7h
     8567    db  064h
     8568_int15_function32:                           ; 0xf626f LB 0x309
    82418569    push si                                   ; 56
    8242     push bp                                   ; 55
    8243     mov bp, sp                                ; 89 e5
    8244     sub sp, strict byte 00008h                ; 83 ec 08
    8245     mov al, byte [bp+023h]                    ; 8a 46 23
    8246     xor ah, ah                                ; 30 e4
     8570    enter 00008h, 000h                        ; c8 08 00 00
     8571    mov ax, word [bp+022h]                    ; 8b 46 22
     8572    shr ax, 008h                              ; c1 e8 08
    82478573    cmp ax, 000e8h                            ; 3d e8 00
    8248     je short 06616h                           ; 74 3f
     8574    je short 062c0h                           ; 74 41
    82498575    cmp ax, 00086h                            ; 3d 86 00
    8250     jne short 06625h                          ; 75 49
     8576    jne near 0654bh                           ; 0f 85 c5 02
    82518577    sti                                       ; fb
    82528578    mov ax, word [bp+01eh]                    ; 8b 46 1e
     
    82678593    db  066h, 00bh, 0c9h
    82688594    ; or ecx, ecx                               ; 66 0b c9
    8269     je near 06613h                            ; 0f 84 0e 00
     8595    je near 062bdh                            ; 0f 84 0e 00
    82708596    in AL, strict byte 061h                   ; e4 61
    82718597    and AL, strict byte 010h                  ; 24 10
    82728598    db  03ah, 0c4h
    82738599    ; cmp al, ah                                ; 3a c4
    8274     je short 06605h                           ; 74 f8
     8600    je short 062afh                           ; 74 f8
    82758601    db  08ah, 0e0h
    82768602    ; mov ah, al                                ; 8a e0
    82778603    dec ecx                                   ; 66 49
    8278     jne short 06605h                          ; 75 f2
    8279     jmp near 06770h                           ; e9 5a 01
     8604    jne short 062afh                          ; 75 f2
     8605    leave                                     ; c9
     8606    pop si                                    ; 5e
     8607    retn                                      ; c3
    82808608    mov ax, word [bp+022h]                    ; 8b 46 22
    82818609    xor ah, ah                                ; 30 e4
    82828610    cmp ax, strict word 00020h                ; 3d 20 00
    8283     je short 0662bh                           ; 74 0b
     8611    je short 062d4h                           ; 74 0a
    82848612    cmp ax, strict word 00001h                ; 3d 01 00
    8285     je short 06628h                           ; 74 03
    8286     jmp near 06743h                           ; e9 1b 01
    8287     jmp near 0689ch                           ; e9 71 02
     8613    je near 064fdh                            ; 0f 84 2c 02
     8614    jmp near 0654bh                           ; e9 77 02
    82888615    cmp word [bp+01ch], 0534dh                ; 81 7e 1c 4d 53
    8289     jne short 06625h                          ; 75 f3
     8616    jne near 0654bh                           ; 0f 85 6e 02
    82908617    cmp word [bp+01ah], 04150h                ; 81 7e 1a 50 41
    8291     jne short 06625h                          ; 75 ec
     8618    jne near 0654bh                           ; 0f 85 65 02
    82928619    mov ax, strict word 00035h                ; b8 35 00
    8293     call 0165ch                               ; e8 1d b0
    8294     mov bl, al                                ; 88 c3
    8295     xor bh, bh                                ; 30 ff
     8620    call 0165ch                               ; e8 70 b3
     8621    movzx bx, al                              ; 0f b6 d8
    82968622    xor dx, dx                                ; 31 d2
    82978623    mov cx, strict word 00008h                ; b9 08 00
    82988624    sal bx, 1                                 ; d1 e3
    82998625    rcl dx, 1                                 ; d1 d2
    8300     loop 06648h                               ; e2 fa
     8626    loop 062f4h                               ; e2 fa
    83018627    mov ax, strict word 00034h                ; b8 34 00
    8302     call 0165ch                               ; e8 08 b0
     8628    call 0165ch                               ; e8 5c b3
    83038629    xor ah, ah                                ; 30 e4
    83048630    mov dx, bx                                ; 89 da
     
    83088634    adc dx, 00100h                            ; 81 d2 00 01
    83098635    cmp dx, 00100h                            ; 81 fa 00 01
    8310     jc short 0666eh                           ; 72 06
    8311     jne short 0669ch                          ; 75 32
     8636    jc short 0631ah                           ; 72 06
     8637    jne short 06347h                          ; 75 31
    83128638    test bx, bx                               ; 85 db
    8313     jnbe short 0669ch                         ; 77 2e
     8639    jnbe short 06347h                         ; 77 2d
    83148640    mov ax, strict word 00031h                ; b8 31 00
    8315     call 0165ch                               ; e8 e8 af
    8316     mov bl, al                                ; 88 c3
    8317     xor bh, bh                                ; 30 ff
     8641    call 0165ch                               ; e8 3c b3
     8642    movzx bx, al                              ; 0f b6 d8
    83188643    xor dx, dx                                ; 31 d2
    83198644    mov cx, strict word 00008h                ; b9 08 00
    83208645    sal bx, 1                                 ; d1 e3
    83218646    rcl dx, 1                                 ; d1 d2
    8322     loop 0667dh                               ; e2 fa
     8647    loop 06328h                               ; e2 fa
    83238648    mov ax, strict word 00030h                ; b8 30 00
    8324     call 0165ch                               ; e8 d3 af
     8649    call 0165ch                               ; e8 28 b3
    83258650    xor ah, ah                                ; 30 e4
    83268651    or bx, ax                                 ; 09 c3
     
    83288653    sal bx, 1                                 ; d1 e3
    83298654    rcl dx, 1                                 ; d1 d2
    8330     loop 06690h                               ; e2 fa
     8655    loop 0633bh                               ; e2 fa
    83318656    add bx, strict byte 00000h                ; 83 c3 00
    83328657    adc dx, strict byte 00010h                ; 83 d2 10
    83338658    mov ax, strict word 00062h                ; b8 62 00
    8334     call 0165ch                               ; e8 ba af
     8659    call 0165ch                               ; e8 0f b3
    83358660    xor ah, ah                                ; 30 e4
    83368661    mov word [bp-008h], ax                    ; 89 46 f8
     
    83408665    sal word [bp-008h], 1                     ; d1 66 f8
    83418666    rcl word [bp-006h], 1                     ; d1 56 fa
    8342     loop 066afh                               ; e2 f8
     8667    loop 0635ah                               ; e2 f8
    83438668    mov ax, strict word 00061h                ; b8 61 00
    8344     call 0165ch                               ; e8 9f af
     8669    call 0165ch                               ; e8 f4 b2
    83458670    xor ah, ah                                ; 30 e4
    83468671    or word [bp-008h], ax                     ; 09 46 f8
     
    83498674    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    83508675    mov ax, strict word 00063h                ; b8 63 00
    8351     call 0165ch                               ; e8 89 af
     8676    call 0165ch                               ; e8 de b2
     8677    mov byte [bp-004h], al                    ; 88 46 fc
    83528678    mov byte [bp-002h], al                    ; 88 46 fe
    8353     mov byte [bp-004h], al                    ; 88 46 fc
    83548679    mov ax, word [bp+016h]                    ; 8b 46 16
    83558680    cmp ax, strict word 00007h                ; 3d 07 00
    8356     jnbe short 06743h                         ; 77 62
     8681    jnbe near 0654bh                          ; 0f 87 bd 01
    83578682    mov si, ax                                ; 89 c6
    8358     sal si, 1                                 ; d1 e6
     8683    add si, ax                                ; 01 c6
    83598684    mov ax, bx                                ; 89 d8
    83608685    add ax, strict word 00000h                ; 05 00 00
    83618686    mov cx, dx                                ; 89 d1
    83628687    adc cx, strict byte 0ffffh                ; 83 d1 ff
    8363     jmp word [cs:si+065b6h]                   ; 2e ff a4 b6 65
    8364     mov ax, strict word 00001h                ; b8 01 00
    8365     push ax                                   ; 50
    8366     xor ax, ax                                ; 31 c0
    8367     push ax                                   ; 50
    8368     push ax                                   ; 50
    8369     mov ax, strict word 00009h                ; b8 09 00
    8370     push ax                                   ; 50
    8371     mov ax, 0fc00h                            ; b8 00 fc
     8688    jmp word [cs:si+0625fh]                   ; 2e ff a4 5f 62
     8689    push strict byte 00001h                   ; 6a 01
     8690    push dword 000000000h                     ; 66 6a 00
     8691    push strict byte 00009h                   ; 6a 09
     8692    push 0fc00h                               ; 68 00 fc
     8693    mov dx, word [bp+006h]                    ; 8b 56 06
     8694    mov ax, word [bp+026h]                    ; 8b 46 26
     8695    xor bx, bx                                ; 31 db
     8696    xor cx, cx                                ; 31 c9
     8697    call 05d1ah                               ; e8 62 f9
     8698    mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00
     8699    mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53
     8700    mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00
     8701    and byte [bp+02ah], 0feh                  ; 80 66 2a fe
     8702    leave                                     ; c9
     8703    pop si                                    ; 5e
     8704    retn                                      ; c3
     8705    push strict byte 00002h                   ; 6a 02
     8706    push dword 000000000h                     ; 66 6a 00
     8707    push strict byte 0000ah                   ; 6a 0a
     8708    push strict byte 00000h                   ; 6a 00
     8709    mov dx, word [bp+006h]                    ; 8b 56 06
     8710    mov ax, word [bp+026h]                    ; 8b 46 26
     8711    mov bx, 0fc00h                            ; bb 00 fc
     8712    mov cx, strict word 00009h                ; b9 09 00
     8713    call 05d1ah                               ; e8 2b f9
     8714    mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00
     8715    jmp short 063c0h                          ; eb c7
     8716    push strict byte 00002h                   ; 6a 02
     8717    push dword 000000000h                     ; 66 6a 00
     8718    push strict byte 00010h                   ; 6a 10
     8719    push strict byte 00000h                   ; 6a 00
     8720    mov dx, word [bp+006h]                    ; 8b 56 06
     8721    mov ax, word [bp+026h]                    ; 8b 46 26
     8722    xor bx, bx                                ; 31 db
     8723    mov cx, strict word 0000fh                ; b9 0f 00
     8724    call 05d1ah                               ; e8 0a f9
     8725    mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00
     8726    jmp short 063c0h                          ; eb a6
     8727    push strict byte 00001h                   ; 6a 01
     8728    push dword 000000000h                     ; 66 6a 00
     8729    push cx                                   ; 51
    83728730    push ax                                   ; 50
    83738731    mov dx, word [bp+006h]                    ; 8b 56 06
    83748732    mov ax, word [bp+026h]                    ; 8b 46 26
    83758733    xor bx, bx                                ; 31 db
    8376     xor cx, cx                                ; 31 c9
    8377     call 0606dh                               ; e8 5c f9
    8378     mov word [bp+016h], strict word 00001h    ; c7 46 16 01 00
    8379     mov word [bp+018h], strict word 00000h    ; c7 46 18 00 00
    8380     jmp near 06881h                           ; e9 63 01
    8381     mov ax, strict word 00002h                ; b8 02 00
    8382     push ax                                   ; 50
    8383     xor ax, ax                                ; 31 c0
    8384     push ax                                   ; 50
    8385     push ax                                   ; 50
    8386     mov ax, strict word 0000ah                ; b8 0a 00
    8387     push ax                                   ; 50
    8388     xor ax, ax                                ; 31 c0
    8389     push ax                                   ; 50
     8734    mov cx, strict word 00010h                ; b9 10 00
     8735    call 05d1ah                               ; e8 eb f8
     8736    mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00
     8737    jmp short 063c0h                          ; eb 87
     8738    push strict byte 00003h                   ; 6a 03
     8739    push dword 000000000h                     ; 66 6a 00
     8740    push dx                                   ; 52
     8741    push bx                                   ; 53
     8742    mov dx, word [bp+006h]                    ; 8b 56 06
     8743    mov si, word [bp+026h]                    ; 8b 76 26
     8744    mov bx, ax                                ; 89 c3
     8745    mov ax, si                                ; 89 f0
     8746    call 05d1ah                               ; e8 cd f8
     8747    mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00
     8748    jmp near 063c0h                           ; e9 68 ff
     8749    push strict byte 00002h                   ; 6a 02
     8750    push dword 000000000h                     ; 66 6a 00
     8751    push dword 000000000h                     ; 66 6a 00
    83908752    mov dx, word [bp+006h]                    ; 8b 56 06
    83918753    mov ax, word [bp+026h]                    ; 8b 46 26
    8392     mov bx, 0fc00h                            ; bb 00 fc
    8393     mov cx, strict word 00009h                ; b9 09 00
    8394     call 0606dh                               ; e8 31 f9
    8395     mov word [bp+016h], strict word 00002h    ; c7 46 16 02 00
    8396     jmp short 06716h                          ; eb d3
    8397     mov bx, 00c16h                            ; bb 16 0c
     8754    xor bx, bx                                ; 31 db
     8755    mov cx, strict word 0fffch                ; b9 fc ff
     8756    call 05d1ah                               ; e8 ac f8
     8757    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     8758    jne short 0647bh                          ; 75 07
     8759    mov ax, word [bp-006h]                    ; 8b 46 fa
     8760    test ax, ax                               ; 85 c0
     8761    je short 06491h                           ; 74 16
     8762    mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00
     8763    jmp near 063c0h                           ; e9 3a ff
     8764    mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00
     8765    jmp near 063c0h                           ; e9 2f ff
     8766    mov word [bp+016h], ax                    ; 89 46 16
     8767    mov word [bp+018h], ax                    ; 89 46 18
     8768    jmp near 063c0h                           ; e9 26 ff
     8769    push strict byte 00002h                   ; 6a 02
     8770    push dword 000000000h                     ; 66 6a 00
     8771    push dword 000000000h                     ; 66 6a 00
     8772    mov dx, word [bp+006h]                    ; 8b 56 06
     8773    mov ax, word [bp+026h]                    ; 8b 46 26
     8774    xor bx, bx                                ; 31 db
     8775    xor cx, cx                                ; 31 c9
     8776    call 05d1ah                               ; e8 6b f8
     8777    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     8778    jne short 064bch                          ; 75 07
     8779    mov ax, word [bp-006h]                    ; 8b 46 fa
     8780    test ax, ax                               ; 85 c0
     8781    je short 064beh                           ; 74 02
     8782    jmp short 0647bh                          ; eb bd
     8783    mov word [bp+016h], ax                    ; 89 46 16
     8784    mov word [bp+018h], ax                    ; 89 46 18
     8785    jmp near 063c0h                           ; e9 f9 fe
     8786    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     8787    jne short 064d5h                          ; 75 08
     8788    cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
     8789    je near 063c0h                            ; 0f 84 eb fe
     8790    push strict byte 00001h                   ; 6a 01
     8791    mov al, byte [bp-002h]                    ; 8a 46 fe
     8792    db  0feh, 0c0h
     8793    ; inc al                                    ; fe c0
     8794    xor ah, ah                                ; 30 e4
     8795    push ax                                   ; 50
     8796    push strict byte 00001h                   ; 6a 01
     8797    push dword [bp-008h]                      ; 66 ff 76 f8
     8798    mov dx, word [bp+006h]                    ; 8b 56 06
     8799    mov ax, word [bp+026h]                    ; 8b 46 26
     8800    xor bx, bx                                ; 31 db
     8801    xor cx, cx                                ; 31 c9
     8802    call 05d1ah                               ; e8 28 f8
     8803    xor ax, ax                                ; 31 c0
     8804    mov word [bp+016h], ax                    ; 89 46 16
     8805    mov word [bp+018h], ax                    ; 89 46 18
     8806    jmp near 063c0h                           ; e9 c3 fe
     8807    and byte [bp+02ah], 0feh                  ; 80 66 2a fe
     8808    mov ax, strict word 00031h                ; b8 31 00
     8809    call 0165ch                               ; e8 55 b1
     8810    xor ah, ah                                ; 30 e4
     8811    mov dx, ax                                ; 89 c2
     8812    sal dx, 008h                              ; c1 e2 08
     8813    mov ax, strict word 00030h                ; b8 30 00
     8814    call 0165ch                               ; e8 48 b1
     8815    xor ah, ah                                ; 30 e4
     8816    or dx, ax                                 ; 09 c2
     8817    mov word [bp+01eh], dx                    ; 89 56 1e
     8818    cmp dx, 03c00h                            ; 81 fa 00 3c
     8819    jbe short 06526h                          ; 76 05
     8820    mov word [bp+01eh], 03c00h                ; c7 46 1e 00 3c
     8821    mov ax, strict word 00035h                ; b8 35 00
     8822    call 0165ch                               ; e8 30 b1
     8823    movzx dx, al                              ; 0f b6 d0
     8824    sal dx, 008h                              ; c1 e2 08
     8825    mov ax, strict word 00034h                ; b8 34 00
     8826    call 0165ch                               ; e8 24 b1
     8827    xor ah, ah                                ; 30 e4
     8828    or dx, ax                                 ; 09 c2
     8829    mov word [bp+01ah], dx                    ; 89 56 1a
     8830    mov ax, word [bp+01eh]                    ; 8b 46 1e
     8831    mov word [bp+022h], ax                    ; 89 46 22
     8832    mov word [bp+016h], dx                    ; 89 56 16
     8833    leave                                     ; c9
     8834    pop si                                    ; 5e
     8835    retn                                      ; c3
     8836    mov bx, 00c08h                            ; bb 08 0c
    83988837    mov cx, ds                                ; 8c d9
    83998838    mov ax, strict word 00004h                ; b8 04 00
    8400     call 018bdh                               ; e8 6f b1
     8839    call 018aeh                               ; e8 58 b3
    84018840    push word [bp+016h]                       ; ff 76 16
    84028841    push word [bp+022h]                       ; ff 76 22
    8403     mov ax, 00832h                            ; b8 32 08
    8404     push ax                                   ; 50
    8405     mov ax, strict word 00004h                ; b8 04 00
    8406     push ax                                   ; 50
    8407     call 018fah                               ; e8 9b b1
     8842    push 00832h                               ; 68 32 08
     8843    push strict byte 00004h                   ; 6a 04
     8844    call 018e9h                               ; e8 85 b3
    84088845    add sp, strict byte 00008h                ; 83 c4 08
    84098846    or byte [bp+02ah], 001h                   ; 80 4e 2a 01
     
    84128849    or AL, strict byte 086h                   ; 0c 86
    84138850    mov word [bp+022h], ax                    ; 89 46 22
    8414     mov sp, bp                                ; 89 ec
    8415     pop bp                                    ; 5d
     8851    leave                                     ; c9
    84168852    pop si                                    ; 5e
    84178853    retn                                      ; c3
    8418     mov ax, strict word 00002h                ; b8 02 00
    8419     push ax                                   ; 50
    8420     xor ax, ax                                ; 31 c0
    8421     push ax                                   ; 50
    8422     push ax                                   ; 50
    8423     mov ax, strict word 00010h                ; b8 10 00
    8424     push ax                                   ; 50
    8425     xor ax, ax                                ; 31 c0
    8426     push ax                                   ; 50
    8427     mov dx, word [bp+006h]                    ; 8b 56 06
    8428     mov ax, word [bp+026h]                    ; 8b 46 26
    8429     xor bx, bx                                ; 31 db
    8430     mov cx, strict word 0000fh                ; b9 0f 00
    8431     call 0606dh                               ; e8 db f8
    8432     mov word [bp+016h], strict word 00003h    ; c7 46 16 03 00
    8433     jmp near 06716h                           ; e9 7c ff
    8434     mov dx, strict word 00001h                ; ba 01 00
    8435     push dx                                   ; 52
    8436     xor dx, dx                                ; 31 d2
    8437     push dx                                   ; 52
    8438     push dx                                   ; 52
    8439     push cx                                   ; 51
    8440     push ax                                   ; 50
    8441     mov dx, word [bp+006h]                    ; 8b 56 06
    8442     mov ax, word [bp+026h]                    ; 8b 46 26
    8443     xor bx, bx                                ; 31 db
    8444     mov cx, strict word 00010h                ; b9 10 00
    8445     call 0606dh                               ; e8 bb f8
    8446     mov word [bp+016h], strict word 00004h    ; c7 46 16 04 00
    8447     jmp near 06716h                           ; e9 5c ff
    8448     mov si, strict word 00003h                ; be 03 00
    8449     push si                                   ; 56
    8450     xor si, si                                ; 31 f6
    8451     push si                                   ; 56
    8452     push si                                   ; 56
    8453     push dx                                   ; 52
    8454     push bx                                   ; 53
    8455     mov dx, word [bp+006h]                    ; 8b 56 06
    8456     mov si, word [bp+026h]                    ; 8b 76 26
    8457     mov bx, ax                                ; 89 c3
    8458     mov ax, si                                ; 89 f0
    8459     call 0606dh                               ; e8 9c f8
    8460     mov word [bp+016h], strict word 00005h    ; c7 46 16 05 00
    8461     jmp near 06716h                           ; e9 3d ff
    8462     mov ax, strict word 00002h                ; b8 02 00
    8463     push ax                                   ; 50
    8464     xor ax, ax                                ; 31 c0
    8465     push ax                                   ; 50
    8466     push ax                                   ; 50
    8467     push ax                                   ; 50
    8468     push ax                                   ; 50
    8469     mov dx, word [bp+006h]                    ; 8b 56 06
    8470     mov ax, word [bp+026h]                    ; 8b 46 26
    8471     xor bx, bx                                ; 31 db
    8472     mov cx, strict word 0fffch                ; b9 fc ff
    8473     call 0606dh                               ; e8 7c f8
    8474     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    8475     jne short 067feh                          ; 75 07
    8476     mov ax, word [bp-006h]                    ; 8b 46 fa
    8477     test ax, ax                               ; 85 c0
    8478     je short 0680eh                           ; 74 10
    8479     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    8480     jmp near 06716h                           ; e9 10 ff
    8481     mov word [bp+016h], strict word 00006h    ; c7 46 16 06 00
    8482     jmp near 06716h                           ; e9 08 ff
    8483     mov word [bp+016h], ax                    ; 89 46 16
    8484     mov word [bp+018h], ax                    ; 89 46 18
    8485     jmp short 06881h                          ; eb 6b
    8486     mov ax, strict word 00002h                ; b8 02 00
    8487     push ax                                   ; 50
    8488     xor ax, ax                                ; 31 c0
    8489     push ax                                   ; 50
    8490     push ax                                   ; 50
    8491     push ax                                   ; 50
    8492     push ax                                   ; 50
    8493     mov dx, word [bp+006h]                    ; 8b 56 06
    8494     mov ax, word [bp+026h]                    ; 8b 46 26
    8495     xor bx, bx                                ; 31 db
    8496     xor cx, cx                                ; 31 c9
    8497     call 0606dh                               ; e8 40 f8
    8498     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    8499     jne short 0683ah                          ; 75 07
    8500     mov ax, word [bp-006h]                    ; 8b 46 fa
    8501     test ax, ax                               ; 85 c0
    8502     je short 06842h                           ; 74 08
    8503     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    8504     jmp near 06716h                           ; e9 d4 fe
    8505     mov word [bp+016h], ax                    ; 89 46 16
    8506     mov word [bp+018h], ax                    ; 89 46 18
    8507     jmp short 06881h                          ; eb 37
    8508     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    8509     jne short 06856h                          ; 75 06
    8510     cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    8511     je short 06881h                           ; 74 2b
    8512     mov ax, strict word 00001h                ; b8 01 00
    8513     push ax                                   ; 50
    8514     mov al, byte [bp-004h]                    ; 8a 46 fc
    8515     db  0feh, 0c0h
    8516     ; inc al                                    ; fe c0
    8517     xor ah, ah                                ; 30 e4
    8518     push ax                                   ; 50
    8519     mov ax, strict word 00001h                ; b8 01 00
    8520     push ax                                   ; 50
    8521     push word [bp-006h]                       ; ff 76 fa
    8522     push word [bp-008h]                       ; ff 76 f8
    8523     mov dx, word [bp+006h]                    ; 8b 56 06
    8524     mov ax, word [bp+026h]                    ; 8b 46 26
    8525     xor bx, bx                                ; 31 db
    8526     xor cx, cx                                ; 31 c9
    8527     call 0606dh                               ; e8 f4 f7
    8528     xor ax, ax                                ; 31 c0
    8529     mov word [bp+016h], ax                    ; 89 46 16
    8530     mov word [bp+018h], ax                    ; 89 46 18
    8531     mov word [bp+022h], 04150h                ; c7 46 22 50 41
    8532     mov word [bp+024h], 0534dh                ; c7 46 24 4d 53
    8533     mov word [bp+01eh], strict word 00014h    ; c7 46 1e 14 00
    8534     mov word [bp+020h], strict word 00000h    ; c7 46 20 00 00
    8535     and byte [bp+02ah], 0feh                  ; 80 66 2a fe
    8536     jmp near 06770h                           ; e9 d4 fe
    8537     and byte [bp+02ah], 0feh                  ; 80 66 2a fe
    8538     mov ax, strict word 00031h                ; b8 31 00
    8539     call 0165ch                               ; e8 b6 ad
    8540     mov dh, al                                ; 88 c6
    8541     mov ax, strict word 00030h                ; b8 30 00
    8542     call 0165ch                               ; e8 ae ad
    8543     mov dl, al                                ; 88 c2
    8544     mov word [bp+01eh], dx                    ; 89 56 1e
    8545     cmp dx, 03c00h                            ; 81 fa 00 3c
    8546     jbe short 068beh                          ; 76 05
    8547     mov word [bp+01eh], 03c00h                ; c7 46 1e 00 3c
    8548     mov ax, strict word 00035h                ; b8 35 00
    8549     call 0165ch                               ; e8 98 ad
    8550     mov dh, al                                ; 88 c6
    8551     mov ax, strict word 00034h                ; b8 34 00
    8552     call 0165ch                               ; e8 90 ad
    8553     mov dl, al                                ; 88 c2
    8554     mov word [bp+01ah], dx                    ; 89 56 1a
    8555     mov ax, word [bp+01eh]                    ; 8b 46 1e
    8556     mov word [bp+022h], ax                    ; 89 46 22
    8557     mov word [bp+016h], dx                    ; 89 56 16
    8558     jmp near 06770h                           ; e9 93 fe
    8559 init_rtc_:                                   ; 0xf68dd LB 0x25
     8854init_rtc_:                                   ; 0xf6578 LB 0x25
    85608855    push dx                                   ; 52
    85618856    push bp                                   ; 55
     
    85638858    mov dx, strict word 00026h                ; ba 26 00
    85648859    mov ax, strict word 0000ah                ; b8 0a 00
    8565     call 0166dh                               ; e8 83 ad
     8860    call 0166dh                               ; e8 e8 b0
    85668861    mov dx, strict word 00002h                ; ba 02 00
    85678862    mov ax, strict word 0000bh                ; b8 0b 00
    8568     call 0166dh                               ; e8 7a ad
     8863    call 0166dh                               ; e8 df b0
    85698864    mov ax, strict word 0000ch                ; b8 0c 00
    8570     call 0165ch                               ; e8 63 ad
     8865    call 0165ch                               ; e8 c8 b0
    85718866    mov ax, strict word 0000dh                ; b8 0d 00
    8572     call 0165ch                               ; e8 5d ad
     8867    call 0165ch                               ; e8 c2 b0
    85738868    pop bp                                    ; 5d
    85748869    pop dx                                    ; 5a
    85758870    retn                                      ; c3
    8576 rtc_updating_:                               ; 0xf6902 LB 0x1f
     8871rtc_updating_:                               ; 0xf659d LB 0x1f
    85778872    push dx                                   ; 52
    85788873    push bp                                   ; 55
     
    85808875    mov dx, 061a8h                            ; ba a8 61
    85818876    dec dx                                    ; 4a
    8582     je short 0691bh                           ; 74 0f
     8877    je short 065b6h                           ; 74 0f
    85838878    mov ax, strict word 0000ah                ; b8 0a 00
    8584     call 0165ch                               ; e8 4a ad
     8879    call 0165ch                               ; e8 af b0
    85858880    test AL, strict byte 080h                 ; a8 80
    8586     jne short 06909h                          ; 75 f3
     8881    jne short 065a4h                          ; 75 f3
    85878882    xor ax, ax                                ; 31 c0
    85888883    pop bp                                    ; 5d
     
    85938888    pop dx                                    ; 5a
    85948889    retn                                      ; c3
    8595 _int70_function:                             ; 0xf6921 LB 0xae
     8890_int70_function:                             ; 0xf65bc LB 0xab
    85968891    push si                                   ; 56
    8597     push bp                                   ; 55
    8598     mov bp, sp                                ; 89 e5
    8599     push ax                                   ; 50
     8892    enter 00002h, 000h                        ; c8 02 00 00
    86008893    mov ax, strict word 0000bh                ; b8 0b 00
    8601     call 0165ch                               ; e8 30 ad
    8602     mov bl, al                                ; 88 c3
     8894    call 0165ch                               ; e8 95 b0
     8895    mov dl, al                                ; 88 c2
    86038896    mov byte [bp-002h], al                    ; 88 46 fe
    86048897    mov ax, strict word 0000ch                ; b8 0c 00
    8605     call 0165ch                               ; e8 25 ad
    8606     mov dl, al                                ; 88 c2
    8607     test bl, 060h                             ; f6 c3 60
    8608     jne short 06941h                          ; 75 03
    8609     jmp near 069c7h                           ; e9 86 00
     8898    call 0165ch                               ; e8 8a b0
     8899    mov dh, al                                ; 88 c6
     8900    test dl, 060h                             ; f6 c2 60
     8901    je near 06661h                            ; 0f 84 86 00
    86108902    test AL, strict byte 020h                 ; a8 20
    8611     je short 06949h                           ; 74 04
     8903    je short 065e3h                           ; 74 04
    86128904    sti                                       ; fb
    86138905    int 04ah                                  ; cd 4a
    86148906    cli                                       ; fa
    8615     test dl, 040h                             ; f6 c2 40
    8616     je short 069b1h                           ; 74 63
     8907    test dh, 040h                             ; f6 c6 40
     8908    je near 06661h                            ; 0f 84 77 00
    86178909    mov dx, 000a0h                            ; ba a0 00
    86188910    mov ax, strict word 00040h                ; b8 40 00
    8619     call 01600h                               ; e8 a9 ac
     8911    call 01600h                               ; e8 0d b0
    86208912    test al, al                               ; 84 c0
    8621     je short 069c7h                           ; 74 6c
     8913    je short 06661h                           ; 74 6a
    86228914    mov dx, 0009ch                            ; ba 9c 00
    86238915    mov ax, strict word 00040h                ; b8 40 00
    8624     call 01638h                               ; e8 d4 ac
     8916    call 01638h                               ; e8 38 b0
    86258917    test dx, dx                               ; 85 d2
    8626     jne short 069b3h                          ; 75 4b
     8918    jne short 0664dh                          ; 75 49
    86278919    cmp ax, 003d1h                            ; 3d d1 03
    8628     jnc short 069b3h                          ; 73 46
     8920    jnc short 0664dh                          ; 73 44
    86298921    mov dx, 00098h                            ; ba 98 00
    86308922    mov ax, strict word 00040h                ; b8 40 00
    8631     call 0161ch                               ; e8 a6 ac
     8923    call 0161ch                               ; e8 0a b0
    86328924    mov si, ax                                ; 89 c6
    86338925    mov dx, 0009ah                            ; ba 9a 00
    86348926    mov ax, strict word 00040h                ; b8 40 00
    8635     call 0161ch                               ; e8 9b ac
     8927    call 0161ch                               ; e8 ff af
    86368928    mov cx, ax                                ; 89 c1
    86378929    xor bx, bx                                ; 31 db
    86388930    mov dx, 000a0h                            ; ba a0 00
    86398931    mov ax, strict word 00040h                ; b8 40 00
    8640     call 0160eh                               ; e8 80 ac
    8641     mov dl, byte [bp-002h]                    ; 8a 56 fe
    8642     and dl, 037h                              ; 80 e2 37
    8643     xor dh, dh                                ; 30 f6
     8932    call 0160eh                               ; e8 e4 af
     8933    mov al, byte [bp-002h]                    ; 8a 46 fe
     8934    and AL, strict byte 037h                  ; 24 37
     8935    movzx dx, al                              ; 0f b6 d0
    86448936    mov ax, strict word 0000bh                ; b8 0b 00
    8645     call 0166dh                               ; e8 d1 ac
     8937    call 0166dh                               ; e8 35 b0
    86468938    mov dx, cx                                ; 89 ca
    86478939    mov ax, si                                ; 89 f0
    8648     call 01600h                               ; e8 5d ac
    8649     mov bl, al                                ; 88 c3
    8650     or bl, 080h                               ; 80 cb 80
    8651     xor bh, bh                                ; 30 ff
     8940    call 01600h                               ; e8 c1 af
     8941    or AL, strict byte 080h                   ; 0c 80
     8942    movzx bx, al                              ; 0f b6 d8
    86528943    mov dx, cx                                ; 89 ca
    86538944    mov ax, si                                ; 89 f0
    8654     call 0160eh                               ; e8 5d ac
    8655     jmp short 069c7h                          ; eb 14
     8945    call 0160eh                               ; e8 c3 af
     8946    jmp short 06661h                          ; eb 14
    86568947    mov bx, ax                                ; 89 c3
    86578948    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    86608951    mov dx, 0009ch                            ; ba 9c 00
    86618952    mov ax, strict word 00040h                ; b8 40 00
    8662     call 0164ah                               ; e8 83 ac
    8663     call 0e03bh                               ; e8 71 76
    8664     mov sp, bp                                ; 89 ec
    8665     pop bp                                    ; 5d
     8953    call 0164ah                               ; e8 e9 af
     8954    call 0e03bh                               ; e8 d7 79
     8955    leave                                     ; c9
    86668956    pop si                                    ; 5e
    86678957    retn                                      ; c3
    8668 _int1a_function_pci:                         ; 0xf69cf LB 0x31
     8958_int1a_function_pci:                         ; 0xf6667 LB 0x31
    86698959    push bp                                   ; 55
    86708960    mov bp, sp                                ; 89 e5
    86718961    mov dx, strict word 00021h                ; ba 21 00
    86728962    mov ax, strict word 00004h                ; b8 04 00
    8673     call 01757h                               ; e8 7c ad
     8963    call 01751h                               ; e8 de b0
    86748964    mov dx, strict word 0000ah                ; ba 0a 00
    86758965    mov ax, strict word 00004h                ; b8 04 00
    8676     call 01757h                               ; e8 73 ad
     8966    call 01751h                               ; e8 d5 b0
    86778967    test byte [bp+018h], 001h                 ; f6 46 18 01
    8678     jne short 069eeh                          ; 75 04
     8968    jne short 06686h                          ; 75 04
    86798969    or byte [bp+018h], 001h                   ; 80 4e 18 01
    86808970    pop bp                                    ; 5d
    86818971    retn                                      ; c3
    8682     push SS                                   ; 16
    8683     push strict byte 0003dh                   ; 6a 3d
    8684     push strict byte 00062h                   ; 6a 62
    8685     push strict byte 0ff9bh                   ; 6a 9b
    8686     push strict byte 0ffedh                   ; 6a ed
    8687     push strict byte 00023h                   ; 6a 23
    8688     imul bp, word [bx+di+06bh], strict byte 0ffc2h ; 6b 69 6b c2
    8689     db  06bh
    8690 _int1a_function:                             ; 0xf6a00 LB 0x1d4
     8972    scasw                                     ; af
     8973    db  066h
     8974    db  0d6h
     8975    db  066h, 0fbh
     8976    ; sti                                       ; 66 fb
     8977    sub eax, strict dword 0b1677b67h          ; 66 2d 67 7b 67 b1
     8978    db  067h, 0f3h, 067h, 048h
     8979    ; rep dec ax                                ; 67 f3 67 48
     8980    db  068h
     8981_int1a_function:                             ; 0xf6698 LB 0x1c0
    86918982    push bp                                   ; 55
    86928983    mov bp, sp                                ; 89 e5
     
    86948985    mov al, byte [bp+013h]                    ; 8a 46 13
    86958986    cmp AL, strict byte 007h                  ; 3c 07
    8696     jnbe short 06a69h                         ; 77 5e
    8697     mov bl, al                                ; 88 c3
    8698     xor bh, bh                                ; 30 ff
    8699     sal bx, 1                                 ; d1 e3
    8700     jmp word [cs:bx+069f0h]                   ; 2e ff a7 f0 69
     8987    jnbe near 066d4h                          ; 0f 87 2f 00
     8988    movzx bx, al                              ; 0f b6 d8
     8989    add bx, bx                                ; 01 db
     8990    jmp word [cs:bx+06688h]                   ; 2e ff a7 88 66
    87018991    cli                                       ; fa
    87028992    mov bx, 0046eh                            ; bb 6e 04
     
    87309020    pop bp                                    ; 5d
    87319021    retn                                      ; c3
    8732     call 06902h                               ; e8 9d fe
     9022    call 0659dh                               ; e8 9f fe
    87339023    test ax, ax                               ; 85 c0
    8734     je short 06a6bh                           ; 74 02
     9024    je short 06704h                           ; 74 02
    87359025    pop bp                                    ; 5d
    87369026    retn                                      ; c3
    87379027    xor ax, ax                                ; 31 c0
    8738     call 0165ch                               ; e8 ec ab
     9028    call 0165ch                               ; e8 53 af
    87399029    mov byte [bp+00fh], al                    ; 88 46 0f
    87409030    mov ax, strict word 00002h                ; b8 02 00
    8741     call 0165ch                               ; e8 e3 ab
     9031    call 0165ch                               ; e8 4a af
    87429032    mov byte [bp+010h], al                    ; 88 46 10
    87439033    mov ax, strict word 00004h                ; b8 04 00
    8744     call 0165ch                               ; e8 da ab
    8745     mov dl, al                                ; 88 c2
     9034    call 0165ch                               ; e8 41 af
     9035    mov bl, al                                ; 88 c3
    87469036    mov byte [bp+011h], al                    ; 88 46 11
    87479037    mov ax, strict word 0000bh                ; b8 0b 00
    8748     call 0165ch                               ; e8 cf ab
     9038    call 0165ch                               ; e8 36 af
    87499039    and AL, strict byte 001h                  ; 24 01
    87509040    mov byte [bp+00eh], al                    ; 88 46 0e
    8751     mov byte [bp+013h], 000h                  ; c6 46 13 00
    8752     mov byte [bp+012h], dl                    ; 88 56 12
    8753     pop bp                                    ; 5d
    8754     retn                                      ; c3
    8755     call 06902h                               ; e8 64 fe
     9041    jmp short 06772h                          ; eb 45
     9042    call 0659dh                               ; e8 6d fe
    87569043    test ax, ax                               ; 85 c0
    8757     je short 06aa5h                           ; 74 03
    8758     call 068ddh                               ; e8 38 fe
    8759     mov dl, byte [bp+00fh]                    ; 8a 56 0f
    8760     xor dh, dh                                ; 30 f6
     9044    je short 06737h                           ; 74 03
     9045    call 06578h                               ; e8 41 fe
     9046    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    87619047    xor ax, ax                                ; 31 c0
    8762     call 0166dh                               ; e8 be ab
    8763     mov dl, byte [bp+010h]                    ; 8a 56 10
    8764     xor dh, dh                                ; 30 f6
     9048    call 0166dh                               ; e8 2d af
     9049    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    87659050    mov ax, strict word 00002h                ; b8 02 00
    8766     call 0166dh                               ; e8 b3 ab
    8767     mov dl, byte [bp+011h]                    ; 8a 56 11
    8768     xor dh, dh                                ; 30 f6
     9051    call 0166dh                               ; e8 23 af
     9052    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    87699053    mov ax, strict word 00004h                ; b8 04 00
    8770     call 0166dh                               ; e8 a8 ab
     9054    call 0166dh                               ; e8 19 af
    87719055    mov ax, strict word 0000bh                ; b8 0b 00
    8772     call 0165ch                               ; e8 91 ab
     9056    call 0165ch                               ; e8 02 af
    87739057    mov bl, al                                ; 88 c3
    87749058    and bl, 060h                              ; 80 e3 60
     
    87779061    and AL, strict byte 001h                  ; 24 01
    87789062    or bl, al                                 ; 08 c3
    8779     mov dl, bl                                ; 88 da
    8780     xor dh, dh                                ; 30 f6
     9063    movzx dx, bl                              ; 0f b6 d3
    87819064    mov ax, strict word 0000bh                ; b8 0b 00
    8782     call 0166dh                               ; e8 89 ab
     9065    call 0166dh                               ; e8 fb ae
    87839066    mov byte [bp+013h], 000h                  ; c6 46 13 00
    87849067    mov byte [bp+012h], bl                    ; 88 5e 12
     
    87869069    retn                                      ; c3
    87879070    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8788     call 06902h                               ; e8 0e fe
     9071    call 0659dh                               ; e8 1b fe
    87899072    test ax, ax                               ; 85 c0
    8790     je short 06afah                           ; 74 02
     9073    je short 06788h                           ; 74 02
    87919074    pop bp                                    ; 5d
    87929075    retn                                      ; c3
    87939076    mov ax, strict word 00009h                ; b8 09 00
    8794     call 0165ch                               ; e8 5c ab
     9077    call 0165ch                               ; e8 ce ae
    87959078    mov byte [bp+010h], al                    ; 88 46 10
    87969079    mov ax, strict word 00008h                ; b8 08 00
    8797     call 0165ch                               ; e8 53 ab
     9080    call 0165ch                               ; e8 c5 ae
    87989081    mov byte [bp+00fh], al                    ; 88 46 0f
    87999082    mov ax, strict word 00007h                ; b8 07 00
    8800     call 0165ch                               ; e8 4a ab
     9083    call 0165ch                               ; e8 bc ae
    88019084    mov byte [bp+00eh], al                    ; 88 46 0e
    88029085    mov ax, strict word 00032h                ; b8 32 00
    8803     call 0165ch                               ; e8 41 ab
     9086    call 0165ch                               ; e8 b3 ae
    88049087    mov byte [bp+011h], al                    ; 88 46 11
    88059088    mov byte [bp+012h], al                    ; 88 46 12
    88069089    pop bp                                    ; 5d
    88079090    retn                                      ; c3
    8808     call 06902h                               ; e8 dc fd
     9091    call 0659dh                               ; e8 e9 fd
    88099092    test ax, ax                               ; 85 c0
    8810     je short 06b2fh                           ; 74 05
    8811     call 068ddh                               ; e8 b0 fd
     9093    je short 067bdh                           ; 74 05
     9094    call 06578h                               ; e8 bd fd
    88129095    pop bp                                    ; 5d
    88139096    retn                                      ; c3
    8814     mov dl, byte [bp+010h]                    ; 8a 56 10
    8815     xor dh, dh                                ; 30 f6
     9097    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    88169098    mov ax, strict word 00009h                ; b8 09 00
    8817     call 0166dh                               ; e8 33 ab
    8818     mov dl, byte [bp+00fh]                    ; 8a 56 0f
    8819     xor dh, dh                                ; 30 f6
     9099    call 0166dh                               ; e8 a6 ae
     9100    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    88209101    mov ax, strict word 00008h                ; b8 08 00
    8821     call 0166dh                               ; e8 28 ab
    8822     mov dl, byte [bp+00eh]                    ; 8a 56 0e
    8823     xor dh, dh                                ; 30 f6
     9102    call 0166dh                               ; e8 9c ae
     9103    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    88249104    mov ax, strict word 00007h                ; b8 07 00
    8825     call 0166dh                               ; e8 1d ab
    8826     mov dl, byte [bp+011h]                    ; 8a 56 11
    8827     xor dh, dh                                ; 30 f6
     9105    call 0166dh                               ; e8 92 ae
     9106    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    88289107    mov ax, strict word 00032h                ; b8 32 00
    8829     call 0166dh                               ; e8 12 ab
     9108    call 0166dh                               ; e8 88 ae
    88309109    mov ax, strict word 0000bh                ; b8 0b 00
    8831     call 0165ch                               ; e8 fb aa
     9110    call 0165ch                               ; e8 71 ae
    88329111    mov bl, al                                ; 88 c3
    88339112    and bl, 07fh                              ; 80 e3 7f
    8834     jmp near 06adah                           ; e9 71 ff
     9113    jmp near 06769h                           ; e9 76 ff
    88359114    mov ax, strict word 0000bh                ; b8 0b 00
    8836     call 0165ch                               ; e8 ed aa
     9115    call 0165ch                               ; e8 63 ae
    88379116    mov bl, al                                ; 88 c3
    88389117    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    88399118    test AL, strict byte 020h                 ; a8 20
    8840     je short 06b7ch                           ; 74 02
     9119    je short 06806h                           ; 74 02
    88419120    pop bp                                    ; 5d
    88429121    retn                                      ; c3
    8843     call 06902h                               ; e8 83 fd
     9122    call 0659dh                               ; e8 94 fd
    88449123    test ax, ax                               ; 85 c0
    8845     je short 06b86h                           ; 74 03
    8846     call 068ddh                               ; e8 57 fd
    8847     mov dl, byte [bp+00fh]                    ; 8a 56 0f
    8848     xor dh, dh                                ; 30 f6
     9124    je short 06810h                           ; 74 03
     9125    call 06578h                               ; e8 68 fd
     9126    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    88499127    mov ax, strict word 00001h                ; b8 01 00
    8850     call 0166dh                               ; e8 dc aa
    8851     mov dl, byte [bp+010h]                    ; 8a 56 10
    8852     xor dh, dh                                ; 30 f6
     9128    call 0166dh                               ; e8 53 ae
     9129    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    88539130    mov ax, strict word 00003h                ; b8 03 00
    8854     call 0166dh                               ; e8 d1 aa
    8855     mov dl, byte [bp+011h]                    ; 8a 56 11
    8856     xor dh, dh                                ; 30 f6
     9131    call 0166dh                               ; e8 49 ae
     9132    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    88579133    mov ax, strict word 00005h                ; b8 05 00
    8858     call 0166dh                               ; e8 c6 aa
     9134    call 0166dh                               ; e8 3f ae
    88599135    mov dx, 000a1h                            ; ba a1 00
    88609136    in AL, DX                                 ; ec
     
    88639139    and AL, strict byte 0feh                  ; 24 fe
    88649140    out DX, AL                                ; ee
    8865     mov dl, bl                                ; 88 da
    8866     and dl, 05fh                              ; 80 e2 5f
    8867     or dl, 020h                               ; 80 ca 20
    8868     xor dh, dh                                ; 30 f6
     9141    mov al, bl                                ; 88 d8
     9142    and AL, strict byte 05fh                  ; 24 5f
     9143    or AL, strict byte 020h                   ; 0c 20
     9144    movzx dx, al                              ; 0f b6 d0
    88699145    mov ax, strict word 0000bh                ; b8 0b 00
    8870     call 0166dh                               ; e8 ad aa
     9146    call 0166dh                               ; e8 27 ae
    88719147    pop bp                                    ; 5d
    88729148    retn                                      ; c3
    88739149    mov ax, strict word 0000bh                ; b8 0b 00
    8874     call 0165ch                               ; e8 94 aa
     9150    call 0165ch                               ; e8 0e ae
    88759151    mov bl, al                                ; 88 c3
    8876     mov dl, al                                ; 88 c2
    8877     and dl, 057h                              ; 80 e2 57
    8878     jmp near 06adch                           ; e9 0a ff
    8879     pop bp                                    ; 5d
    8880     retn                                      ; c3
    8881 send_to_mouse_ctrl_:                         ; 0xf6bd4 LB 0x35
     9152    and AL, strict byte 057h                  ; 24 57
     9153    movzx dx, al                              ; 0f b6 d0
     9154    jmp near 0676ch                           ; e9 14 ff
     9155send_to_mouse_ctrl_:                         ; 0xf6858 LB 0x31
    88829156    push bx                                   ; 53
    88839157    push dx                                   ; 52
     
    88909164    ; sub ah, ah                                ; 2a e4
    88919165    test AL, strict byte 002h                 ; a8 02
    8892     je short 06bf7h                           ; 74 12
    8893     mov ax, 0086ch                            ; b8 6c 08
    8894     push ax                                   ; 50
    8895     mov ax, 00fdeh                            ; b8 de 0f
    8896     push ax                                   ; 50
    8897     mov ax, strict word 00007h                ; b8 07 00
    8898     push ax                                   ; 50
    8899     call 018fah                               ; e8 06 ad
     9166    je short 06877h                           ; 74 0e
     9167    push 0086ch                               ; 68 6c 08
     9168    push 00fd0h                               ; 68 d0 0f
     9169    push strict byte 00007h                   ; 6a 07
     9170    call 018e9h                               ; e8 75 b0
    89009171    add sp, strict byte 00006h                ; 83 c4 06
    89019172    mov AL, strict byte 0d4h                  ; b0 d4
     
    89109181    pop bx                                    ; 5b
    89119182    retn                                      ; c3
    8912 get_mouse_data_:                             ; 0xf6c09 LB 0x38
     9183get_mouse_data_:                             ; 0xf6889 LB 0x38
    89139184    push bx                                   ; 53
    89149185    push cx                                   ; 51
     
    89249195    and ax, strict word 00021h                ; 25 21 00
    89259196    cmp ax, strict word 00021h                ; 3d 21 00
    8926     je short 06c2ah                           ; 74 07
     9197    je short 068aah                           ; 74 07
    89279198    test cx, cx                               ; 85 c9
    8928     je short 06c2ah                           ; 74 03
     9199    je short 068aah                           ; 74 03
    89299200    dec cx                                    ; 49
    8930     jmp short 06c15h                          ; eb eb
     9201    jmp short 06895h                          ; eb eb
    89319202    test cx, cx                               ; 85 c9
    8932     jne short 06c32h                          ; 75 04
     9203    jne short 068b2h                          ; 75 04
    89339204    mov AL, strict byte 001h                  ; b0 01
    8934     jmp short 06c3dh                          ; eb 0b
     9205    jmp short 068bdh                          ; eb 0b
    89359206    mov dx, strict word 00060h                ; ba 60 00
    89369207    in AL, DX                                 ; ec
     
    89439214    pop bx                                    ; 5b
    89449215    retn                                      ; c3
    8945 set_kbd_command_byte_:                       ; 0xf6c41 LB 0x33
     9216set_kbd_command_byte_:                       ; 0xf68c1 LB 0x2f
    89469217    push bx                                   ; 53
    89479218    push dx                                   ; 52
     
    89549225    ; sub ah, ah                                ; 2a e4
    89559226    test AL, strict byte 002h                 ; a8 02
    8956     je short 06c64h                           ; 74 12
    8957     mov ax, 00876h                            ; b8 76 08
    8958     push ax                                   ; 50
    8959     mov ax, 00fdeh                            ; b8 de 0f
    8960     push ax                                   ; 50
    8961     mov ax, strict word 00007h                ; b8 07 00
    8962     push ax                                   ; 50
    8963     call 018fah                               ; e8 99 ac
     9227    je short 068e0h                           ; 74 0e
     9228    push 00876h                               ; 68 76 08
     9229    push 00fd0h                               ; 68 d0 0f
     9230    push strict byte 00007h                   ; 6a 07
     9231    call 018e9h                               ; e8 0c b0
    89649232    add sp, strict byte 00006h                ; 83 c4 06
    89659233    mov AL, strict byte 060h                  ; b0 60
     
    89739241    pop bx                                    ; 5b
    89749242    retn                                      ; c3
    8975 _int74_function:                             ; 0xf6c74 LB 0xd2
    8976     push bp                                   ; 55
    8977     mov bp, sp                                ; 89 e5
    8978     sub sp, strict byte 00008h                ; 83 ec 08
     9243_int74_function:                             ; 0xf68f0 LB 0xc6
     9244    enter 00008h, 000h                        ; c8 08 00 00
    89799245    mov dx, strict word 0000eh                ; ba 0e 00
    89809246    mov ax, strict word 00040h                ; b8 40 00
    8981     call 0161ch                               ; e8 99 a9
     9247    call 0161ch                               ; e8 1f ad
    89829248    mov cx, ax                                ; 89 c1
    89839249    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    89889254    and AL, strict byte 021h                  ; 24 21
    89899255    cmp AL, strict byte 021h                  ; 3c 21
    8990     jne short 06cb8h                          ; 75 22
     9256    jne near 069a4h                           ; 0f 85 92 00
    89919257    mov dx, strict word 00060h                ; ba 60 00
    89929258    in AL, DX                                 ; ec
     
    89969262    mov dx, strict word 00026h                ; ba 26 00
    89979263    mov ax, cx                                ; 89 c8
    8998     call 01600h                               ; e8 5a a9
    8999     mov byte [bp-002h], al                    ; 88 46 fe
     9264    call 01600h                               ; e8 de ac
     9265    mov byte [bp-006h], al                    ; 88 46 fa
    90009266    mov dx, strict word 00027h                ; ba 27 00
    90019267    mov ax, cx                                ; 89 c8
    9002     call 01600h                               ; e8 4f a9
    9003     mov byte [bp-006h], al                    ; 88 46 fa
     9268    call 01600h                               ; e8 d3 ac
     9269    mov byte [bp-008h], al                    ; 88 46 f8
    90049270    test AL, strict byte 080h                 ; a8 80
    9005     jne short 06cbbh                          ; 75 03
    9006     jmp near 06d32h                           ; e9 77 00
     9271    je short 069a4h                           ; 74 70
     9272    mov al, byte [bp-008h]                    ; 8a 46 f8
     9273    and AL, strict byte 007h                  ; 24 07
     9274    mov byte [bp-002h], al                    ; 88 46 fe
    90079275    mov al, byte [bp-006h]                    ; 8a 46 fa
    90089276    and AL, strict byte 007h                  ; 24 07
    90099277    mov byte [bp-004h], al                    ; 88 46 fc
    9010     mov al, byte [bp-002h]                    ; 8a 46 fe
    9011     and AL, strict byte 007h                  ; 24 07
    9012     mov byte [bp-008h], al                    ; 88 46 f8
    9013     mov al, bl                                ; 88 d8
    9014     xor ah, ah                                ; 30 e4
    9015     mov bx, ax                                ; 89 c3
    9016     mov al, byte [bp-008h]                    ; 8a 46 f8
    9017     mov dx, ax                                ; 89 c2
     9278    xor bh, bh                                ; 30 ff
     9279    movzx dx, al                              ; 0f b6 d0
    90189280    add dx, strict byte 00028h                ; 83 c2 28
    90199281    mov ax, cx                                ; 89 c8
    9020     call 0160eh                               ; e8 30 a9
    9021     mov al, byte [bp-008h]                    ; 8a 46 f8
    9022     cmp al, byte [bp-004h]                    ; 3a 46 fc
    9023     jc short 06d22h                           ; 72 3c
     9282    call 0160eh                               ; e8 bd ac
     9283    mov al, byte [bp-004h]                    ; 8a 46 fc
     9284    cmp al, byte [bp-002h]                    ; 3a 46 fe
     9285    jc short 06995h                           ; 72 3c
    90249286    mov dx, strict word 00028h                ; ba 28 00
    90259287    mov ax, cx                                ; 89 c8
    9026     call 01600h                               ; e8 12 a9
     9288    call 01600h                               ; e8 9f ac
    90279289    xor ah, ah                                ; 30 e4
    90289290    mov word [bp+00ch], ax                    ; 89 46 0c
    90299291    mov dx, strict word 00029h                ; ba 29 00
    90309292    mov ax, cx                                ; 89 c8
    9031     call 01600h                               ; e8 05 a9
     9293    call 01600h                               ; e8 92 ac
    90329294    xor ah, ah                                ; 30 e4
    90339295    mov word [bp+00ah], ax                    ; 89 46 0a
    90349296    mov dx, strict word 0002ah                ; ba 2a 00
    90359297    mov ax, cx                                ; 89 c8
    9036     call 01600h                               ; e8 f8 a8
     9298    call 01600h                               ; e8 85 ac
    90379299    xor ah, ah                                ; 30 e4
    90389300    mov word [bp+008h], ax                    ; 89 46 08
    90399301    xor al, al                                ; 30 c0
    90409302    mov word [bp+006h], ax                    ; 89 46 06
    9041     mov byte [bp-002h], ah                    ; 88 66 fe
    9042     test byte [bp-006h], 080h                 ; f6 46 fa 80
    9043     je short 06d25h                           ; 74 0a
     9303    mov byte [bp-006h], ah                    ; 88 66 fa
     9304    test byte [bp-008h], 080h                 ; f6 46 f8 80
     9305    je short 06998h                           ; 74 0a
    90449306    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9045     jmp short 06d25h                          ; eb 03
    9046     inc byte [bp-002h]                        ; fe 46 fe
    9047     mov bl, byte [bp-002h]                    ; 8a 5e fe
    9048     xor bh, bh                                ; 30 ff
     9307    jmp short 06998h                          ; eb 03
     9308    inc byte [bp-006h]                        ; fe 46 fa
     9309    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    90499310    mov dx, strict word 00026h                ; ba 26 00
    90509311    mov ax, cx                                ; 89 c8
    9051     call 0160eh                               ; e8 dc a8
    9052     mov sp, bp                                ; 89 ec
    9053     pop bp                                    ; 5d
    9054     retn                                      ; c3
    9055     mov byte [di+004h], ch                    ; 88 6d 04
    9056     outsb                                     ; 6e
    9057     test byte [bp+019h], ch                   ; 84 6e 19
    9058     outsw                                     ; 6f
    9059     mov bp, word [bx-031h]                    ; 8b 6f cf
    9060     insw                                      ; 6d
    9061     mov BL, strict byte 06fh                  ; b3 6f
    9062     db  080h
    9063     db  070h
    9064 _int15_function_mouse:                       ; 0xf6d46 LB 0x39f
     9312    call 0160eh                               ; e8 6a ac
     9313    leave                                     ; c9
     9314    retn                                      ; c3
     9315    clc                                       ; f8
     9316    imul bp, word [bp+06ah], 06af1h           ; 69 6e 6a f1 6a
     9317    db  082h, 06bh, 0f0h, 06bh
     9318    ; sub byte [bp+di-010h], 06bh               ; 82 6b f0 6b
     9319    inc sp                                    ; 44
     9320    push strict byte 00018h                   ; 6a 18
     9321    insb                                      ; 6c
     9322    db  0ddh
     9323    insb                                      ; 6c
     9324_int15_function_mouse:                       ; 0xf69b6 LB 0x386
    90659325    push si                                   ; 56
    9066     push bp                                   ; 55
    9067     mov bp, sp                                ; 89 e5
    9068     sub sp, strict byte 00006h                ; 83 ec 06
     9326    enter 00006h, 000h                        ; c8 06 00 00
    90699327    mov dx, strict word 0000eh                ; ba 0e 00
    90709328    mov ax, strict word 00040h                ; b8 40 00
    9071     call 0161ch                               ; e8 c6 a8
     9329    call 0161ch                               ; e8 58 ac
    90729330    mov cx, ax                                ; 89 c1
    90739331    cmp byte [bp+014h], 007h                  ; 80 7e 14 07
    9074     jbe short 06d69h                          ; 76 0b
     9332    jbe short 069d7h                          ; 76 0b
    90759333    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    90769334    mov byte [bp+015h], 001h                  ; c6 46 15 01
    9077     jmp near 070e0h                           ; e9 77 03
     9335    leave                                     ; c9
     9336    pop si                                    ; 5e
     9337    retn                                      ; c3
    90789338    mov ax, strict word 00065h                ; b8 65 00
    9079     call 06c41h                               ; e8 d2 fe
     9339    call 068c1h                               ; e8 e4 fe
    90809340    and word [bp+01ah], strict byte 0fffeh    ; 83 66 1a fe
    90819341    mov byte [bp+015h], 000h                  ; c6 46 15 00
    9082     mov bl, byte [bp+014h]                    ; 8a 5e 14
    9083     cmp bl, 007h                              ; 80 fb 07
    9084     jnbe short 06dddh                         ; 77 5e
    9085     xor bh, bh                                ; 30 ff
    9086     sal bx, 1                                 ; d1 e3
    9087     jmp word [cs:bx+06d36h]                   ; 2e ff a7 36 6d
     9342    mov al, byte [bp+014h]                    ; 8a 46 14
     9343    cmp AL, strict byte 007h                  ; 3c 07
     9344    jnbe near 06d20h                          ; 0f 87 32 03
     9345    movzx si, al                              ; 0f b6 f0
     9346    add si, si                                ; 01 f6
     9347    jmp word [cs:si+069a6h]                   ; 2e ff a4 a6 69
    90889348    cmp byte [bp+00fh], 001h                  ; 80 7e 0f 01
    9089     jnbe short 06de0h                         ; 77 52
     9349    jnbe near 06d2bh                          ; 0f 87 2b 03
    90909350    mov dx, strict word 00027h                ; ba 27 00
    90919351    mov ax, cx                                ; 89 c8
    9092     call 01600h                               ; e8 6a a8
     9352    call 01600h                               ; e8 f8 ab
    90939353    test AL, strict byte 080h                 ; a8 80
    9094     jne short 06da5h                          ; 75 0b
     9354    jne short 06a17h                          ; 75 0b
    90959355    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    90969356    mov byte [bp+015h], 005h                  ; c6 46 15 05
    9097     jmp near 070dah                           ; e9 35 03
     9357    jmp near 06d33h                           ; e9 1c 03
    90989358    cmp byte [bp+00fh], 000h                  ; 80 7e 0f 00
    9099     jne short 06dafh                          ; 75 04
    9100     mov AL, strict byte 0f5h                  ; b0 f5
    9101     jmp short 06db1h                          ; eb 02
    9102     mov AL, strict byte 0f4h                  ; b0 f4
     9359    db  00fh, 094h, 0c0h
     9360    ; sete al                                   ; 0f 94 c0
     9361    add AL, strict byte 0f4h                  ; 04 f4
    91039362    xor ah, ah                                ; 30 e4
    9104     call 06bd4h                               ; e8 1e fe
     9363    call 06858h                               ; e8 33 fe
    91059364    test al, al                               ; 84 c0
    9106     jne short 06de3h                          ; 75 29
     9365    jne near 06cb9h                           ; 0f 85 8e 02
    91079366    mov dx, ss                                ; 8c d2
    9108     lea ax, [bp-004h]                         ; 8d 46 fc
    9109     call 06c09h                               ; e8 47 fe
     9367    lea ax, [bp-006h]                         ; 8d 46 fa
     9368    call 06889h                               ; e8 56 fe
    91109369    test al, al                               ; 84 c0
    9111     je short 06dcch                           ; 74 06
    9112     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9113     jne short 06de3h                          ; 75 17
    9114     jmp near 070dah                           ; e9 0b 03
     9370    je near 06d33h                            ; 0f 84 fa 02
     9371    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
     9372    jne near 06cb9h                           ; 0f 85 78 02
     9373    jmp near 06d33h                           ; e9 ef 02
    91159374    mov al, byte [bp+00fh]                    ; 8a 46 0f
    91169375    cmp AL, strict byte 001h                  ; 3c 01
    9117     jc short 06ddah                           ; 72 04
     9376    jc short 06a4fh                           ; 72 04
    91189377    cmp AL, strict byte 008h                  ; 3c 08
    9119     jbe short 06de6h                          ; 76 0c
    9120     jmp near 06f81h                           ; e9 a4 01
    9121     jmp near 070c4h                           ; e9 e4 02
    9122     jmp near 070d2h                           ; e9 ef 02
    9123     jmp near 07058h                           ; e9 72 02
     9378    jbe short 06a52h                          ; 76 03
     9379    jmp near 06be5h                           ; e9 93 01
    91249380    mov dx, strict word 00027h                ; ba 27 00
    91259381    mov ax, cx                                ; 89 c8
    9126     call 01600h                               ; e8 12 a8
     9382    call 01600h                               ; e8 a6 ab
    91279383    mov ah, byte [bp+00fh]                    ; 8a 66 0f
    91289384    db  0feh, 0cch
    91299385    ; dec ah                                    ; fe cc
    9130     mov bl, al                                ; 88 c3
    9131     and bl, 0f8h                              ; 80 e3 f8
    9132     or bl, ah                                 ; 08 e3
    9133     xor bh, bh                                ; 30 ff
     9386    and AL, strict byte 0f8h                  ; 24 f8
     9387    or al, ah                                 ; 08 e0
     9388    movzx bx, al                              ; 0f b6 d8
    91349389    mov dx, strict word 00027h                ; ba 27 00
    91359390    mov ax, cx                                ; 89 c8
    9136     call 0160eh                               ; e8 0a a8
     9391    call 0160eh                               ; e8 a0 ab
    91379392    mov dx, strict word 00026h                ; ba 26 00
    91389393    mov ax, cx                                ; 89 c8
    9139     call 01600h                               ; e8 f4 a7
    9140     mov bl, al                                ; 88 c3
    9141     and bl, 0f8h                              ; 80 e3 f8
    9142     xor bh, bh                                ; 30 ff
     9394    call 01600h                               ; e8 8a ab
     9395    and AL, strict byte 0f8h                  ; 24 f8
     9396    movzx bx, al                              ; 0f b6 d8
    91439397    mov dx, strict word 00026h                ; ba 26 00
    91449398    mov ax, cx                                ; 89 c8
    9145     call 0160eh                               ; e8 f3 a7
     9399    call 0160eh                               ; e8 8b ab
    91469400    mov ax, 000ffh                            ; b8 ff 00
    9147     call 06bd4h                               ; e8 b3 fd
     9401    call 06858h                               ; e8 cf fd
    91489402    test al, al                               ; 84 c0
    9149     jne short 06de3h                          ; 75 be
     9403    jne near 06cb9h                           ; 0f 85 2a 02
     9404    mov dx, ss                                ; 8c d2
     9405    lea ax, [bp-002h]                         ; 8d 46 fe
     9406    call 06889h                               ; e8 f2 fd
     9407    mov cl, al                                ; 88 c1
     9408    cmp byte [bp-002h], 0feh                  ; 80 7e fe fe
     9409    jne short 06aaah                          ; 75 0b
     9410    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9411    mov byte [bp+015h], 004h                  ; c6 46 15 04
     9412    jmp near 06d33h                           ; e9 89 02
     9413    cmp byte [bp-002h], 0fah                  ; 80 7e fe fa
     9414    je short 06ac0h                           ; 74 10
     9415    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     9416    push ax                                   ; 50
     9417    push 00881h                               ; 68 81 08
     9418    push strict byte 00007h                   ; 6a 07
     9419    call 018e9h                               ; e8 2c ae
     9420    add sp, strict byte 00006h                ; 83 c4 06
     9421    test cl, cl                               ; 84 c9
     9422    jne near 06cb9h                           ; 0f 85 f3 01
    91509423    mov dx, ss                                ; 8c d2
    91519424    lea ax, [bp-006h]                         ; 8d 46 fa
    9152     call 06c09h                               ; e8 dc fd
     9425    call 06889h                               ; e8 bb fd
     9426    test al, al                               ; 84 c0
     9427    jne near 06cb9h                           ; 0f 85 e5 01
     9428    mov dx, ss                                ; 8c d2
     9429    lea ax, [bp-004h]                         ; 8d 46 fc
     9430    call 06889h                               ; e8 ad fd
     9431    test al, al                               ; 84 c0
     9432    jne near 06cb9h                           ; 0f 85 d7 01
     9433    mov al, byte [bp-006h]                    ; 8a 46 fa
     9434    mov byte [bp+00eh], al                    ; 88 46 0e
     9435    mov al, byte [bp-004h]                    ; 8a 46 fc
     9436    mov byte [bp+00fh], al                    ; 88 46 0f
     9437    jmp near 06d33h                           ; e9 42 02
     9438    mov al, byte [bp+00fh]                    ; 8a 46 0f
     9439    cmp AL, strict byte 003h                  ; 3c 03
     9440    jc short 06b08h                           ; 72 10
     9441    jbe short 06b26h                          ; 76 2c
     9442    cmp AL, strict byte 006h                  ; 3c 06
     9443    je short 06b38h                           ; 74 3a
     9444    cmp AL, strict byte 005h                  ; 3c 05
     9445    je short 06b32h                           ; 74 30
     9446    cmp AL, strict byte 004h                  ; 3c 04
     9447    je short 06b2ch                           ; 74 26
     9448    jmp short 06b3eh                          ; eb 36
     9449    cmp AL, strict byte 002h                  ; 3c 02
     9450    je short 06b20h                           ; 74 14
     9451    cmp AL, strict byte 001h                  ; 3c 01
     9452    je short 06b1ah                           ; 74 0a
     9453    test al, al                               ; 84 c0
     9454    jne short 06b3eh                          ; 75 2a
     9455    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
     9456    jmp short 06b42h                          ; eb 28
     9457    mov byte [bp-006h], 014h                  ; c6 46 fa 14
     9458    jmp short 06b42h                          ; eb 22
     9459    mov byte [bp-006h], 028h                  ; c6 46 fa 28
     9460    jmp short 06b42h                          ; eb 1c
     9461    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
     9462    jmp short 06b42h                          ; eb 16
     9463    mov byte [bp-006h], 050h                  ; c6 46 fa 50
     9464    jmp short 06b42h                          ; eb 10
     9465    mov byte [bp-006h], 064h                  ; c6 46 fa 64
     9466    jmp short 06b42h                          ; eb 0a
     9467    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
     9468    jmp short 06b42h                          ; eb 04
     9469    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     9470    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     9471    jbe short 06b77h                          ; 76 2f
     9472    mov ax, 000f3h                            ; b8 f3 00
     9473    call 06858h                               ; e8 0a fd
     9474    test al, al                               ; 84 c0
     9475    jne short 06b6ch                          ; 75 1a
     9476    mov dx, ss                                ; 8c d2
     9477    lea ax, [bp-004h]                         ; 8d 46 fc
     9478    call 06889h                               ; e8 2f fd
     9479    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9480    call 06858h                               ; e8 f7 fc
     9481    mov dx, ss                                ; 8c d2
     9482    lea ax, [bp-004h]                         ; 8d 46 fc
     9483    call 06889h                               ; e8 20 fd
     9484    jmp near 06d33h                           ; e9 c7 01
     9485    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9486    mov byte [bp+015h], 003h                  ; c6 46 15 03
     9487    jmp near 06d33h                           ; e9 bc 01
     9488    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9489    mov byte [bp+015h], 002h                  ; c6 46 15 02
     9490    jmp near 06d33h                           ; e9 b1 01
     9491    cmp byte [bp+00fh], 004h                  ; 80 7e 0f 04
     9492    jnc short 06be5h                          ; 73 5d
     9493    mov ax, 000e8h                            ; b8 e8 00
     9494    call 06858h                               ; e8 ca fc
     9495    test al, al                               ; 84 c0
     9496    jne short 06bdah                          ; 75 48
     9497    mov dx, ss                                ; 8c d2
     9498    lea ax, [bp-006h]                         ; 8d 46 fa
     9499    call 06889h                               ; e8 ef fc
     9500    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
     9501    je short 06bb0h                           ; 74 10
     9502    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9503    push ax                                   ; 50
     9504    push 008ach                               ; 68 ac 08
     9505    push strict byte 00007h                   ; 6a 07
     9506    call 018e9h                               ; e8 3c ad
     9507    add sp, strict byte 00006h                ; 83 c4 06
     9508    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
     9509    call 06858h                               ; e8 a1 fc
     9510    mov dx, ss                                ; 8c d2
     9511    lea ax, [bp-006h]                         ; 8d 46 fa
     9512    call 06889h                               ; e8 ca fc
     9513    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
     9514    je near 06d33h                            ; 0f 84 6c 01
     9515    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9516    push ax                                   ; 50
     9517    push 008ach                               ; 68 ac 08
     9518    push strict byte 00007h                   ; 6a 07
     9519    call 018e9h                               ; e8 15 ad
     9520    add sp, strict byte 00006h                ; 83 c4 06
     9521    jmp near 06d33h                           ; e9 59 01
     9522    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9523    mov byte [bp+015h], 003h                  ; c6 46 15 03
     9524    jmp near 06d33h                           ; e9 4e 01
     9525    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9526    mov byte [bp+015h], 002h                  ; c6 46 15 02
     9527    jmp near 06d33h                           ; e9 43 01
     9528    mov ax, 000f2h                            ; b8 f2 00
     9529    call 06858h                               ; e8 62 fc
     9530    test al, al                               ; 84 c0
     9531    jne short 06c0dh                          ; 75 13
     9532    mov dx, ss                                ; 8c d2
     9533    lea ax, [bp-006h]                         ; 8d 46 fa
     9534    call 06889h                               ; e8 87 fc
     9535    mov dx, ss                                ; 8c d2
     9536    lea ax, [bp-004h]                         ; 8d 46 fc
     9537    call 06889h                               ; e8 7f fc
     9538    jmp near 06ae8h                           ; e9 db fe
     9539    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
     9540    mov byte [bp+015h], 003h                  ; c6 46 15 03
     9541    jmp near 06d33h                           ; e9 1b 01
     9542    mov al, byte [bp+00fh]                    ; 8a 46 0f
     9543    test al, al                               ; 84 c0
     9544    jbe short 06c26h                          ; 76 07
     9545    cmp AL, strict byte 002h                  ; 3c 02
     9546    jbe short 06c8fh                          ; 76 6c
     9547    jmp near 06cc3h                           ; e9 9d 00
     9548    mov ax, 000e9h                            ; b8 e9 00
     9549    call 06858h                               ; e8 2c fc
     9550    test al, al                               ; 84 c0
     9551    jne near 06cb9h                           ; 0f 85 87 00
     9552    mov dx, ss                                ; 8c d2
     9553    lea ax, [bp-006h]                         ; 8d 46 fa
     9554    call 06889h                               ; e8 4f fc
    91539555    mov cl, al                                ; 88 c1
    9154     cmp byte [bp-006h], 0feh                  ; 80 7e fa fe
    9155     jne short 06e3fh                          ; 75 0a
    9156     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9157     mov byte [bp+015h], 004h                  ; c6 46 15 04
    9158     jmp short 06dcch                          ; eb 8d
    91599556    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9160     je short 06e59h                           ; 74 14
    9161     mov al, byte [bp-006h]                    ; 8a 46 fa
    9162     xor ah, ah                                ; 30 e4
     9557    je short 06c52h                           ; 74 10
     9558    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    91639559    push ax                                   ; 50
    9164     mov ax, 00881h                            ; b8 81 08
    9165     push ax                                   ; 50
    9166     mov ax, strict word 00007h                ; b8 07 00
    9167     push ax                                   ; 50
    9168     call 018fah                               ; e8 a4 aa
     9560    push 008ach                               ; 68 ac 08
     9561    push strict byte 00007h                   ; 6a 07
     9562    call 018e9h                               ; e8 9a ac
    91699563    add sp, strict byte 00006h                ; 83 c4 06
    91709564    test cl, cl                               ; 84 c9
    9171     jne short 06de3h                          ; 75 86
     9565    jne short 06cb9h                          ; 75 63
     9566    mov dx, ss                                ; 8c d2
     9567    lea ax, [bp-006h]                         ; 8d 46 fa
     9568    call 06889h                               ; e8 2b fc
     9569    test al, al                               ; 84 c0
     9570    jne short 06cb9h                          ; 75 57
    91729571    mov dx, ss                                ; 8c d2
    91739572    lea ax, [bp-004h]                         ; 8d 46 fc
    9174     call 06c09h                               ; e8 a4 fd
     9573    call 06889h                               ; e8 1f fc
    91759574    test al, al                               ; 84 c0
    9176     jne short 06ebfh                          ; 75 56
     9575    jne short 06cb9h                          ; 75 4b
    91779576    mov dx, ss                                ; 8c d2
    91789577    lea ax, [bp-002h]                         ; 8d 46 fe
    9179     call 06c09h                               ; e8 98 fd
     9578    call 06889h                               ; e8 13 fc
    91809579    test al, al                               ; 84 c0
    9181     jne short 06ebfh                          ; 75 4a
     9580    jne short 06cb9h                          ; 75 3f
     9581    mov al, byte [bp-006h]                    ; 8a 46 fa
     9582    mov byte [bp+00eh], al                    ; 88 46 0e
    91829583    mov al, byte [bp-004h]                    ; 8a 46 fc
    9183     mov byte [bp+00eh], al                    ; 88 46 0e
     9584    mov byte [bp+012h], al                    ; 88 46 12
    91849585    mov al, byte [bp-002h]                    ; 8a 46 fe
    9185     mov byte [bp+00fh], al                    ; 88 46 0f
    9186     jmp near 070dah                           ; e9 56 02
    9187     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9188     cmp AL, strict byte 003h                  ; 3c 03
    9189     jc short 06e9bh                           ; 72 10
    9190     jbe short 06eb9h                          ; 76 2c
    9191     cmp AL, strict byte 006h                  ; 3c 06
    9192     je short 06eceh                           ; 74 3d
    9193     cmp AL, strict byte 005h                  ; 3c 05
    9194     je short 06ec8h                           ; 74 33
    9195     cmp AL, strict byte 004h                  ; 3c 04
    9196     je short 06ec2h                           ; 74 29
    9197     jmp short 06ed4h                          ; eb 39
    9198     cmp AL, strict byte 002h                  ; 3c 02
    9199     je short 06eb3h                           ; 74 14
     9586    mov byte [bp+010h], al                    ; 88 46 10
     9587    jmp near 06d33h                           ; e9 a4 00
    92009588    cmp AL, strict byte 001h                  ; 3c 01
    9201     je short 06eadh                           ; 74 0a
    9202     test al, al                               ; 84 c0
    9203     jne short 06ed4h                          ; 75 2d
    9204     mov byte [bp-004h], 00ah                  ; c6 46 fc 0a
    9205     jmp short 06ed8h                          ; eb 2b
    9206     mov byte [bp-004h], 014h                  ; c6 46 fc 14
    9207     jmp short 06ed8h                          ; eb 25
    9208     mov byte [bp-004h], 028h                  ; c6 46 fc 28
    9209     jmp short 06ed8h                          ; eb 1f
    9210     mov byte [bp-004h], 03ch                  ; c6 46 fc 3c
    9211     jmp short 06ed8h                          ; eb 19
    9212     jmp near 07058h                           ; e9 96 01
    9213     mov byte [bp-004h], 050h                  ; c6 46 fc 50
    9214     jmp short 06ed8h                          ; eb 10
    9215     mov byte [bp-004h], 064h                  ; c6 46 fc 64
    9216     jmp short 06ed8h                          ; eb 0a
    9217     mov byte [bp-004h], 0c8h                  ; c6 46 fc c8
    9218     jmp short 06ed8h                          ; eb 04
    9219     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    9220     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9221     jbe short 06f0eh                          ; 76 30
    9222     mov ax, 000f3h                            ; b8 f3 00
    9223     call 06bd4h                               ; e8 f0 fc
    9224     test al, al                               ; 84 c0
    9225     jne short 06f03h                          ; 75 1b
     9589    jne short 06c98h                          ; 75 05
     9590    mov ax, 000e6h                            ; b8 e6 00
     9591    jmp short 06c9bh                          ; eb 03
     9592    mov ax, 000e7h                            ; b8 e7 00
     9593    call 06858h                               ; e8 ba fb
     9594    mov cl, al                                ; 88 c1
     9595    test cl, cl                               ; 84 c9
     9596    jne short 06cb3h                          ; 75 0f
    92269597    mov dx, ss                                ; 8c d2
    9227     lea ax, [bp-002h]                         ; 8d 46 fe
    9228     call 06c09h                               ; e8 19 fd
    9229     mov al, byte [bp-004h]                    ; 8a 46 fc
    9230     xor ah, ah                                ; 30 e4
    9231     call 06bd4h                               ; e8 dc fc
    9232     mov dx, ss                                ; 8c d2
    9233     lea ax, [bp-002h]                         ; 8d 46 fe
    9234     call 06c09h                               ; e8 09 fd
    9235     jmp near 070dah                           ; e9 d7 01
     9598    lea ax, [bp-006h]                         ; 8d 46 fa
     9599    call 06889h                               ; e8 dd fb
     9600    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
     9601    db  00fh, 095h, 0c1h
     9602    ; setne cl                                  ; 0f 95 c1
     9603    test cl, cl                               ; 84 c9
     9604    je near 06d33h                            ; 0f 84 7a 00
    92369605    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    92379606    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9238     jmp near 070dah                           ; e9 cc 01
    9239     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9240     mov byte [bp+015h], 002h                  ; c6 46 15 02
    9241     jmp near 070dah                           ; e9 c1 01
    9242     cmp byte [bp+00fh], 004h                  ; 80 7e 0f 04
    9243     jnc short 06f81h                          ; 73 62
    9244     mov ax, 000e8h                            ; b8 e8 00
    9245     call 06bd4h                               ; e8 af fc
    9246     test al, al                               ; 84 c0
    9247     jne short 06f77h                          ; 75 4e
    9248     mov dx, ss                                ; 8c d2
    9249     lea ax, [bp-004h]                         ; 8d 46 fc
    9250     call 06c09h                               ; e8 d8 fc
    9251     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9252     je short 06f4bh                           ; 74 14
    9253     mov al, byte [bp-004h]                    ; 8a 46 fc
    9254     xor ah, ah                                ; 30 e4
     9607    jmp short 06d33h                          ; eb 70
     9608    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    92559609    push ax                                   ; 50
    9256     mov ax, 008ach                            ; b8 ac 08
    9257     push ax                                   ; 50
    9258     mov ax, strict word 00007h                ; b8 07 00
    9259     push ax                                   ; 50
    9260     call 018fah                               ; e8 b2 a9
    9261     add sp, strict byte 00006h                ; 83 c4 06
    9262     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9263     xor ah, ah                                ; 30 e4
    9264     call 06bd4h                               ; e8 81 fc
    9265     mov dx, ss                                ; 8c d2
    9266     lea ax, [bp-004h]                         ; 8d 46 fc
    9267     call 06c09h                               ; e8 ae fc
    9268     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9269     je short 06fb0h                           ; 74 4f
    9270     mov al, byte [bp-004h]                    ; 8a 46 fc
    9271     xor ah, ah                                ; 30 e4
    9272     push ax                                   ; 50
    9273     mov ax, 008ach                            ; b8 ac 08
    9274     push ax                                   ; 50
    9275     mov ax, strict word 00007h                ; b8 07 00
    9276     push ax                                   ; 50
    9277     call 018fah                               ; e8 88 a9
    9278     add sp, strict byte 00006h                ; 83 c4 06
    9279     jmp short 06fb0h                          ; eb 39
    9280     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9281     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9282     jmp short 06fb0h                          ; eb 2f
    9283     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9284     mov byte [bp+015h], 002h                  ; c6 46 15 02
    9285     jmp short 06fb0h                          ; eb 25
    9286     mov ax, 000f2h                            ; b8 f2 00
    9287     call 06bd4h                               ; e8 43 fc
    9288     test al, al                               ; 84 c0
    9289     jne short 06fa8h                          ; 75 13
    9290     mov dx, ss                                ; 8c d2
    9291     lea ax, [bp-004h]                         ; 8d 46 fc
    9292     call 06c09h                               ; e8 6c fc
    9293     mov dx, ss                                ; 8c d2
    9294     lea ax, [bp-002h]                         ; 8d 46 fe
    9295     call 06c09h                               ; e8 64 fc
    9296     jmp near 06e7bh                           ; e9 d3 fe
    9297     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9298     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9299     jmp near 070dah                           ; e9 27 01
    9300     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9301     test al, al                               ; 84 c0
    9302     jbe short 06fc3h                          ; 76 09
    9303     cmp AL, strict byte 002h                  ; 3c 02
    9304     jbe short 06fc1h                          ; 76 03
    9305     jmp near 07062h                           ; e9 a1 00
    9306     jmp short 0702dh                          ; eb 6a
    9307     mov ax, 000e9h                            ; b8 e9 00
    9308     call 06bd4h                               ; e8 0b fc
    9309     test al, al                               ; 84 c0
    9310     jne short 07036h                          ; 75 69
    9311     mov dx, ss                                ; 8c d2
    9312     lea ax, [bp-004h]                         ; 8d 46 fc
    9313     call 06c09h                               ; e8 34 fc
    9314     mov cl, al                                ; 88 c1
    9315     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9316     je short 06ff1h                           ; 74 14
    9317     mov al, byte [bp-004h]                    ; 8a 46 fc
    9318     xor ah, ah                                ; 30 e4
    9319     push ax                                   ; 50
    9320     mov ax, 008ach                            ; b8 ac 08
    9321     push ax                                   ; 50
    9322     mov ax, strict word 00007h                ; b8 07 00
    9323     push ax                                   ; 50
    9324     call 018fah                               ; e8 0c a9
    9325     add sp, strict byte 00006h                ; 83 c4 06
    9326     test cl, cl                               ; 84 c9
    9327     jne short 07058h                          ; 75 63
    9328     mov dx, ss                                ; 8c d2
    9329     lea ax, [bp-004h]                         ; 8d 46 fc
    9330     call 06c09h                               ; e8 0c fc
    9331     test al, al                               ; 84 c0
    9332     jne short 07058h                          ; 75 57
    9333     mov dx, ss                                ; 8c d2
    9334     lea ax, [bp-002h]                         ; 8d 46 fe
    9335     call 06c09h                               ; e8 00 fc
    9336     test al, al                               ; 84 c0
    9337     jne short 07058h                          ; 75 4b
    9338     mov dx, ss                                ; 8c d2
    9339     lea ax, [bp-006h]                         ; 8d 46 fa
    9340     call 06c09h                               ; e8 f4 fb
    9341     test al, al                               ; 84 c0
    9342     jne short 07058h                          ; 75 3f
    9343     mov al, byte [bp-004h]                    ; 8a 46 fc
    9344     mov byte [bp+00eh], al                    ; 88 46 0e
    9345     mov al, byte [bp-002h]                    ; 8a 46 fe
    9346     mov byte [bp+012h], al                    ; 88 46 12
    9347     mov al, byte [bp-006h]                    ; 8a 46 fa
    9348     mov byte [bp+010h], al                    ; 88 46 10
    9349     jmp short 06fb0h                          ; eb 83
    9350     cmp AL, strict byte 001h                  ; 3c 01
    9351     jne short 07038h                          ; 75 07
    9352     mov ax, 000e6h                            ; b8 e6 00
    9353     jmp short 0703bh                          ; eb 05
    9354     jmp short 07058h                          ; eb 20
    9355     mov ax, 000e7h                            ; b8 e7 00
    9356     call 06bd4h                               ; e8 96 fb
    9357     mov cl, al                                ; 88 c1
    9358     test cl, cl                               ; 84 c9
    9359     jne short 07054h                          ; 75 10
    9360     mov dx, ss                                ; 8c d2
    9361     lea ax, [bp-004h]                         ; 8d 46 fc
    9362     call 06c09h                               ; e8 bd fb
    9363     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9364     je short 07054h                           ; 74 02
    9365     mov CL, strict byte 001h                  ; b1 01
    9366     test cl, cl                               ; 84 c9
    9367     je short 070c2h                           ; 74 6a
    9368     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9369     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9370     jmp short 070c2h                          ; eb 60
    9371     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9372     xor ah, ah                                ; 30 e4
    9373     push ax                                   ; 50
    9374     mov ax, 008d8h                            ; b8 d8 08
    9375     push ax                                   ; 50
    9376     mov ax, strict word 00007h                ; b8 07 00
    9377     push ax                                   ; 50
    9378     call 018fah                               ; e8 87 a8
     9610    push 008d8h                               ; 68 d8 08
     9611    push strict byte 00007h                   ; 6a 07
     9612    call 018e9h                               ; e8 19 ac
    93799613    add sp, strict byte 00006h                ; 83 c4 06
    93809614    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    93819615    mov byte [bp+015h], 001h                  ; c6 46 15 01
    9382     jmp short 070dah                          ; eb 5a
     9616    jmp short 06d33h                          ; eb 56
    93839617    mov si, word [bp+00eh]                    ; 8b 76 0e
    93849618    mov bx, si                                ; 89 f3
    93859619    mov dx, strict word 00022h                ; ba 22 00
    93869620    mov ax, cx                                ; 89 c8
    9387     call 0162ah                               ; e8 9d a5
     9621    call 0162ah                               ; e8 40 a9
    93889622    mov bx, word [bp+016h]                    ; 8b 5e 16
    93899623    mov dx, strict word 00024h                ; ba 24 00
    93909624    mov ax, cx                                ; 89 c8
    9391     call 0162ah                               ; e8 92 a5
     9625    call 0162ah                               ; e8 35 a9
    93929626    mov dx, strict word 00027h                ; ba 27 00
    93939627    mov ax, cx                                ; 89 c8
    9394     call 01600h                               ; e8 60 a5
     9628    call 01600h                               ; e8 03 a9
    93959629    mov ah, al                                ; 88 c4
    93969630    test si, si                               ; 85 f6
    9397     jne short 070b4h                          ; 75 0e
     9631    jne short 06d11h                          ; 75 0e
    93989632    cmp word [bp+016h], strict byte 00000h    ; 83 7e 16 00
    9399     jne short 070b4h                          ; 75 08
     9633    jne short 06d11h                          ; 75 08
    94009634    test AL, strict byte 080h                 ; a8 80
    9401     je short 070b6h                           ; 74 06
     9635    je short 06d13h                           ; 74 06
    94029636    and AL, strict byte 07fh                  ; 24 7f
    9403     jmp short 070b6h                          ; eb 02
     9637    jmp short 06d13h                          ; eb 02
    94049638    or AL, strict byte 080h                   ; 0c 80
    9405     mov bl, al                                ; 88 c3
    9406     xor bh, bh                                ; 30 ff
     9639    movzx bx, al                              ; 0f b6 d8
    94079640    mov dx, strict word 00027h                ; ba 27 00
    94089641    mov ax, cx                                ; 89 c8
    9409     call 0160eh                               ; e8 4c a5
    9410     jmp short 070dah                          ; eb 16
    9411     mov ax, 008f2h                            ; b8 f2 08
    9412     push ax                                   ; 50
    9413     mov ax, strict word 00007h                ; b8 07 00
    9414     push ax                                   ; 50
    9415     call 018fah                               ; e8 2b a8
     9642    call 0160eh                               ; e8 f0 a8
     9643    jmp short 06d33h                          ; eb 13
     9644    push 008f2h                               ; 68 f2 08
     9645    push strict byte 00007h                   ; 6a 07
     9646    call 018e9h                               ; e8 c1 ab
    94169647    add sp, strict byte 00004h                ; 83 c4 04
    94179648    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    94189649    mov byte [bp+015h], 001h                  ; c6 46 15 01
    94199650    mov ax, strict word 00047h                ; b8 47 00
    9420     call 06c41h                               ; e8 61 fb
    9421     mov sp, bp                                ; 89 ec
    9422     pop bp                                    ; 5d
     9651    call 068c1h                               ; e8 88 fb
     9652    leave                                     ; c9
    94239653    pop si                                    ; 5e
    94249654    retn                                      ; c3
    9425 _int17_function:                             ; 0xf70e5 LB 0xab
     9655_int17_function:                             ; 0xf6d3c LB 0xb1
    94269656    push si                                   ; 56
    9427     push bp                                   ; 55
    9428     mov bp, sp                                ; 89 e5
    9429     push ax                                   ; 50
     9657    enter 00002h, 000h                        ; c8 02 00 00
    94309658    sti                                       ; fb
    94319659    mov dx, word [bp+010h]                    ; 8b 56 10
    9432     sal dx, 1                                 ; d1 e2
     9660    add dx, dx                                ; 01 d2
    94339661    add dx, strict byte 00008h                ; 83 c2 08
    94349662    mov ax, strict word 00040h                ; b8 40 00
    9435     call 0161ch                               ; e8 23 a5
     9663    call 0161ch                               ; e8 cc a8
    94369664    mov bx, ax                                ; 89 c3
    94379665    mov si, ax                                ; 89 c6
    94389666    cmp byte [bp+015h], 003h                  ; 80 7e 15 03
    9439     jnc short 0710fh                          ; 73 0c
     9667    jnc near 06de6h                           ; 0f 83 8a 00
    94409668    mov ax, word [bp+010h]                    ; 8b 46 10
    94419669    cmp ax, strict word 00003h                ; 3d 03 00
    9442     jnc short 0710fh                          ; 73 04
     9670    jnc near 06de6h                           ; 0f 83 80 00
    94439671    test bx, bx                               ; 85 db
    9444     jnbe short 07112h                         ; 77 03
    9445     jmp near 07187h                           ; e9 75 00
     9672    jbe near 06de6h                           ; 0f 86 7a 00
    94469673    mov dx, ax                                ; 89 c2
    94479674    add dx, strict byte 00078h                ; 83 c2 78
    94489675    mov ax, strict word 00040h                ; b8 40 00
    9449     call 01600h                               ; e8 e3 a4
    9450     mov ch, al                                ; 88 c5
    9451     xor cl, cl                                ; 30 c9
     9676    call 01600h                               ; e8 89 a8
     9677    movzx cx, al                              ; 0f b6 c8
     9678    sal cx, 008h                              ; c1 e1 08
    94529679    cmp byte [bp+015h], 000h                  ; 80 7e 15 00
    9453     jne short 07153h                          ; 75 2c
     9680    jne short 06db0h                          ; 75 2d
    94549681    mov al, byte [bp+014h]                    ; 8a 46 14
    94559682    mov dx, bx                                ; 89 da
     
    94639690    or AL, strict byte 001h                   ; 0c 01
    94649691    out DX, AL                                ; ee
    9465     mov al, byte [bp-002h]                    ; 8a 46 fe
     9692    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    94669693    and AL, strict byte 0feh                  ; 24 fe
    94679694    out DX, AL                                ; ee
     
    94719698    ; sub ah, ah                                ; 2a e4
    94729699    test AL, strict byte 040h                 ; a8 40
    9473     je short 07153h                           ; 74 07
     9700    je short 06db0h                           ; 74 07
    94749701    test cx, cx                               ; 85 c9
    9475     je short 07153h                           ; 74 03
     9702    je short 06db0h                           ; 74 03
    94769703    dec cx                                    ; 49
    9477     jmp short 07142h                          ; eb ef
     9704    jmp short 06d9fh                          ; eb ef
    94789705    cmp byte [bp+015h], 001h                  ; 80 7e 15 01
    9479     jne short 0716eh                          ; 75 15
     9706    jne short 06dcch                          ; 75 16
    94809707    lea dx, [si+002h]                         ; 8d 54 02
    94819708    in AL, DX                                 ; ec
     
    94839710    ; sub ah, ah                                ; 2a e4
    94849711    mov word [bp-002h], ax                    ; 89 46 fe
    9485     mov al, byte [bp-002h]                    ; 8a 46 fe
     9712    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    94869713    and AL, strict byte 0fbh                  ; 24 fb
    94879714    out DX, AL                                ; ee
     
    94969723    mov byte [bp+015h], al                    ; 88 46 15
    94979724    test cx, cx                               ; 85 c9
    9498     jne short 07181h                          ; 75 04
     9725    jne short 06ddfh                          ; 75 04
    94999726    or byte [bp+015h], 001h                   ; 80 4e 15 01
    95009727    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    9501     jmp short 0718bh                          ; eb 04
     9728    leave                                     ; c9
     9729    pop si                                    ; 5e
     9730    retn                                      ; c3
    95029731    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    9503     mov sp, bp                                ; 89 ec
    9504     pop bp                                    ; 5d
     9732    leave                                     ; c9
    95059733    pop si                                    ; 5e
    95069734    retn                                      ; c3
    9507 wait_:                                       ; 0xf7190 LB 0xb1
     9735wait_:                                       ; 0xf6ded LB 0xad
    95089736    push bx                                   ; 53
    95099737    push cx                                   ; 51
    95109738    push si                                   ; 56
    95119739    push di                                   ; 57
    9512     push bp                                   ; 55
    9513     mov bp, sp                                ; 89 e5
    9514     sub sp, strict byte 0000ah                ; 83 ec 0a
     9740    enter 0000ah, 000h                        ; c8 0a 00 00
    95159741    mov si, ax                                ; 89 c6
    9516     mov byte [bp-002h], dl                    ; 88 56 fe
    9517     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     9742    mov byte [bp-004h], dl                    ; 88 56 fc
     9743    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    95189744    pushfw                                    ; 9c
    95199745    pop ax                                    ; 58
     
    95239749    mov dx, 0046ch                            ; ba 6c 04
    95249750    xor ax, ax                                ; 31 c0
    9525     call 01638h                               ; e8 85 a4
     9751    call 01638h                               ; e8 2a a8
    95269752    mov word [bp-006h], ax                    ; 89 46 fa
    95279753    mov bx, dx                                ; 89 d3
     
    95299755    mov dx, 0046ch                            ; ba 6c 04
    95309756    xor ax, ax                                ; 31 c0
    9531     call 01638h                               ; e8 77 a4
     9757    call 01638h                               ; e8 1c a8
    95329758    mov word [bp-00ah], ax                    ; 89 46 f6
    95339759    mov di, dx                                ; 89 d7
    95349760    cmp dx, bx                                ; 39 da
    9535     jnbe short 071d1h                         ; 77 07
    9536     jne short 071d8h                          ; 75 0c
     9761    jnbe short 06e2ch                         ; 77 07
     9762    jne short 06e33h                          ; 75 0c
    95379763    cmp ax, word [bp-006h]                    ; 3b 46 fa
    9538     jbe short 071d8h                          ; 76 07
     9764    jbe short 06e33h                          ; 76 07
    95399765    sub ax, word [bp-006h]                    ; 2b 46 fa
    95409766    sbb dx, bx                                ; 19 da
    9541     jmp short 071e3h                          ; eb 0b
     9767    jmp short 06e3eh                          ; eb 0b
    95429768    cmp dx, bx                                ; 39 da
    9543     jc short 071e3h                           ; 72 07
    9544     jne short 071e7h                          ; 75 09
     9769    jc short 06e3eh                           ; 72 07
     9770    jne short 06e42h                          ; 75 09
    95459771    cmp ax, word [bp-006h]                    ; 3b 46 fa
    9546     jnc short 071e7h                          ; 73 04
     9772    jnc short 06e42h                          ; 73 04
    95479773    sub si, ax                                ; 29 c6
    95489774    sbb cx, dx                                ; 19 d1
     
    95529778    mov ax, 00100h                            ; b8 00 01
    95539779    int 016h                                  ; cd 16
    9554     je short 071fbh                           ; 74 05
     9780    je near 06e58h                            ; 0f 84 05 00
    95559781    mov AL, strict byte 001h                  ; b0 01
    9556     jmp near 071fdh                           ; e9 02 00
     9782    jmp near 06e5ah                           ; e9 02 00
    95579783    db  032h, 0c0h
    95589784    ; xor al, al                                ; 32 c0
    95599785    test al, al                               ; 84 c0
    9560     je short 07227h                           ; 74 26
     9786    je short 06e82h                           ; 74 24
    95619787    db  033h, 0c0h
    95629788    ; xor ax, ax                                ; 33 c0
     
    95649790    xchg ah, al                               ; 86 c4
    95659791    mov dl, al                                ; 88 c2
    9566     mov byte [bp-004h], al                    ; 88 46 fc
    9567     xor ah, ah                                ; 30 e4
     9792    mov byte [bp-002h], al                    ; 88 46 fe
     9793    movzx ax, dl                              ; 0f b6 c2
    95689794    push ax                                   ; 50
    9569     mov ax, 00914h                            ; b8 14 09
    9570     push ax                                   ; 50
    9571     mov ax, strict word 00004h                ; b8 04 00
    9572     push ax                                   ; 50
    9573     call 018fah                               ; e8 e0 a6
     9795    push 00914h                               ; 68 14 09
     9796    push strict byte 00004h                   ; 6a 04
     9797    call 018e9h                               ; e8 74 aa
    95749798    add sp, strict byte 00006h                ; 83 c4 06
    9575     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9576     je short 07227h                           ; 74 04
     9799    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     9800    je short 06e82h                           ; 74 04
    95779801    mov al, dl                                ; 88 d0
    9578     jmp short 07239h                          ; eb 12
     9802    jmp short 06e94h                          ; eb 12
    95799803    test cx, cx                               ; 85 c9
    9580     jnle short 071b8h                         ; 7f 8d
    9581     jne short 07231h                          ; 75 04
     9804    jnle short 06e13h                         ; 7f 8d
     9805    jne short 06e8ch                          ; 75 04
    95829806    test si, si                               ; 85 f6
    9583     jnbe short 071b8h                         ; 77 87
     9807    jnbe short 06e13h                         ; 77 87
    95849808    mov ax, word [bp-008h]                    ; 8b 46 f8
    95859809    push ax                                   ; 50
    95869810    popfw                                     ; 9d
    9587     mov al, byte [bp-004h]                    ; 8a 46 fc
    9588     mov sp, bp                                ; 89 ec
    9589     pop bp                                    ; 5d
     9811    mov al, byte [bp-002h]                    ; 8a 46 fe
     9812    leave                                     ; c9
    95909813    pop di                                    ; 5f
    95919814    pop si                                    ; 5e
     
    95939816    pop bx                                    ; 5b
    95949817    retn                                      ; c3
    9595 read_logo_byte_:                             ; 0xf7241 LB 0x13
     9818read_logo_byte_:                             ; 0xf6e9a LB 0x13
    95969819    push dx                                   ; 52
    95979820    push bp                                   ; 55
     
    96079830    pop dx                                    ; 5a
    96089831    retn                                      ; c3
    9609 read_logo_word_:                             ; 0xf7254 LB 0x11
     9832read_logo_word_:                             ; 0xf6ead LB 0x11
    96109833    push dx                                   ; 52
    96119834    push bp                                   ; 55
     
    96199842    pop dx                                    ; 5a
    96209843    retn                                      ; c3
    9621 print_detected_harddisks_:                   ; 0xf7265 LB 0x159
     9844print_detected_harddisks_:                   ; 0xf6ebe LB 0x12c
    96229845    push bx                                   ; 53
    96239846    push cx                                   ; 51
    96249847    push dx                                   ; 52
    96259848    push si                                   ; 56
    9626     push bp                                   ; 55
    9627     mov bp, sp                                ; 89 e5
    9628     sub sp, strict byte 00006h                ; 83 ec 06
     9849    push di                                   ; 57
     9850    enter 00004h, 000h                        ; c8 04 00 00
    96299851    mov dx, strict word 0000eh                ; ba 0e 00
    96309852    mov ax, strict word 00040h                ; b8 40 00
    9631     call 0161ch                               ; e8 a4 a3
     9853    call 0161ch                               ; e8 4c a7
    96329854    mov si, ax                                ; 89 c6
    9633     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     9855    mov byte [bp-002h], 000h                  ; c6 46 fe 00
     9856    xor cl, cl                                ; 30 c9
    96349857    xor ch, ch                                ; 30 ed
    9635     mov byte [bp-004h], ch                    ; 88 6e fc
    96369858    mov dx, 002c0h                            ; ba c0 02
    9637     call 01600h                               ; e8 77 a3
    9638     mov byte [bp-002h], al                    ; 88 46 fe
    9639     xor cl, cl                                ; 30 c9
    9640     cmp cl, byte [bp-002h]                    ; 3a 4e fe
    9641     jnc short 072f1h                          ; 73 5e
    9642     mov al, cl                                ; 88 c8
    9643     xor ah, ah                                ; 30 e4
    9644     mov dx, ax                                ; 89 c2
     9859    call 01600h                               ; e8 20 a7
     9860    mov byte [bp-004h], al                    ; 88 46 fc
     9861    xor bl, bl                                ; 30 db
     9862    cmp bl, byte [bp-004h]                    ; 3a 5e fc
     9863    jnc near 06fbfh                           ; 0f 83 d3 00
     9864    movzx dx, bl                              ; 0f b6 d3
    96459865    add dx, 002c1h                            ; 81 c2 c1 02
    96469866    mov ax, si                                ; 89 f0
    9647     call 01600h                               ; e8 5e a3
    9648     mov bl, al                                ; 88 c3
     9867    call 01600h                               ; e8 08 a7
     9868    mov bh, al                                ; 88 c7
    96499869    cmp AL, strict byte 00ch                  ; 3c 0c
    9650     jc short 072d3h                           ; 72 2b
     9870    jc short 06f22h                           ; 72 24
     9871    test cl, cl                               ; 84 c9
     9872    jne short 06f0fh                          ; 75 0d
     9873    push 00925h                               ; 68 25 09
     9874    push strict byte 00002h                   ; 6a 02
     9875    call 018e9h                               ; e8 df a9
     9876    add sp, strict byte 00004h                ; 83 c4 04
     9877    mov CL, strict byte 001h                  ; b1 01
     9878    movzx ax, bl                              ; 0f b6 c3
     9879    inc ax                                    ; 40
     9880    push ax                                   ; 50
     9881    push 00939h                               ; 68 39 09
     9882    push strict byte 00002h                   ; 6a 02
     9883    call 018e9h                               ; e8 cd a9
     9884    add sp, strict byte 00006h                ; 83 c4 06
     9885    jmp near 06fbah                           ; e9 98 00
     9886    cmp AL, strict byte 008h                  ; 3c 08
     9887    jc short 06f39h                           ; 72 13
    96519888    test ch, ch                               ; 84 ed
    9652     jne short 072bch                          ; 75 10
    9653     mov ax, 00925h                            ; b8 25 09
    9654     push ax                                   ; 50
    9655     mov ax, strict word 00002h                ; b8 02 00
    9656     push ax                                   ; 50
    9657     call 018fah                               ; e8 43 a6
     9889    jne short 06f37h                          ; 75 0d
     9890    push 0094ch                               ; 68 4c 09
     9891    push strict byte 00002h                   ; 6a 02
     9892    call 018e9h                               ; e8 b7 a9
    96589893    add sp, strict byte 00004h                ; 83 c4 04
    96599894    mov CH, strict byte 001h                  ; b5 01
    9660     mov al, cl                                ; 88 c8
    9661     xor ah, ah                                ; 30 e4
     9895    jmp short 06f0fh                          ; eb d6
     9896    cmp AL, strict byte 004h                  ; 3c 04
     9897    jnc short 06f54h                          ; 73 17
     9898    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     9899    jne short 06f54h                          ; 75 11
     9900    push 00960h                               ; 68 60 09
     9901    push strict byte 00002h                   ; 6a 02
     9902    call 018e9h                               ; e8 9e a9
     9903    add sp, strict byte 00004h                ; 83 c4 04
     9904    mov byte [bp-002h], 001h                  ; c6 46 fe 01
     9905    jmp short 06f6ah                          ; eb 16
     9906    cmp bh, 004h                              ; 80 ff 04
     9907    jc short 06f6ah                           ; 72 11
     9908    test cl, cl                               ; 84 c9
     9909    jne short 06f6ah                          ; 75 0d
     9910    push 00925h                               ; 68 25 09
     9911    push strict byte 00002h                   ; 6a 02
     9912    call 018e9h                               ; e8 84 a9
     9913    add sp, strict byte 00004h                ; 83 c4 04
     9914    mov CL, strict byte 001h                  ; b1 01
     9915    movzx ax, bl                              ; 0f b6 c3
    96629916    inc ax                                    ; 40
    96639917    push ax                                   ; 50
    9664     mov ax, 00939h                            ; b8 39 09
    9665     push ax                                   ; 50
    9666     mov ax, strict word 00002h                ; b8 02 00
    9667     push ax                                   ; 50
    9668     call 018fah                               ; e8 2d a6
     9918    push 00971h                               ; 68 71 09
     9919    push strict byte 00002h                   ; 6a 02
     9920    call 018e9h                               ; e8 72 a9
    96699921    add sp, strict byte 00006h                ; 83 c4 06
    9670     jmp near 07385h                           ; e9 b2 00
    9671     cmp AL, strict byte 008h                  ; 3c 08
    9672     jc short 072f4h                           ; 72 1d
    9673     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9674     jne short 072efh                          ; 75 12
    9675     mov ax, 0094ch                            ; b8 4c 09
    9676     push ax                                   ; 50
    9677     mov ax, strict word 00002h                ; b8 02 00
    9678     push ax                                   ; 50
    9679     call 018fah                               ; e8 12 a6
    9680     add sp, strict byte 00004h                ; 83 c4 04
    9681     mov byte [bp-004h], 001h                  ; c6 46 fc 01
    9682     jmp short 072bch                          ; eb cb
    9683     jmp near 0738ah                           ; e9 96 00
    9684     cmp AL, strict byte 004h                  ; 3c 04
    9685     jnc short 07312h                          ; 73 1a
    9686     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9687     jne short 07312h                          ; 75 14
    9688     mov ax, 00960h                            ; b8 60 09
    9689     push ax                                   ; 50
    9690     mov ax, strict word 00002h                ; b8 02 00
    9691     push ax                                   ; 50
    9692     call 018fah                               ; e8 f1 a5
    9693     add sp, strict byte 00004h                ; 83 c4 04
    9694     mov byte [bp-006h], 001h                  ; c6 46 fa 01
    9695     jmp short 0732bh                          ; eb 19
    9696     cmp bl, 004h                              ; 80 fb 04
    9697     jc short 0732bh                           ; 72 14
    9698     test ch, ch                               ; 84 ed
    9699     jne short 0732bh                          ; 75 10
    9700     mov ax, 00925h                            ; b8 25 09
    9701     push ax                                   ; 50
    9702     mov ax, strict word 00002h                ; b8 02 00
    9703     push ax                                   ; 50
    9704     call 018fah                               ; e8 d4 a5
    9705     add sp, strict byte 00004h                ; 83 c4 04
    9706     mov CH, strict byte 001h                  ; b5 01
    9707     mov al, cl                                ; 88 c8
    9708     xor ah, ah                                ; 30 e4
    9709     inc ax                                    ; 40
    9710     push ax                                   ; 50
    9711     mov ax, 00971h                            ; b8 71 09
    9712     push ax                                   ; 50
    9713     mov ax, strict word 00002h                ; b8 02 00
    9714     push ax                                   ; 50
    9715     call 018fah                               ; e8 be a5
    9716     add sp, strict byte 00006h                ; 83 c4 06
    9717     cmp bl, 004h                              ; 80 fb 04
    9718     jc short 07347h                           ; 72 03
    9719     sub bl, 004h                              ; 80 eb 04
    9720     mov al, bl                                ; 88 d8
    9721     xor ah, ah                                ; 30 e4
     9922    cmp bh, 004h                              ; 80 ff 04
     9923    jc short 06f82h                           ; 72 03
     9924    sub bh, 004h                              ; 80 ef 04
     9925    movzx ax, bh                              ; 0f b6 c7
    97229926    cwd                                       ; 99
    97239927    db  02bh, 0c2h
     
    97259929    sar ax, 1                                 ; d1 f8
    97269930    test ax, ax                               ; 85 c0
    9727     je short 07359h                           ; 74 05
    9728     mov ax, 0097bh                            ; b8 7b 09
    9729     jmp short 0735ch                          ; eb 03
    9730     mov ax, 00986h                            ; b8 86 09
    9731     push ax                                   ; 50
    9732     mov ax, strict word 00002h                ; b8 02 00
    9733     push ax                                   ; 50
    9734     call 018fah                               ; e8 96 a5
     9931    je short 06f93h                           ; 74 05
     9932    push 0097bh                               ; 68 7b 09
     9933    jmp short 06f96h                          ; eb 03
     9934    push 00986h                               ; 68 86 09
     9935    push strict byte 00002h                   ; 6a 02
     9936    call 018e9h                               ; e8 4e a9
    97359937    add sp, strict byte 00004h                ; 83 c4 04
    9736     mov al, bl                                ; 88 d8
    9737     xor ah, ah                                ; 30 e4
    9738     mov bx, strict word 00002h                ; bb 02 00
     9938    movzx ax, bh                              ; 0f b6 c7
     9939    mov di, strict word 00002h                ; bf 02 00
    97399940    cwd                                       ; 99
    9740     idiv bx                                   ; f7 fb
     9941    idiv di                                   ; f7 ff
    97419942    test dx, dx                               ; 85 d2
    9742     je short 0737ah                           ; 74 05
    9743     mov ax, 0098fh                            ; b8 8f 09
    9744     jmp short 0737dh                          ; eb 03
    9745     mov ax, 00995h                            ; b8 95 09
    9746     push ax                                   ; 50
    9747     push bx                                   ; 53
    9748     call 018fah                               ; e8 78 a5
     9943    je short 06fb0h                           ; 74 05
     9944    push 0098fh                               ; 68 8f 09
     9945    jmp short 06fb3h                          ; eb 03
     9946    push 00995h                               ; 68 95 09
     9947    push di                                   ; 57
     9948    call 018e9h                               ; e8 32 a9
    97499949    add sp, strict byte 00004h                ; 83 c4 04
    9750     db  0feh, 0c1h
    9751     ; inc cl                                    ; fe c1
    9752     jmp near 0728eh                           ; e9 04 ff
    9753     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9754     jne short 073a8h                          ; 75 18
     9950    db  0feh, 0c3h
     9951    ; inc bl                                    ; fe c3
     9952    jmp near 06ee5h                           ; e9 26 ff
     9953    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     9954    jne short 06fd8h                          ; 75 13
     9955    test cl, cl                               ; 84 c9
     9956    jne short 06fd8h                          ; 75 0f
    97559957    test ch, ch                               ; 84 ed
    9756     jne short 073a8h                          ; 75 14
    9757     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9758     jne short 073a8h                          ; 75 0e
    9759     mov ax, 0099ch                            ; b8 9c 09
    9760     push ax                                   ; 50
    9761     mov ax, strict word 00002h                ; b8 02 00
    9762     push ax                                   ; 50
    9763     call 018fah                               ; e8 55 a5
     9958    jne short 06fd8h                          ; 75 0b
     9959    push 0099ch                               ; 68 9c 09
     9960    push strict byte 00002h                   ; 6a 02
     9961    call 018e9h                               ; e8 14 a9
    97649962    add sp, strict byte 00004h                ; 83 c4 04
    9765     mov ax, 009b0h                            ; b8 b0 09
    9766     push ax                                   ; 50
    9767     mov ax, strict word 00002h                ; b8 02 00
    9768     push ax                                   ; 50
    9769     call 018fah                               ; e8 47 a5
     9963    push 009b0h                               ; 68 b0 09
     9964    push strict byte 00002h                   ; 6a 02
     9965    call 018e9h                               ; e8 09 a9
    97709966    add sp, strict byte 00004h                ; 83 c4 04
    9771     mov sp, bp                                ; 89 ec
    9772     pop bp                                    ; 5d
     9967    leave                                     ; c9
     9968    pop di                                    ; 5f
    97739969    pop si                                    ; 5e
    97749970    pop dx                                    ; 5a
     
    97769972    pop bx                                    ; 5b
    97779973    retn                                      ; c3
    9778 get_boot_drive_:                             ; 0xf73be LB 0x25
     9974get_boot_drive_:                             ; 0xf6fea LB 0x25
    97799975    push bx                                   ; 53
    97809976    push dx                                   ; 52
     
    97849980    mov dx, strict word 0000eh                ; ba 0e 00
    97859981    mov ax, strict word 00040h                ; b8 40 00
    9786     call 0161ch                               ; e8 4e a2
     9982    call 0161ch                               ; e8 22 a6
    97879983    mov dx, 002c0h                            ; ba c0 02
    9788     call 01600h                               ; e8 2c a2
     9984    call 01600h                               ; e8 00 a6
    97899985    sub bl, 002h                              ; 80 eb 02
    97909986    cmp bl, al                                ; 38 c3
    9791     jc short 073ddh                           ; 72 02
     9987    jc short 07009h                           ; 72 02
    97929988    mov BL, strict byte 0ffh                  ; b3 ff
    97939989    mov al, bl                                ; 88 d8
     
    97969992    pop bx                                    ; 5b
    97979993    retn                                      ; c3
    9798 show_logo_:                                  ; 0xf73e3 LB 0x22d
     9994show_logo_:                                  ; 0xf700f LB 0x207
    97999995    push bx                                   ; 53
    98009996    push cx                                   ; 51
     
    98029998    push si                                   ; 56
    98039999    push di                                   ; 57
    9804     push bp                                   ; 55
    9805     mov bp, sp                                ; 89 e5
    9806     sub sp, strict byte 0000ah                ; 83 ec 0a
     10000    enter 00008h, 000h                        ; c8 08 00 00
    980710001    mov dx, strict word 0000eh                ; ba 0e 00
    980810002    mov ax, strict word 00040h                ; b8 40 00
    9809     call 0161ch                               ; e8 25 a2
     10003    call 0161ch                               ; e8 fb a5
    981010004    mov si, ax                                ; 89 c6
    9811     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    9812     xor cx, cx                                ; 31 c9
     10005    xor cl, cl                                ; 30 c9
     10006    xor bx, bx                                ; 31 db
    981310007    mov AL, strict byte 034h                  ; b0 34
    981410008    out strict byte 043h, AL                  ; e6 43
     
    981710011    mov AL, strict byte 048h                  ; b0 48
    981810012    out strict byte 040h, AL                  ; e6 40
    9819     mov al, cl                                ; 88 c8
    9820     xor ah, ah                                ; 30 e4
    9821     call 07254h                               ; e8 42 fe
     10013    movzx ax, bl                              ; 0f b6 c3
     10014    call 06eadh                               ; e8 74 fe
    982210015    cmp ax, 066bbh                            ; 3d bb 66
    9823     jne short 0746ah                          ; 75 53
    9824     mov al, cl                                ; 88 c8
     10016    jne near 070fbh                           ; 0f 85 bb 00
     10017    mov al, bl                                ; 88 d8
    982510018    add AL, strict byte 004h                  ; 04 04
    982610019    xor ah, ah                                ; 30 e4
    9827     call 07241h                               ; e8 21 fe
    9828     mov ch, al                                ; 88 c5
     10020    call 06e9ah                               ; e8 51 fe
     10021    mov bh, al                                ; 88 c7
    982910022    mov byte [bp-006h], al                    ; 88 46 fa
    9830     mov al, cl                                ; 88 c8
     10023    mov al, bl                                ; 88 d8
    983110024    add AL, strict byte 005h                  ; 04 05
    983210025    xor ah, ah                                ; 30 e4
    9833     call 07241h                               ; e8 13 fe
    9834     mov bl, al                                ; 88 c3
     10026    call 06e9ah                               ; e8 43 fe
     10027    mov ch, al                                ; 88 c5
    983510028    mov byte [bp-008h], al                    ; 88 46 f8
    9836     mov al, cl                                ; 88 c8
     10029    mov al, bl                                ; 88 d8
    983710030    add AL, strict byte 002h                  ; 04 02
    983810031    xor ah, ah                                ; 30 e4
    9839     call 07254h                               ; e8 18 fe
     10032    call 06eadh                               ; e8 48 fe
    984010033    mov dx, ax                                ; 89 c2
    984110034    mov di, ax                                ; 89 c7
    9842     mov al, cl                                ; 88 c8
    9843     add AL, strict byte 006h                  ; 04 06
    9844     xor ah, ah                                ; 30 e4
    9845     call 07241h                               ; e8 f8 fd
    9846     mov byte [bp-00ah], al                    ; 88 46 f6
     10035    add bl, 006h                              ; 80 c3 06
     10036    movzx ax, bl                              ; 0f b6 c3
     10037    call 06e9ah                               ; e8 28 fe
     10038    mov byte [bp-004h], al                    ; 88 46 fc
     10039    test bh, bh                               ; 84 ff
     10040    jne short 07083h                          ; 75 0a
    984710041    test ch, ch                               ; 84 ed
    9848     jne short 07458h                          ; 75 08
    9849     test bl, bl                               ; 84 db
    9850     jne short 07458h                          ; 75 04
     10042    jne short 07083h                          ; 75 06
    985110043    test dx, dx                               ; 85 d2
    9852     je short 0746ah                           ; 74 12
     10044    je near 070fbh                            ; 0f 84 78 00
    985310045    mov bx, 00142h                            ; bb 42 01
    985410046    mov ax, 04f02h                            ; b8 02 4f
    985510047    int 010h                                  ; cd 10
    985610048    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9857     je short 07490h                           ; 74 2a
    9858     xor cx, cx                                ; 31 c9
    9859     jmp short 07472h                          ; eb 08
    9860     jmp near 074e0h                           ; e9 73 00
    9861     cmp cx, strict byte 00010h                ; 83 f9 10
    9862     jnbe short 07497h                         ; 77 25
    9863     mov ax, cx                                ; 89 c8
     10049    je short 070b4h                           ; 74 23
     10050    xor bx, bx                                ; 31 db
     10051    jmp short 0709bh                          ; eb 06
     10052    inc bx                                    ; 43
     10053    cmp bx, strict byte 00010h                ; 83 fb 10
     10054    jnbe short 070bbh                         ; 77 20
     10055    mov ax, bx                                ; 89 d8
    986410056    or ah, 002h                               ; 80 cc 02
    986510057    mov dx, 003b8h                            ; ba b8 03
     
    986710059    xor dx, dx                                ; 31 d2
    986810060    mov ax, strict word 00001h                ; b8 01 00
    9869     call 07190h                               ; e8 0d fd
     10061    call 06dedh                               ; e8 41 fd
    987010062    cmp AL, strict byte 086h                  ; 3c 86
    9871     jne short 0748dh                          ; 75 06
    9872     mov byte [bp-002h], 001h                  ; c6 46 fe 01
    9873     jmp short 07497h                          ; eb 0a
    9874     inc cx                                    ; 41
    9875     jmp short 0746dh                          ; eb dd
     10063    jne short 07095h                          ; 75 e5
     10064    mov CL, strict byte 001h                  ; b1 01
     10065    jmp short 070bbh                          ; eb 07
    987610066    mov ax, 00210h                            ; b8 10 02
    987710067    mov dx, 003b8h                            ; ba b8 03
    987810068    out DX, ax                                ; ef
    9879     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9880     jne short 074b1h                          ; 75 14
    9881     mov CL, strict byte 004h                  ; b1 04
     10069    test cl, cl                               ; 84 c9
     10070    jne short 070d0h                          ; 75 11
    988210071    mov ax, di                                ; 89 f8
    9883     shr ax, CL                                ; d3 e8
     10072    shr ax, 004h                              ; c1 e8 04
    988410073    mov dx, strict word 00001h                ; ba 01 00
    9885     call 07190h                               ; e8 e7 fc
     10074    call 06dedh                               ; e8 23 fd
    988610075    cmp AL, strict byte 086h                  ; 3c 86
    9887     jne short 074b1h                          ; 75 04
    9888     mov byte [bp-002h], 001h                  ; c6 46 fe 01
     10076    jne short 070d0h                          ; 75 02
     10077    mov CL, strict byte 001h                  ; b1 01
    988910078    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    9890     je short 074e0h                           ; 74 29
    9891     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9892     jne short 074e0h                          ; 75 23
    9893     mov cx, strict word 00010h                ; b9 10 00
    9894     jmp short 074c7h                          ; eb 05
    9895     dec cx                                    ; 49
    9896     test cx, cx                               ; 85 c9
    9897     jbe short 074e0h                          ; 76 19
    9898     mov ax, cx                                ; 89 c8
     10079    je short 070fbh                           ; 74 25
     10080    test cl, cl                               ; 84 c9
     10081    jne short 070fbh                          ; 75 21
     10082    mov bx, strict word 00010h                ; bb 10 00
     10083    jmp short 070e4h                          ; eb 05
     10084    dec bx                                    ; 4b
     10085    test bx, bx                               ; 85 db
     10086    jbe short 070fbh                          ; 76 17
     10087    mov ax, bx                                ; 89 d8
    989910088    or ah, 002h                               ; 80 cc 02
    990010089    mov dx, 003b8h                            ; ba b8 03
     
    990210091    xor dx, dx                                ; 31 d2
    990310092    mov ax, strict word 00001h                ; b8 01 00
    9904     call 07190h                               ; e8 b8 fc
     10093    call 06dedh                               ; e8 f8 fc
    990510094    cmp AL, strict byte 086h                  ; 3c 86
    9906     jne short 074c2h                          ; 75 e6
    9907     mov byte [bp-002h], 001h                  ; c6 46 fe 01
     10095    jne short 070dfh                          ; 75 e6
     10096    mov CL, strict byte 001h                  ; b1 01
    990810097    xor bx, bx                                ; 31 db
    990910098    mov dx, 00339h                            ; ba 39 03
    991010099    mov ax, si                                ; 89 f0
    9911     call 0160eh                               ; e8 24 a1
     10100    call 0160eh                               ; e8 09 a5
    991210101    mov AL, strict byte 003h                  ; b0 03
    991310102    mov AH, strict byte 000h                  ; b4 00
    991410103    int 010h                                  ; cd 10
    9915     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    9916     je short 07508h                           ; 74 12
     10104    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10105    je near 071fah                            ; 0f 84 e7 00
    991710106    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9918     jne short 07536h                          ; 75 3a
     10107    jne short 07147h                          ; 75 2e
    991910108    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    9920     jne short 07536h                          ; 75 34
     10109    jne short 07147h                          ; 75 28
    992110110    test di, di                               ; 85 ff
    9922     je short 0750bh                           ; 74 05
    9923     jmp short 07536h                          ; eb 2e
    9924     jmp near 075f2h                           ; e9 e7 00
    9925     cmp byte [bp-00ah], 002h                  ; 80 7e f6 02
    9926     jne short 0751fh                          ; 75 0e
    9927     mov ax, 009b2h                            ; b8 b2 09
    9928     push ax                                   ; 50
    9929     mov ax, strict word 00002h                ; b8 02 00
    9930     push ax                                   ; 50
    9931     call 018fah                               ; e8 de a3
     10111    jne short 07147h                          ; 75 24
     10112    cmp byte [bp-004h], 002h                  ; 80 7e fc 02
     10113    jne short 07134h                          ; 75 0b
     10114    push 009b2h                               ; 68 b2 09
     10115    push strict byte 00002h                   ; 6a 02
     10116    call 018e9h                               ; e8 b8 a7
    993210117    add sp, strict byte 00004h                ; 83 c4 04
    9933     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9934     jne short 07536h                          ; 75 11
     10118    test cl, cl                               ; 84 c9
     10119    jne short 07147h                          ; 75 0f
    993510120    mov dx, strict word 00001h                ; ba 01 00
    993610121    mov ax, 000c0h                            ; b8 c0 00
    9937     call 07190h                               ; e8 62 fc
     10122    call 06dedh                               ; e8 ac fc
    993810123    cmp AL, strict byte 086h                  ; 3c 86
    9939     jne short 07536h                          ; 75 04
    9940     mov byte [bp-002h], 001h                  ; c6 46 fe 01
    9941     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9942     je short 07508h                           ; 74 cc
    9943     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     10124    jne short 07147h                          ; 75 02
     10125    mov CL, strict byte 001h                  ; b1 01
     10126    test cl, cl                               ; 84 c9
     10127    je near 071fah                            ; 0f 84 ad 00
     10128    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    994410129    mov ax, 00100h                            ; b8 00 01
    994510130    mov cx, 01000h                            ; b9 00 10
     
    995710142    ; xor dx, dx                                ; 33 d2
    995810143    int 010h                                  ; cd 10
    9959     mov ax, 009d4h                            ; b8 d4 09
    9960     push ax                                   ; 50
    9961     mov ax, strict word 00002h                ; b8 02 00
    9962     push ax                                   ; 50
    9963     call 018fah                               ; e8 92 a3
     10144    push 009d4h                               ; 68 d4 09
     10145    push strict byte 00002h                   ; 6a 02
     10146    call 018e9h                               ; e8 73 a7
    996410147    add sp, strict byte 00004h                ; 83 c4 04
    9965     call 07265h                               ; e8 f7 fc
    9966     mov ax, 00a18h                            ; b8 18 0a
    9967     push ax                                   ; 50
    9968     mov ax, strict word 00002h                ; b8 02 00
    9969     push ax                                   ; 50
    9970     call 018fah                               ; e8 81 a3
     10148    call 06ebeh                               ; e8 42 fd
     10149    push 00a18h                               ; 68 18 0a
     10150    push strict byte 00002h                   ; 6a 02
     10151    call 018e9h                               ; e8 65 a7
    997110152    add sp, strict byte 00004h                ; 83 c4 04
    997210153    mov dx, strict word 00001h                ; ba 01 00
    997310154    mov ax, strict word 00040h                ; b8 40 00
    9974     call 07190h                               ; e8 0b fc
    9975     mov cl, al                                ; 88 c1
     10155    call 06dedh                               ; e8 5d fc
     10156    mov bl, al                                ; 88 c3
    997610157    test al, al                               ; 84 c0
    9977     je short 0757ch                           ; 74 f1
     10158    je short 07187h                           ; 74 f1
    997810159    cmp AL, strict byte 030h                  ; 3c 30
    9979     je short 075dfh                           ; 74 50
    9980     cmp cl, 002h                              ; 80 f9 02
    9981     jc short 075b8h                           ; 72 24
    9982     cmp cl, 009h                              ; 80 f9 09
    9983     jnbe short 075b8h                         ; 77 1f
    9984     mov al, cl                                ; 88 c8
    9985     xor ah, ah                                ; 30 e4
    9986     call 073beh                               ; e8 1e fe
     10160    je short 071e8h                           ; 74 4e
     10161    cmp bl, 002h                              ; 80 fb 02
     10162    jc short 071c1h                           ; 72 22
     10163    cmp bl, 009h                              ; 80 fb 09
     10164    jnbe short 071c1h                         ; 77 1d
     10165    movzx ax, bl                              ; 0f b6 c3
     10166    call 06feah                               ; e8 40 fe
    998710167    cmp AL, strict byte 0ffh                  ; 3c ff
    9988     jne short 075a6h                          ; 75 02
    9989     jmp short 0757ch                          ; eb d6
    9990     xor ah, ah                                ; 30 e4
    9991     mov bx, ax                                ; 89 c3
     10168    jne short 071b0h                          ; 75 02
     10169    jmp short 07187h                          ; eb d7
     10170    movzx bx, al                              ; 0f b6 d8
    999210171    mov dx, 00338h                            ; ba 38 03
    999310172    mov ax, si                                ; 89 f0
    9994     call 0160eh                               ; e8 5c a0
    9995     mov byte [bp-004h], 002h                  ; c6 46 fc 02
    9996     jmp short 075dfh                          ; eb 27
    9997     cmp cl, 02eh                              ; 80 f9 2e
    9998     je short 075cdh                           ; 74 10
    9999     cmp cl, 026h                              ; 80 f9 26
    10000     je short 075d3h                           ; 74 11
    10001     cmp cl, 021h                              ; 80 f9 21
    10002     jne short 075d9h                          ; 75 12
    10003     mov byte [bp-004h], 001h                  ; c6 46 fc 01
    10004     jmp short 075dfh                          ; eb 12
    10005     mov byte [bp-004h], 003h                  ; c6 46 fc 03
    10006     jmp short 075dfh                          ; eb 0c
    10007     mov byte [bp-004h], 004h                  ; c6 46 fc 04
    10008     jmp short 075dfh                          ; eb 06
    10009     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10010     je short 0757ch                           ; 74 9d
    10011     mov bl, byte [bp-004h]                    ; 8a 5e fc
    10012     xor bh, bh                                ; 30 ff
     10173    call 0160eh                               ; e8 53 a4
     10174    mov byte [bp-002h], 002h                  ; c6 46 fe 02
     10175    jmp short 071e8h                          ; eb 27
     10176    cmp bl, 02eh                              ; 80 fb 2e
     10177    je short 071d6h                           ; 74 10
     10178    cmp bl, 026h                              ; 80 fb 26
     10179    je short 071dch                           ; 74 11
     10180    cmp bl, 021h                              ; 80 fb 21
     10181    jne short 071e2h                          ; 75 12
     10182    mov byte [bp-002h], 001h                  ; c6 46 fe 01
     10183    jmp short 071e8h                          ; eb 12
     10184    mov byte [bp-002h], 003h                  ; c6 46 fe 03
     10185    jmp short 071e8h                          ; eb 0c
     10186    mov byte [bp-002h], 004h                  ; c6 46 fe 04
     10187    jmp short 071e8h                          ; eb 06
     10188    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     10189    je short 07187h                           ; 74 9f
     10190    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    1001310191    mov dx, 00339h                            ; ba 39 03
    1001410192    mov ax, si                                ; 89 f0
    10015     call 0160eh                               ; e8 22 a0
     10193    call 0160eh                               ; e8 1a a4
    1001610194    mov AL, strict byte 003h                  ; b0 03
    1001710195    mov AH, strict byte 000h                  ; b4 00
     
    1002610204    push DS                                   ; 1e
    1002710205    mov ds, ax                                ; 8e d8
    10028     call 0edbfh                               ; e8 bb 77
     10206    call 0edbfh                               ; e8 b3 7b
    1002910207    pop DS                                    ; 1f
    1003010208    popad                                     ; 66 61
    10031     mov sp, bp                                ; 89 ec
    10032     pop bp                                    ; 5d
     10209    leave                                     ; c9
    1003310210    pop di                                    ; 5f
    1003410211    pop si                                    ; 5e
     
    1003710214    pop bx                                    ; 5b
    1003810215    retn                                      ; c3
    10039 delay_boot_:                                 ; 0xf7610 LB 0x6b
     10216delay_boot_:                                 ; 0xf7216 LB 0x64
    1004010217    push bx                                   ; 53
    1004110218    push dx                                   ; 52
    1004210219    push bp                                   ; 55
    1004310220    mov bp, sp                                ; 89 e5
    10044     mov bx, ax                                ; 89 c3
     10221    mov dx, ax                                ; 89 c2
    1004510222    test ax, ax                               ; 85 c0
    10046     je short 07677h                           ; 74 5c
     10223    je short 07276h                           ; 74 55
    1004710224    mov AL, strict byte 034h                  ; b0 34
    1004810225    out strict byte 043h, AL                  ; e6 43
     
    1005110228    mov AL, strict byte 048h                  ; b0 48
    1005210229    out strict byte 040h, AL                  ; e6 40
     10230    push dx                                   ; 52
     10231    push 00a62h                               ; 68 62 0a
     10232    push strict byte 00002h                   ; 6a 02
     10233    call 018e9h                               ; e8 b3 a6
     10234    add sp, strict byte 00006h                ; 83 c4 06
     10235    mov bx, dx                                ; 89 d3
     10236    test bx, bx                               ; 85 db
     10237    jbe short 07256h                          ; 76 17
    1005310238    push bx                                   ; 53
    10054     mov ax, 00a62h                            ; b8 62 0a
    10055     push ax                                   ; 50
    10056     mov ax, strict word 00002h                ; b8 02 00
    10057     push ax                                   ; 50
    10058     call 018fah                               ; e8 c7 a2
    10059     add sp, strict byte 00006h                ; 83 c4 06
    10060     test bx, bx                               ; 85 db
    10061     jbe short 07654h                          ; 76 1a
    10062     push bx                                   ; 53
    10063     mov ax, 00a80h                            ; b8 80 0a
    10064     push ax                                   ; 50
    10065     mov ax, strict word 00002h                ; b8 02 00
    10066     push ax                                   ; 50
    10067     call 018fah                               ; e8 b4 a2
     10239    push 00a80h                               ; 68 80 0a
     10240    push strict byte 00002h                   ; 6a 02
     10241    call 018e9h                               ; e8 a1 a6
    1006810242    add sp, strict byte 00006h                ; 83 c4 06
    1006910243    xor dx, dx                                ; 31 d2
    1007010244    mov ax, strict word 00040h                ; b8 40 00
    10071     call 07190h                               ; e8 3f fb
     10245    call 06dedh                               ; e8 9a fb
    1007210246    dec bx                                    ; 4b
    10073     jmp short 07636h                          ; eb e2
    10074     mov bx, 009b0h                            ; bb b0 09
    10075     push bx                                   ; 53
    10076     mov bx, strict word 00002h                ; bb 02 00
    10077     push bx                                   ; 53
    10078     call 018fah                               ; e8 9b a2
     10247    jmp short 0723bh                          ; eb e5
     10248    push 009b0h                               ; 68 b0 09
     10249    push strict byte 00002h                   ; 6a 02
     10250    call 018e9h                               ; e8 8b a6
    1007910251    add sp, strict byte 00004h                ; 83 c4 04
    1008010252    mov AL, strict byte 034h                  ; b0 34
     
    1008710259    push DS                                   ; 1e
    1008810260    mov ds, ax                                ; 8e d8
    10089     call 0edbfh                               ; e8 4b 77
     10261    call 0edbfh                               ; e8 4c 7b
    1009010262    pop DS                                    ; 1f
    1009110263    popad                                     ; 66 61
     
    1009410266    pop bx                                    ; 5b
    1009510267    retn                                      ; c3
    10096 scsi_cmd_data_in_:                           ; 0xf767b LB 0x64
     10268scsi_cmd_data_in_:                           ; 0xf727a LB 0x63
    1009710269    push si                                   ; 56
    1009810270    push di                                   ; 57
    10099     push bp                                   ; 55
    10100     mov bp, sp                                ; 89 e5
    10101     push ax                                   ; 50
    10102     push ax                                   ; 50
     10271    enter 00004h, 000h                        ; c8 04 00 00
    1010310272    mov si, ax                                ; 89 c6
    1010410273    mov byte [bp-002h], dl                    ; 88 56 fe
     
    1010910278    ; sub ah, ah                                ; 2a e4
    1011010279    test AL, strict byte 001h                 ; a8 01
    10111     jne short 0768ah                          ; 75 f7
     10280    jne short 07288h                          ; 75 f7
    1011210281    mov al, byte [bp-002h]                    ; 8a 46 fe
    1011310282    out DX, AL                                ; ee
     
    1011810287    mov al, byte [bp+00eh]                    ; 8a 46 0e
    1011910288    out DX, AL                                ; ee
    10120     mov al, byte [bp+00fh]                    ; 8a 46 0f
     10289    mov ax, word [bp+00eh]                    ; 8b 46 0e
     10290    shr ax, 008h                              ; c1 e8 08
    1012110291    out DX, AL                                ; ee
    1012210292    xor bx, bx                                ; 31 db
    10123     mov al, byte [bp+008h]                    ; 8a 46 08
    10124     xor ah, ah                                ; 30 e4
     10293    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1012510294    cmp bx, ax                                ; 39 c3
    10126     jnc short 076c1h                          ; 73 10
     10295    jnc short 072c1h                          ; 73 10
    1012710296    mov es, cx                                ; 8e c1
    1012810297    mov di, word [bp-004h]                    ; 8b 7e fc
     
    1013210301    out DX, AL                                ; ee
    1013310302    inc bx                                    ; 43
    10134     jmp short 076a8h                          ; eb e7
     10303    jmp short 072a9h                          ; eb e8
    1013510304    mov dx, si                                ; 89 f2
    1013610305    in AL, DX                                 ; ec
     
    1013810307    ; sub ah, ah                                ; 2a e4
    1013910308    test AL, strict byte 001h                 ; a8 01
    10140     jne short 076c1h                          ; 75 f7
     10309    jne short 072c1h                          ; 75 f7
    1014110310    lea dx, [si+001h]                         ; 8d 54 01
    1014210311    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1014410313    rep insb                                  ; f3 6c
    1014510314    xor ax, ax                                ; 31 c0
    10146     mov sp, bp                                ; 89 ec
    10147     pop bp                                    ; 5d
     10315    leave                                     ; c9
    1014810316    pop di                                    ; 5f
    1014910317    pop si                                    ; 5e
    1015010318    retn 00008h                               ; c2 08 00
    10151 scsi_cmd_data_out_:                          ; 0xf76df LB 0x65
     10319scsi_cmd_data_out_:                          ; 0xf72dd LB 0x64
    1015210320    push si                                   ; 56
    1015310321    push di                                   ; 57
    10154     push bp                                   ; 55
    10155     mov bp, sp                                ; 89 e5
    10156     push ax                                   ; 50
    10157     push ax                                   ; 50
     10322    enter 00004h, 000h                        ; c8 04 00 00
    1015810323    mov di, ax                                ; 89 c7
    1015910324    mov byte [bp-002h], dl                    ; 88 56 fe
     
    1016410329    ; sub ah, ah                                ; 2a e4
    1016510330    test AL, strict byte 001h                 ; a8 01
    10166     jne short 076eeh                          ; 75 f7
     10331    jne short 072ebh                          ; 75 f7
    1016710332    mov al, byte [bp-002h]                    ; 8a 46 fe
    1016810333    out DX, AL                                ; ee
     
    1017310338    mov al, byte [bp+00eh]                    ; 8a 46 0e
    1017410339    out DX, AL                                ; ee
    10175     mov al, byte [bp+00fh]                    ; 8a 46 0f
     10340    mov ax, word [bp+00eh]                    ; 8b 46 0e
     10341    shr ax, 008h                              ; c1 e8 08
    1017610342    out DX, AL                                ; ee
    1017710343    xor bx, bx                                ; 31 db
    10178     mov al, byte [bp+008h]                    ; 8a 46 08
    10179     xor ah, ah                                ; 30 e4
     10344    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1018010345    cmp bx, ax                                ; 39 c3
    10181     jnc short 07725h                          ; 73 10
     10346    jnc short 07324h                          ; 73 10
    1018210347    mov es, cx                                ; 8e c1
    1018310348    mov si, word [bp-004h]                    ; 8b 76 fc
     
    1018710352    out DX, AL                                ; ee
    1018810353    inc bx                                    ; 43
    10189     jmp short 0770ch                          ; eb e7
     10354    jmp short 0730ch                          ; eb e8
    1019010355    lea dx, [di+001h]                         ; 8d 55 01
    1019110356    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1019810363    ; sub ah, ah                                ; 2a e4
    1019910364    test AL, strict byte 001h                 ; a8 01
    10200     jne short 07731h                          ; 75 f7
     10365    jne short 07330h                          ; 75 f7
    1020110366    xor ax, ax                                ; 31 c0
    10202     mov sp, bp                                ; 89 ec
    10203     pop bp                                    ; 5d
     10367    leave                                     ; c9
    1020410368    pop di                                    ; 5f
    1020510369    pop si                                    ; 5e
    1020610370    retn 00008h                               ; c2 08 00
    10207 @scsi_read_sectors:                          ; 0xf7744 LB 0xb8
     10371@scsi_read_sectors:                          ; 0xf7341 LB 0xa2
    1020810372    push si                                   ; 56
    1020910373    push di                                   ; 57
    10210     push bp                                   ; 55
    10211     mov bp, sp                                ; 89 e5
    10212     sub sp, strict byte 0000ch                ; 83 ec 0c
     10374    enter 0000ch, 000h                        ; c8 0c 00 00
    1021310375    mov si, word [bp+008h]                    ; 8b 76 08
    1021410376    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1021610378    sub bl, 008h                              ; 80 eb 08
    1021710379    cmp bl, 004h                              ; 80 fb 04
    10218     jbe short 07771h                          ; 76 13
    10219     mov al, bl                                ; 88 d8
    10220     xor ah, ah                                ; 30 e4
     10380    jbe short 07368h                          ; 76 0f
     10381    movzx ax, bl                              ; 0f b6 c3
    1022110382    push ax                                   ; 50
    10222     mov ax, 00a84h                            ; b8 84 0a
    10223     push ax                                   ; 50
    10224     mov ax, strict word 00007h                ; b8 07 00
    10225     push ax                                   ; 50
    10226     call 018fah                               ; e8 8c a1
     10383    push 00a84h                               ; 68 84 0a
     10384    push strict byte 00007h                   ; 6a 07
     10385    call 018e9h                               ; e8 84 a5
    1022710386    add sp, strict byte 00006h                ; 83 c4 06
    1022810387    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1024110400    mov word [bp-005h], ax                    ; 89 46 fb
    1024210401    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    10243     mov al, bl                                ; 88 d8
    10244     xor ah, ah                                ; 30 e4
    10245     sal ax, 1                                 ; d1 e0
    10246     sal ax, 1                                 ; d1 e0
    10247     mov bx, si                                ; 89 f3
    10248     add bx, ax                                ; 01 c3
     10402    xor bh, bh                                ; 30 ff
     10403    sal bx, 002h                              ; c1 e3 02
     10404    add bx, si                                ; 01 f3
    1024910405    mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    10250     mov bl, byte [es:bx+001dah]               ; 26 8a 9f da 01
    10251     mov CL, strict byte 009h                  ; b1 09
    10252     mov dx, di                                ; 89 fa
    10253     sal dx, CL                                ; d3 e2
    10254     mov word [bp-002h], dx                    ; 89 56 fe
    10255     push dx                                   ; 52
    10256     push word [es:si+006h]                    ; 26 ff 74 06
    10257     push word [es:si+004h]                    ; 26 ff 74 04
    10258     mov dx, strict word 0000ah                ; ba 0a 00
    10259     push dx                                   ; 52
    10260     mov dl, bl                                ; 88 da
     10406    mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
     10407    mov bx, di                                ; 89 fb
     10408    sal bx, 009h                              ; c1 e3 09
     10409    mov word [bp-002h], bx                    ; 89 5e fe
     10410    push bx                                   ; 53
     10411    db  066h, 026h, 0ffh, 074h, 004h
     10412    ; push dword [es:si+004h]                   ; 66 26 ff 74 04
     10413    push strict byte 0000ah                   ; 6a 0a
    1026110414    xor dh, dh                                ; 30 f6
    1026210415    mov cx, ss                                ; 8c d1
    1026310416    lea bx, [bp-00ch]                         ; 8d 5e f4
    10264     call 0767bh                               ; e8 a5 fe
     10417    call 0727ah                               ; e8 ba fe
    1026510418    mov ah, al                                ; 88 c4
    1026610419    test al, al                               ; 84 c0
    10267     jne short 077f0h                          ; 75 14
     10420    jne short 073dah                          ; 75 14
    1026810421    mov es, [bp+00ah]                         ; 8e 46 0a
    1026910422    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1027110424    mov word [es:si+016h], dx                 ; 26 89 54 16
    1027210425    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    10273     mov al, ah                                ; 88 e0
    10274     xor ah, ah                                ; 30 e4
    10275     mov sp, bp                                ; 89 ec
    10276     pop bp                                    ; 5d
     10426    movzx ax, ah                              ; 0f b6 c4
     10427    leave                                     ; c9
    1027710428    pop di                                    ; 5f
    1027810429    pop si                                    ; 5e
    1027910430    retn 00004h                               ; c2 04 00
    10280 @scsi_write_sectors:                         ; 0xf77fc LB 0xb8
     10431@scsi_write_sectors:                         ; 0xf73e3 LB 0xa2
    1028110432    push si                                   ; 56
    1028210433    push di                                   ; 57
    10283     push bp                                   ; 55
    10284     mov bp, sp                                ; 89 e5
    10285     sub sp, strict byte 0000ch                ; 83 ec 0c
     10434    enter 0000ch, 000h                        ; c8 0c 00 00
    1028610435    mov si, word [bp+008h]                    ; 8b 76 08
    1028710436    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1028910438    sub bl, 008h                              ; 80 eb 08
    1029010439    cmp bl, 004h                              ; 80 fb 04
    10291     jbe short 07829h                          ; 76 13
    10292     mov al, bl                                ; 88 d8
    10293     xor ah, ah                                ; 30 e4
     10440    jbe short 0740ah                          ; 76 0f
     10441    movzx ax, bl                              ; 0f b6 c3
    1029410442    push ax                                   ; 50
    10295     mov ax, 00ab2h                            ; b8 b2 0a
    10296     push ax                                   ; 50
    10297     mov ax, strict word 00007h                ; b8 07 00
    10298     push ax                                   ; 50
    10299     call 018fah                               ; e8 d4 a0
     10443    push 00ab2h                               ; 68 b2 0a
     10444    push strict byte 00007h                   ; 6a 07
     10445    call 018e9h                               ; e8 e2 a4
    1030010446    add sp, strict byte 00006h                ; 83 c4 06
    1030110447    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1031410460    mov word [bp-005h], ax                    ; 89 46 fb
    1031510461    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    10316     mov al, bl                                ; 88 d8
    10317     xor ah, ah                                ; 30 e4
    10318     sal ax, 1                                 ; d1 e0
    10319     sal ax, 1                                 ; d1 e0
    10320     mov bx, si                                ; 89 f3
    10321     add bx, ax                                ; 01 c3
     10462    xor bh, bh                                ; 30 ff
     10463    sal bx, 002h                              ; c1 e3 02
     10464    add bx, si                                ; 01 f3
    1032210465    mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    10323     mov bl, byte [es:bx+001dah]               ; 26 8a 9f da 01
    10324     mov CL, strict byte 009h                  ; b1 09
    10325     mov dx, di                                ; 89 fa
    10326     sal dx, CL                                ; d3 e2
    10327     mov word [bp-002h], dx                    ; 89 56 fe
    10328     push dx                                   ; 52
    10329     push word [es:si+006h]                    ; 26 ff 74 06
    10330     push word [es:si+004h]                    ; 26 ff 74 04
    10331     mov dx, strict word 0000ah                ; ba 0a 00
    10332     push dx                                   ; 52
    10333     mov dl, bl                                ; 88 da
     10466    mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
     10467    mov bx, di                                ; 89 fb
     10468    sal bx, 009h                              ; c1 e3 09
     10469    mov word [bp-002h], bx                    ; 89 5e fe
     10470    push bx                                   ; 53
     10471    db  066h, 026h, 0ffh, 074h, 004h
     10472    ; push dword [es:si+004h]                   ; 66 26 ff 74 04
     10473    push strict byte 0000ah                   ; 6a 0a
    1033410474    xor dh, dh                                ; 30 f6
    1033510475    mov cx, ss                                ; 8c d1
    1033610476    lea bx, [bp-00ch]                         ; 8d 5e f4
    10337     call 076dfh                               ; e8 51 fe
     10477    call 072ddh                               ; e8 7b fe
    1033810478    mov ah, al                                ; 88 c4
    1033910479    test al, al                               ; 84 c0
    10340     jne short 078a8h                          ; 75 14
     10480    jne short 0747ch                          ; 75 14
    1034110481    mov es, [bp+00ah]                         ; 8e 46 0a
    1034210482    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1034410484    mov word [es:si+016h], dx                 ; 26 89 54 16
    1034510485    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    10346     mov al, ah                                ; 88 e0
    10347     xor ah, ah                                ; 30 e4
    10348     mov sp, bp                                ; 89 ec
    10349     pop bp                                    ; 5d
     10486    movzx ax, ah                              ; 0f b6 c4
     10487    leave                                     ; c9
    1035010488    pop di                                    ; 5f
    1035110489    pop si                                    ; 5e
    1035210490    retn 00004h                               ; c2 04 00
    10353 scsi_enumerate_attached_devices_:            ; 0xf78b4 LB 0x2aa
     10491scsi_enumerate_attached_devices_:            ; 0xf7485 LB 0x285
    1035410492    push bx                                   ; 53
    1035510493    push cx                                   ; 51
     
    1035710495    push si                                   ; 56
    1035810496    push di                                   ; 57
    10359     push bp                                   ; 55
    10360     mov bp, sp                                ; 89 e5
    10361     sub sp, 0021eh                            ; 81 ec 1e 02
    10362     mov di, ax                                ; 89 c7
     10497    enter 0021ah, 000h                        ; c8 1a 02 00
     10498    push ax                                   ; 50
    1036310499    mov dx, strict word 0000eh                ; ba 0e 00
    1036410500    mov ax, strict word 00040h                ; b8 40 00
    10365     call 0161ch                               ; e8 51 9d
     10501    call 0161ch                               ; e8 84 a1
    1036610502    mov si, 00122h                            ; be 22 01
    10367     mov word [bp-014h], ax                    ; 89 46 ec
    10368     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    10369     jmp near 07afdh                           ; e9 24 02
    10370     mov es, [bp-014h]                         ; 8e 46 ec
     10503    mov word [bp-006h], ax                    ; 89 46 fa
     10504    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     10505    jmp near 076b2h                           ; e9 0c 02
     10506    mov es, [bp-006h]                         ; 8e 46 fa
    1037110507    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    10372     jc short 078e7h                           ; 72 03
    10373     jmp near 07b55h                           ; e9 6e 02
     10508    jnc near 07703h                           ; 0f 83 50 02
    1037410509    mov cx, strict word 0000ah                ; b9 0a 00
    1037510510    xor bx, bx                                ; 31 db
    1037610511    mov dx, ss                                ; 8c d2
    10377     lea ax, [bp-01eh]                         ; 8d 46 e2
    10378     call 08dbbh                               ; e8 c7 14
    10379     mov byte [bp-01eh], 025h                  ; c6 46 e2 25
    10380     mov ax, strict word 00008h                ; b8 08 00
    10381     push ax                                   ; 50
    10382     lea dx, [bp-0021eh]                       ; 8d 96 e2 fd
     10512    lea ax, [bp-01ah]                         ; 8d 46 e6
     10513    call 0885ah                               ; e8 9a 13
     10514    mov byte [bp-01ah], 025h                  ; c6 46 e6 25
     10515    push strict byte 00008h                   ; 6a 08
     10516    lea dx, [bp-0021ah]                       ; 8d 96 e6 fd
    1038310517    push SS                                   ; 16
    1038410518    push dx                                   ; 52
    10385     mov ax, strict word 0000ah                ; b8 0a 00
    10386     push ax                                   ; 50
    10387     mov dl, byte [bp-00ah]                    ; 8a 56 f6
    10388     xor dh, dh                                ; 30 f6
     10519    push strict byte 0000ah                   ; 6a 0a
     10520    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1038910521    mov cx, ss                                ; 8c d1
    10390     lea bx, [bp-01eh]                         ; 8d 5e e2
    10391     mov ax, di                                ; 89 f8
    10392     call 0767bh                               ; e8 66 fd
     10522    lea bx, [bp-01ah]                         ; 8d 5e e6
     10523    mov ax, word [bp-0021ch]                  ; 8b 86 e4 fd
     10524    call 0727ah                               ; e8 9c fd
    1039310525    test al, al                               ; 84 c0
    10394     je short 07927h                           ; 74 0e
    10395     mov ax, 00b17h                            ; b8 17 0b
    10396     push ax                                   ; 50
    10397     mov ax, strict word 00007h                ; b8 07 00
    10398     push ax                                   ; 50
    10399     call 018fah                               ; e8 d6 9f
     10526    je short 074edh                           ; 74 0b
     10527    push 00b17h                               ; 68 17 0b
     10528    push strict byte 00007h                   ; 6a 07
     10529    call 018e9h                               ; e8 ff a3
    1040010530    add sp, strict byte 00004h                ; 83 c4 04
    10401     mov al, byte [bp-0021dh]                  ; 8a 86 e3 fd
    10402     xor dh, dh                                ; 30 f6
    10403     mov ah, byte [bp-0021eh]                  ; 8a a6 e2 fd
     10531    movzx dx, byte [bp-00219h]                ; 0f b6 96 e7 fd
     10532    movzx di, byte [bp-0021ah]                ; 0f b6 be e6 fd
     10533    sal di, 008h                              ; c1 e7 08
    1040410534    xor bx, bx                                ; 31 db
    10405     mov word [bp-008h], ax                    ; 89 46 f8
    10406     mov al, byte [bp-0021ch]                  ; 8a 86 e4 fd
    10407     xor ah, ah                                ; 30 e4
    10408     xor dl, dl                                ; 30 d2
    10409     mov cx, strict word 00008h                ; b9 08 00
    10410     sal ax, 1                                 ; d1 e0
    10411     rcl dx, 1                                 ; d1 d2
    10412     loop 07941h                               ; e2 fa
    10413     or bx, ax                                 ; 09 c3
    10414     or dx, word [bp-008h]                     ; 0b 56 f8
    10415     mov al, byte [bp-0021bh]                  ; 8a 86 e5 fd
    10416     xor ah, ah                                ; 30 e4
    10417     or bx, ax                                 ; 09 c3
    10418     mov word [bp-012h], bx                    ; 89 5e ee
    10419     mov word [bp-010h], dx                    ; 89 56 f0
    10420     mov dh, byte [bp-0021ah]                  ; 8a b6 e6 fd
    10421     mov dl, byte [bp-00219h]                  ; 8a 96 e7 fd
    10422     xor bx, bx                                ; 31 db
    10423     mov word [bp-008h], dx                    ; 89 56 f8
    10424     mov al, byte [bp-00218h]                  ; 8a 86 e8 fd
     10535    or di, dx                                 ; 09 d7
     10536    movzx ax, byte [bp-00218h]                ; 0f b6 86 e8 fd
    1042510537    xor dx, dx                                ; 31 d2
    1042610538    mov cx, strict word 00008h                ; b9 08 00
    1042710539    sal ax, 1                                 ; d1 e0
    1042810540    rcl dx, 1                                 ; d1 d2
    10429     loop 07970h                               ; e2 fa
     10541    loop 07508h                               ; e2 fa
    1043010542    or bx, ax                                 ; 09 c3
    10431     or dx, word [bp-008h]                     ; 0b 56 f8
    10432     mov al, byte [bp-00217h]                  ; 8a 86 e9 fd
    10433     xor ah, ah                                ; 30 e4
     10543    or di, dx                                 ; 09 d7
     10544    movzx ax, byte [bp-00217h]                ; 0f b6 86 e9 fd
    1043410545    or bx, ax                                 ; 09 c3
    10435     mov word [bp-00eh], bx                    ; 89 5e f2
     10546    mov word [bp-00ah], bx                    ; 89 5e f6
     10547    movzx ax, byte [bp-00216h]                ; 0f b6 86 ea fd
     10548    sal ax, 008h                              ; c1 e0 08
     10549    movzx bx, byte [bp-00215h]                ; 0f b6 9e eb fd
     10550    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
     10551    or bx, ax                                 ; 09 c3
     10552    movzx ax, byte [bp-00214h]                ; 0f b6 86 ec fd
     10553    xor dx, dx                                ; 31 d2
     10554    mov cx, strict word 00008h                ; b9 08 00
     10555    sal ax, 1                                 ; d1 e0
     10556    rcl dx, 1                                 ; d1 d2
     10557    loop 0753ah                               ; e2 fa
     10558    mov cx, word [bp-010h]                    ; 8b 4e f0
     10559    or cx, ax                                 ; 09 c1
     10560    or dx, bx                                 ; 09 da
     10561    movzx ax, byte [bp-00213h]                ; 0f b6 86 ed fd
     10562    mov bx, cx                                ; 89 cb
     10563    or bx, ax                                 ; 09 c3
     10564    mov word [bp-00ch], bx                    ; 89 5e f4
    1043610565    test dx, dx                               ; 85 d2
    10437     jne short 07990h                          ; 75 06
     10566    jne short 0755dh                          ; 75 06
    1043810567    cmp bx, 00200h                            ; 81 fb 00 02
    10439     je short 079b3h                           ; 74 23
    10440     mov bx, 00c16h                            ; bb 16 0c
     10568    je short 0757dh                           ; 74 20
     10569    mov bx, 00c08h                            ; bb 08 0c
    1044110570    mov cx, ds                                ; 8c d9
    1044210571    mov ax, strict word 00004h                ; b8 04 00
    10443     call 018bdh                               ; e8 22 9f
     10572    call 018aeh                               ; e8 46 a3
    1044410573    push dx                                   ; 52
    10445     push word [bp-00eh]                       ; ff 76 f2
    10446     push word [bp-00ah]                       ; ff 76 f6
    10447     mov ax, 00b53h                            ; b8 53 0b
    10448     push ax                                   ; 50
    10449     mov ax, strict word 00004h                ; b8 04 00
    10450     push ax                                   ; 50
    10451     call 018fah                               ; e8 4d 9f
     10574    push word [bp-00ch]                       ; ff 76 f4
     10575    push word [bp-008h]                       ; ff 76 f8
     10576    push 00b53h                               ; 68 53 0b
     10577    push strict byte 00004h                   ; 6a 04
     10578    call 018e9h                               ; e8 72 a3
    1045210579    add sp, strict byte 0000ah                ; 83 c4 0a
    10453     jmp near 07af4h                           ; e9 41 01
    10454     mov word [bp-004h], 000ffh                ; c7 46 fc ff 00
    10455     mov word [bp-002h], strict word 0003fh    ; c7 46 fe 3f 00
    10456     jmp short 079d0h                          ; eb 11
    10457     mov word [bp-004h], 00080h                ; c7 46 fc 80 00
    10458     jmp short 079cbh                          ; eb 05
    10459     mov word [bp-004h], strict word 00040h    ; c7 46 fc 40 00
    10460     mov word [bp-002h], strict word 00020h    ; c7 46 fe 20 00
    10461     mov ax, word [bp-004h]                    ; 8b 46 fc
    10462     mul word [bp-002h]                        ; f7 66 fe
    10463     mov bx, ax                                ; 89 c3
    10464     mov ax, word [bp-012h]                    ; 8b 46 ee
    10465     mov dx, word [bp-010h]                    ; 8b 56 f0
     10580    jmp near 076a9h                           ; e9 2c 01
     10581    cmp di, strict byte 00040h                ; 83 ff 40
     10582    jnbe short 07584h                         ; 77 02
     10583    jne short 0758eh                          ; 75 0a
     10584    mov dword [bp-004h], strict dword 000ff003fh ; 66 c7 46 fc 3f 00 ff 00
     10585    jmp short 075a7h                          ; eb 19
     10586    cmp di, strict byte 00020h                ; 83 ff 20
     10587    jnbe short 07595h                         ; 77 02
     10588    jne short 0759fh                          ; 75 0a
     10589    mov dword [bp-004h], strict dword 000800020h ; 66 c7 46 fc 20 00 80 00
     10590    jmp short 075a7h                          ; eb 08
     10591    mov dword [bp-004h], strict dword 000400020h ; 66 c7 46 fc 20 00 40 00
     10592    mov bx, word [bp-002h]                    ; 8b 5e fe
     10593    imul bx, word [bp-004h]                   ; 0f af 5e fc
     10594    mov ax, word [bp-00ah]                    ; 8b 46 f6
     10595    mov dx, di                                ; 89 fa
    1046610596    xor cx, cx                                ; 31 c9
    10467     call 08d37h                               ; e8 54 13
    10468     mov word [bp-00ch], ax                    ; 89 46 f4
    10469     mov word [bp-006h], dx                    ; 89 56 fa
    10470     mov es, [bp-014h]                         ; 8e 46 ec
     10597    call 087f0h                               ; e8 38 12
     10598    mov word [bp-00eh], dx                    ; 89 56 f2
     10599    mov es, [bp-006h]                         ; 8e 46 fa
    1047110600    mov cl, byte [es:si+001e8h]               ; 26 8a 8c e8 01
    1047210601    mov ch, cl                                ; 88 cd
    1047310602    add ch, 008h                              ; 80 c5 08
    10474     mov al, cl                                ; 88 c8
    10475     xor ah, ah                                ; 30 e4
    10476     sal ax, 1                                 ; d1 e0
    10477     sal ax, 1                                 ; d1 e0
     10603    movzx dx, cl                              ; 0f b6 d1
     10604    sal dx, 002h                              ; c1 e2 02
    1047810605    mov bx, si                                ; 89 f3
    10479     add bx, ax                                ; 01 c3
    10480     mov word [es:bx+001d8h], di               ; 26 89 bf d8 01
    10481     mov al, byte [bp-00ah]                    ; 8a 46 f6
    10482     mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    10483     mov al, ch                                ; 88 e8
    10484     xor ah, ah                                ; 30 e4
    10485     mov dx, strict word 00018h                ; ba 18 00
    10486     imul dx                                   ; f7 ea
     10606    add bx, dx                                ; 01 d3
     10607    mov dx, word [bp-0021ch]                  ; 8b 96 e4 fd
     10608    mov word [es:bx+001d8h], dx               ; 26 89 97 d8 01
     10609    mov dl, byte [bp-008h]                    ; 8a 56 f8
     10610    mov byte [es:bx+001dah], dl               ; 26 88 97 da 01
     10611    movzx dx, ch                              ; 0f b6 d5
     10612    imul dx, dx, strict byte 00018h           ; 6b d2 18
    1048710613    mov bx, si                                ; 89 f3
    10488     add bx, ax                                ; 01 c3
    10489     mov word [es:bx+01eh], 0ff04h             ; 26 c7 47 1e 04 ff
    10490     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    10491     mov ax, word [bp-00eh]                    ; 8b 46 f2
    10492     mov word [es:bx+024h], ax                 ; 26 89 47 24
     10614    add bx, dx                                ; 01 d3
     10615    db  066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h
     10616    ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00
     10617    mov dx, word [bp-00ch]                    ; 8b 56 f4
     10618    mov word [es:bx+024h], dx                 ; 26 89 57 24
    1049310619    mov byte [es:bx+023h], 001h               ; 26 c6 47 23 01
    10494     mov ax, word [bp-004h]                    ; 8b 46 fc
    10495     mov word [es:bx+026h], ax                 ; 26 89 47 26
    10496     mov ax, word [bp-002h]                    ; 8b 46 fe
    10497     mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    10498     cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    10499     jne short 07a4fh                          ; 75 07
    10500     cmp word [bp-00ch], 00400h                ; 81 7e f4 00 04
    10501     jbe short 07a57h                          ; 76 08
     10620    mov dx, word [bp-002h]                    ; 8b 56 fe
     10621    mov word [es:bx+026h], dx                 ; 26 89 57 26
     10622    mov dx, word [bp-004h]                    ; 8b 56 fc
     10623    mov word [es:bx+02ah], dx                 ; 26 89 57 2a
     10624    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
     10625    jne short 0761bh                          ; 75 05
     10626    cmp ax, 00400h                            ; 3d 00 04
     10627    jbe short 07623h                          ; 76 08
    1050210628    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    10503     jmp short 07a5eh                          ; eb 07
    10504     mov ax, word [bp-00ch]                    ; 8b 46 f4
     10629    jmp short 07627h                          ; eb 04
    1050510630    mov word [es:bx+028h], ax                 ; 26 89 47 28
    10506     mov al, ch                                ; 88 e8
    10507     xor ah, ah                                ; 30 e4
    10508     mov dx, strict word 00018h                ; ba 18 00
    10509     imul dx                                   ; f7 ea
    10510     mov es, [bp-014h]                         ; 8e 46 ec
    10511     mov bx, si                                ; 89 f3
    10512     add bx, ax                                ; 01 c3
    10513     mov ax, word [bp-004h]                    ; 8b 46 fc
    10514     mov word [es:bx+02ch], ax                 ; 26 89 47 2c
    10515     mov ax, word [bp-002h]                    ; 8b 46 fe
    10516     mov word [es:bx+030h], ax                 ; 26 89 47 30
    10517     cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    10518     jne short 07a89h                          ; 75 07
    10519     cmp word [bp-00ch], 00400h                ; 81 7e f4 00 04
    10520     jbe short 07a91h                          ; 76 08
     10631    movzx bx, ch                              ; 0f b6 dd
     10632    imul bx, bx, strict byte 00018h           ; 6b db 18
     10633    mov es, [bp-006h]                         ; 8e 46 fa
     10634    add bx, si                                ; 01 f3
     10635    mov dx, word [bp-002h]                    ; 8b 56 fe
     10636    mov word [es:bx+02ch], dx                 ; 26 89 57 2c
     10637    mov dx, word [bp-004h]                    ; 8b 56 fc
     10638    mov word [es:bx+030h], dx                 ; 26 89 57 30
     10639    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
     10640    jne short 0764bh                          ; 75 05
     10641    cmp ax, 00400h                            ; 3d 00 04
     10642    jbe short 07653h                          ; 76 08
    1052110643    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    10522     jmp short 07a98h                          ; eb 07
    10523     mov ax, word [bp-00ch]                    ; 8b 46 f4
     10644    jmp short 07657h                          ; eb 04
    1052410645    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
    10525     mov al, ch                                ; 88 e8
    10526     xor ah, ah                                ; 30 e4
    10527     mov dx, strict word 00018h                ; ba 18 00
    10528     imul dx                                   ; f7 ea
    10529     mov es, [bp-014h]                         ; 8e 46 ec
    10530     mov bx, si                                ; 89 f3
    10531     add bx, ax                                ; 01 c3
    10532     mov ax, word [bp-012h]                    ; 8b 46 ee
     10646    movzx bx, ch                              ; 0f b6 dd
     10647    imul bx, bx, strict byte 00018h           ; 6b db 18
     10648    mov es, [bp-006h]                         ; 8e 46 fa
     10649    add bx, si                                ; 01 f3
     10650    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1053310651    mov word [es:bx+032h], ax                 ; 26 89 47 32
    10534     mov ax, word [bp-010h]                    ; 8b 46 f0
    10535     mov word [es:bx+034h], ax                 ; 26 89 47 34
     10652    mov word [es:bx+034h], di                 ; 26 89 7f 34
    1053610653    mov al, byte [es:si+0019eh]               ; 26 8a 84 9e 01
    1053710654    mov ah, cl                                ; 88 cc
    1053810655    add ah, 008h                              ; 80 c4 08
    10539     mov bl, al                                ; 88 c3
    10540     xor bh, bh                                ; 30 ff
     10656    movzx bx, al                              ; 0f b6 d8
    1054110657    add bx, si                                ; 01 f3
    1054210658    mov byte [es:bx+0019fh], ah               ; 26 88 a7 9f 01
     
    1054610662    mov dx, strict word 00075h                ; ba 75 00
    1054710663    mov ax, strict word 00040h                ; b8 40 00
    10548     call 01600h                               ; e8 25 9b
    10549     mov bl, al                                ; 88 c3
    10550     db  0feh, 0c3h
    10551     ; inc bl                                    ; fe c3
    10552     xor bh, bh                                ; 30 ff
     10664    call 01600h                               ; e8 6f 9f
     10665    db  0feh, 0c0h
     10666    ; inc al                                    ; fe c0
     10667    movzx bx, al                              ; 0f b6 d8
    1055310668    mov dx, strict word 00075h                ; ba 75 00
    1055410669    mov ax, strict word 00040h                ; b8 40 00
    10555     call 0160eh                               ; e8 24 9b
     10670    call 0160eh                               ; e8 6f 9f
    1055610671    db  0feh, 0c1h
    1055710672    ; inc cl                                    ; fe c1
    10558     mov es, [bp-014h]                         ; 8e 46 ec
     10673    mov es, [bp-006h]                         ; 8e 46 fa
    1055910674    mov byte [es:si+001e8h], cl               ; 26 88 8c e8 01
    10560     inc word [bp-00ah]                        ; ff 46 f6
    10561     cmp word [bp-00ah], strict byte 00010h    ; 83 7e f6 10
    10562     jnl short 07b55h                          ; 7d 58
    10563     mov byte [bp-01eh], 012h                  ; c6 46 e2 12
     10675    inc word [bp-008h]                        ; ff 46 f8
     10676    cmp word [bp-008h], strict byte 00010h    ; 83 7e f8 10
     10677    jnl short 07703h                          ; 7d 51
     10678    mov byte [bp-01ah], 012h                  ; c6 46 e6 12
    1056410679    xor al, al                                ; 30 c0
    10565     mov byte [bp-01dh], al                    ; 88 46 e3
    10566     mov byte [bp-01ch], al                    ; 88 46 e4
    10567     mov byte [bp-01bh], al                    ; 88 46 e5
    10568     mov byte [bp-01ah], 005h                  ; c6 46 e6 05
    1056910680    mov byte [bp-019h], al                    ; 88 46 e7
    10570     mov ax, strict word 00005h                ; b8 05 00
    10571     push ax                                   ; 50
    10572     lea dx, [bp-0021eh]                       ; 8d 96 e2 fd
     10681    mov byte [bp-018h], al                    ; 88 46 e8
     10682    mov byte [bp-017h], al                    ; 88 46 e9
     10683    mov byte [bp-016h], 005h                  ; c6 46 ea 05
     10684    mov byte [bp-015h], al                    ; 88 46 eb
     10685    push strict byte 00005h                   ; 6a 05
     10686    lea dx, [bp-0021ah]                       ; 8d 96 e6 fd
    1057310687    push SS                                   ; 16
    1057410688    push dx                                   ; 52
    10575     mov ax, strict word 00006h                ; b8 06 00
    10576     push ax                                   ; 50
    10577     mov dl, byte [bp-00ah]                    ; 8a 56 f6
    10578     xor dh, dh                                ; 30 f6
     10689    push strict byte 00006h                   ; 6a 06
     10690    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1057910691    mov cx, ss                                ; 8c d1
    10580     lea bx, [bp-01eh]                         ; 8d 5e e2
    10581     mov ax, di                                ; 89 f8
    10582     call 0767bh                               ; e8 4b fb
     10692    lea bx, [bp-01ah]                         ; 8d 5e e6
     10693    mov ax, word [bp-0021ch]                  ; 8b 86 e4 fd
     10694    call 0727ah                               ; e8 98 fb
    1058310695    test al, al                               ; 84 c0
    10584     je short 07b42h                           ; 74 0e
    10585     mov ax, 00ae1h                            ; b8 e1 0a
    10586     push ax                                   ; 50
    10587     mov ax, strict word 00007h                ; b8 07 00
    10588     push ax                                   ; 50
    10589     call 018fah                               ; e8 bb 9d
     10696    je short 076f1h                           ; 74 0b
     10697    push 00ae1h                               ; 68 e1 0a
     10698    push strict byte 00007h                   ; 6a 07
     10699    call 018e9h                               ; e8 fb a1
    1059010700    add sp, strict byte 00004h                ; 83 c4 04
    10591     test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    10592     jne short 07af4h                          ; 75 ab
    10593     test byte [bp-0021eh], 01fh               ; f6 86 e2 fd 1f
    10594     jne short 07b53h                          ; 75 03
    10595     jmp near 078d9h                           ; e9 86 fd
    10596     jmp short 07af4h                          ; eb 9f
    10597     mov sp, bp                                ; 89 ec
    10598     pop bp                                    ; 5d
     10701    test byte [bp-0021ah], 0e0h               ; f6 86 e6 fd e0
     10702    jne short 076a9h                          ; 75 b1
     10703    test byte [bp-0021ah], 01fh               ; f6 86 e6 fd 1f
     10704    je near 074a6h                            ; 0f 84 a5 fd
     10705    jmp short 076a9h                          ; eb a6
     10706    leave                                     ; c9
    1059910707    pop di                                    ; 5f
    1060010708    pop si                                    ; 5e
     
    1060310711    pop bx                                    ; 5b
    1060410712    retn                                      ; c3
    10605 _scsi_init:                                  ; 0xf7b5e LB 0x64
     10713_scsi_init:                                  ; 0xf770a LB 0x64
    1060610714    push bp                                   ; 55
    1060710715    mov bp, sp                                ; 89 e5
    1060810716    mov dx, strict word 0000eh                ; ba 0e 00
    1060910717    mov ax, strict word 00040h                ; b8 40 00
    10610     call 0161ch                               ; e8 b2 9a
     10718    call 0161ch                               ; e8 06 9f
    1061110719    mov bx, 00122h                            ; bb 22 01
    1061210720    mov es, ax                                ; 8e c0
     
    1061910727    ; sub ah, ah                                ; 2a e4
    1062010728    cmp AL, strict byte 055h                  ; 3c 55
    10621     jne short 07b8eh                          ; 75 0c
     10729    jne short 0773ah                          ; 75 0c
    1062210730    xor al, al                                ; 30 c0
    1062310731    mov dx, 00333h                            ; ba 33 03
    1062410732    out DX, AL                                ; ee
    1062510733    mov ax, 00330h                            ; b8 30 03
    10626     call 078b4h                               ; e8 26 fd
     10734    call 07485h                               ; e8 4b fd
    1062710735    mov AL, strict byte 055h                  ; b0 55
    1062810736    mov dx, 00342h                            ; ba 42 03
     
    1063210740    ; sub ah, ah                                ; 2a e4
    1063310741    cmp AL, strict byte 055h                  ; 3c 55
    10634     jne short 07ba7h                          ; 75 0c
     10742    jne short 07753h                          ; 75 0c
    1063510743    xor al, al                                ; 30 c0
    1063610744    mov dx, 00343h                            ; ba 43 03
    1063710745    out DX, AL                                ; ee
    1063810746    mov ax, 00340h                            ; b8 40 03
    10639     call 078b4h                               ; e8 0d fd
     10747    call 07485h                               ; e8 32 fd
    1064010748    mov AL, strict byte 055h                  ; b0 55
    1064110749    mov dx, 00352h                            ; ba 52 03
     
    1064510753    ; sub ah, ah                                ; 2a e4
    1064610754    cmp AL, strict byte 055h                  ; 3c 55
    10647     jne short 07bc0h                          ; 75 0c
     10755    jne short 0776ch                          ; 75 0c
    1064810756    xor al, al                                ; 30 c0
    1064910757    mov dx, 00353h                            ; ba 53 03
    1065010758    out DX, AL                                ; ee
    1065110759    mov ax, 00350h                            ; b8 50 03
    10652     call 078b4h                               ; e8 f4 fc
     10760    call 07485h                               ; e8 19 fd
    1065310761    pop bp                                    ; 5d
    1065410762    retn                                      ; c3
    10655 high_bits_save_:                             ; 0xf7bc2 LB 0x14
     10763high_bits_save_:                             ; 0xf776e LB 0x14
    1065610764    push bx                                   ; 53
    1065710765    push bp                                   ; 55
     
    1066410772    pop bx                                    ; 5b
    1066510773    retn                                      ; c3
    10666 high_bits_restore_:                          ; 0xf7bd6 LB 0x14
     10774high_bits_restore_:                          ; 0xf7782 LB 0x14
    1066710775    push bx                                   ; 53
    1066810776    push bp                                   ; 55
     
    1067510783    pop bx                                    ; 5b
    1067610784    retn                                      ; c3
    10677 ahci_ctrl_set_bits_:                         ; 0xf7bea LB 0x42
     10785ahci_ctrl_set_bits_:                         ; 0xf7796 LB 0x40
    1067810786    push si                                   ; 56
    1067910787    push di                                   ; 57
    10680     push bp                                   ; 55
    10681     mov bp, sp                                ; 89 e5
    10682     push ax                                   ; 50
     10788    enter 00002h, 000h                        ; c8 02 00 00
    1068310789    mov si, ax                                ; 89 c6
    1068410790    mov ax, dx                                ; 89 d0
     
    1070810814    ; mov ax, cx                                ; 8b c1
    1070910815    out DX, eax                               ; 66 ef
    10710     mov sp, bp                                ; 89 ec
    10711     pop bp                                    ; 5d
     10816    leave                                     ; c9
    1071210817    pop di                                    ; 5f
    1071310818    pop si                                    ; 5e
    1071410819    retn                                      ; c3
    10715 ahci_ctrl_clear_bits_:                       ; 0xf7c2c LB 0x46
     10820ahci_ctrl_clear_bits_:                       ; 0xf77d6 LB 0x44
    1071610821    push si                                   ; 56
    1071710822    push di                                   ; 57
    10718     push bp                                   ; 55
    10719     mov bp, sp                                ; 89 e5
    10720     push ax                                   ; 50
     10823    enter 00002h, 000h                        ; c8 02 00 00
    1072110824    mov si, ax                                ; 89 c6
    1072210825    mov ax, dx                                ; 89 d0
     
    1074810851    ; mov ax, cx                                ; 8b c1
    1074910852    out DX, eax                               ; 66 ef
    10750     mov sp, bp                                ; 89 ec
    10751     pop bp                                    ; 5d
     10853    leave                                     ; c9
    1075210854    pop di                                    ; 5f
    1075310855    pop si                                    ; 5e
    1075410856    retn                                      ; c3
    10755 ahci_ctrl_is_bit_set_:                       ; 0xf7c72 LB 0x36
     10857ahci_ctrl_is_bit_set_:                       ; 0xf781a LB 0x36
    1075610858    push si                                   ; 56
    1075710859    push di                                   ; 57
     
    1077510877    xchg dx, ax                               ; 92
    1077610878    test dx, di                               ; 85 fa
    10777     jne short 07c9eh                          ; 75 04
     10879    jne short 07846h                          ; 75 04
    1077810880    test ax, bx                               ; 85 d8
    10779     je short 07ca2h                           ; 74 04
     10881    je short 0784ah                           ; 74 04
    1078010882    mov AL, strict byte 001h                  ; b0 01
    10781     jmp short 07ca4h                          ; eb 02
     10883    jmp short 0784ch                          ; eb 02
    1078210884    xor al, al                                ; 30 c0
    1078310885    pop bp                                    ; 5d
     
    1078510887    pop si                                    ; 5e
    1078610888    retn                                      ; c3
    10787 ahci_ctrl_extract_bits_:                     ; 0xf7ca8 LB 0x1c
     10889ahci_ctrl_extract_bits_:                     ; 0xf7850 LB 0x1b
    1078810890    push si                                   ; 56
    1078910891    push bp                                   ; 55
    1079010892    mov bp, sp                                ; 89 e5
    10791     mov si, ax                                ; 89 c6
     10893    mov si, bx                                ; 89 de
    1079210894    and ax, bx                                ; 21 d8
    1079310895    and dx, cx                                ; 21 ca
    10794     mov cl, byte [bp+006h]                    ; 8a 4e 06
    10795     xor ch, ch                                ; 30 ed
    10796     jcxz 07cbfh                               ; e3 06
     10896    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
     10897    jcxz 07866h                               ; e3 06
    1079710898    shr dx, 1                                 ; d1 ea
    1079810899    rcr ax, 1                                 ; d1 d8
    10799     loop 07cb9h                               ; e2 fa
     10900    loop 07860h                               ; e2 fa
    1080010901    pop bp                                    ; 5d
    1080110902    pop si                                    ; 5e
    1080210903    retn 00002h                               ; c2 02 00
    10803 ahci_addr_to_phys_:                          ; 0xf7cc4 LB 0x1e
     10904ahci_addr_to_phys_:                          ; 0xf786b LB 0x1e
    1080410905    push bx                                   ; 53
    1080510906    push cx                                   ; 51
     
    1081210913    sal ax, 1                                 ; d1 e0
    1081310914    rcl dx, 1                                 ; d1 d2
    10814     loop 07cd2h                               ; e2 fa
     10915    loop 07879h                               ; e2 fa
    1081510916    xor cx, cx                                ; 31 c9
    1081610917    add ax, bx                                ; 01 d8
     
    1082010921    pop bx                                    ; 5b
    1082110922    retn                                      ; c3
    10822 ahci_port_cmd_sync_:                         ; 0xf7ce2 LB 0xdd
     10923ahci_port_cmd_sync_:                         ; 0xf7889 LB 0xd0
    1082310924    push cx                                   ; 51
    1082410925    push si                                   ; 56
    1082510926    push di                                   ; 57
    10826     push bp                                   ; 55
    10827     mov bp, sp                                ; 89 e5
    10828     push ax                                   ; 50
    10829     push ax                                   ; 50
     10927    enter 00006h, 000h                        ; c8 06 00 00
    1083010928    mov si, ax                                ; 89 c6
    10831     mov cx, dx                                ; 89 d1
    10832     mov dl, bl                                ; 88 da
    10833     mov es, cx                                ; 8e c1
     10929    mov word [bp-004h], dx                    ; 89 56 fc
     10930    mov es, dx                                ; 8e c2
    1083410931    mov al, byte [es:si+00262h]               ; 26 8a 84 62 02
    1083510932    mov byte [bp-002h], al                    ; 88 46 fe
    1083610933    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1083710934    cmp AL, strict byte 0ffh                  ; 3c ff
    10838     jne short 07d06h                          ; 75 03
    10839     jmp near 07db8h                           ; e9 b2 00
    10840     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    10841     xor ah, ah                                ; 30 e4
    10842     xor bx, bx                                ; 31 db
    10843     or bl, 080h                               ; 80 cb 80
    10844     xor dh, dh                                ; 30 f6
    10845     or bx, dx                                 ; 09 d3
    10846     mov word [es:si], bx                      ; 26 89 1c
    10847     mov word [es:si+002h], ax                 ; 26 89 44 02
    10848     mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
    10849     mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
     10935    je near 07954h                            ; 0f 84 aa 00
     10936    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
     10937    xor dx, dx                                ; 31 d2
     10938    or dl, 080h                               ; 80 ca 80
     10939    movzx ax, bl                              ; 0f b6 c3
     10940    or dx, ax                                 ; 09 c2
     10941    mov word [es:si], dx                      ; 26 89 14
     10942    mov word [es:si+002h], cx                 ; 26 89 4c 02
     10943    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
     10944    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
    1085010945    lea ax, [si+00080h]                       ; 8d 84 80 00
    10851     mov dx, cx                                ; 89 ca
    10852     call 07cc4h                               ; e8 92 ff
    10853     mov es, cx                                ; 8e c1
     10946    mov dx, es                                ; 8c c2
     10947    call 0786bh                               ; e8 98 ff
     10948    mov es, [bp-004h]                         ; 8e 46 fc
    1085410949    mov word [es:si+008h], ax                 ; 26 89 44 08
    1085510950    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    10856     mov al, byte [bp-002h]                    ; 8a 46 fe
    10857     xor ah, ah                                ; 30 e4
    10858     mov CL, strict byte 007h                  ; b1 07
    10859     mov si, ax                                ; 89 c6
    10860     sal si, CL                                ; d3 e6
     10951    movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     10952    sal si, 007h                              ; c1 e6 07
    1086110953    lea dx, [si+00118h]                       ; 8d 94 18 01
    1086210954    mov bx, strict word 00011h                ; bb 11 00
    1086310955    xor cx, cx                                ; 31 c9
    1086410956    mov ax, di                                ; 89 f8
    10865     call 07beah                               ; e8 95 fe
     10957    call 07796h                               ; e8 a3 fe
    1086610958    lea ax, [si+00138h]                       ; 8d 84 38 01
    1086710959    cwd                                       ; 99
     
    1088110973    ; mov ax, cx                                ; 8b c1
    1088210974    out DX, eax                               ; 66 ef
    10883     mov al, byte [bp-002h]                    ; 8a 46 fe
    10884     xor ah, ah                                ; 30 e4
    10885     mov CL, strict byte 007h                  ; b1 07
    10886     sal ax, CL                                ; d3 e0
    10887     mov word [bp-004h], ax                    ; 89 46 fc
     10975    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     10976    sal ax, 007h                              ; c1 e0 07
     10977    mov word [bp-006h], ax                    ; 89 46 fa
    1088810978    mov si, ax                                ; 89 c6
    1088910979    add si, 00110h                            ; 81 c6 10 01
     
    1089210982    mov dx, si                                ; 89 f2
    1089310983    mov ax, di                                ; 89 f8
    10894     call 07c72h                               ; e8 db fe
     10984    call 0781ah                               ; e8 e7 fe
    1089510985    test al, al                               ; 84 c0
    10896     je short 07d78h                           ; 74 dd
     10986    je short 07916h                           ; 74 df
    1089710987    mov bx, strict word 00001h                ; bb 01 00
    1089810988    xor cx, cx                                ; 31 c9
    1089910989    mov dx, si                                ; 89 f2
    1090010990    mov ax, di                                ; 89 f8
    10901     call 07beah                               ; e8 43 fe
    10902     mov dx, word [bp-004h]                    ; 8b 56 fc
     10991    call 07796h                               ; e8 53 fe
     10992    mov dx, word [bp-006h]                    ; 8b 56 fa
    1090310993    add dx, 00118h                            ; 81 c2 18 01
    1090410994    mov bx, strict word 00001h                ; bb 01 00
    1090510995    xor cx, cx                                ; 31 c9
    1090610996    mov ax, di                                ; 89 f8
    10907     call 07c2ch                               ; e8 74 fe
    10908     mov sp, bp                                ; 89 ec
    10909     pop bp                                    ; 5d
     10997    call 077d6h                               ; e8 82 fe
     10998    leave                                     ; c9
    1091010999    pop di                                    ; 5f
    1091111000    pop si                                    ; 5e
    1091211001    pop cx                                    ; 59
    1091311002    retn                                      ; c3
    10914 ahci_cmd_data_:                              ; 0xf7dbf LB 0x1cf
     11003ahci_cmd_data_:                              ; 0xf7959 LB 0x1c5
    1091511004    push cx                                   ; 51
    1091611005    push si                                   ; 56
    1091711006    push di                                   ; 57
    10918     push bp                                   ; 55
    10919     mov bp, sp                                ; 89 e5
    10920     sub sp, strict byte 00010h                ; 83 ec 10
     11007    enter 00010h, 000h                        ; c8 10 00 00
    1092111008    mov di, ax                                ; 89 c7
    10922     mov word [bp-006h], dx                    ; 89 56 fa
     11009    mov word [bp-00ch], dx                    ; 89 56 f4
    1092311010    mov byte [bp-002h], bl                    ; 88 5e fe
    1092411011    xor si, si                                ; 31 f6
     
    1092611013    mov ax, word [es:di+001eeh]               ; 26 8b 85 ee 01
    1092711014    mov word [bp-004h], ax                    ; 89 46 fc
    10928     mov word [bp-010h], si                    ; 89 76 f0
    10929     mov word [bp-008h], ax                    ; 89 46 f8
     11015    mov word [bp-008h], si                    ; 89 76 f8
     11016    mov word [bp-006h], ax                    ; 89 46 fa
    1093011017    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    1093111018    mov word [bp-00ah], ax                    ; 89 46 f6
    1093211019    mov ax, word [es:di+00ch]                 ; 26 8b 45 0c
    10933     mov word [bp-00ch], ax                    ; 89 46 f4
     11020    mov word [bp-010h], ax                    ; 89 46 f0
    1093411021    mov cx, strict word 00040h                ; b9 40 00
    1093511022    xor bx, bx                                ; 31 db
    1093611023    mov ax, 00080h                            ; b8 80 00
    1093711024    mov dx, word [bp-004h]                    ; 8b 56 fc
    10938     call 08dbbh                               ; e8 bd 0f
     11025    call 0885ah                               ; e8 c4 0e
    1093911026    mov es, [bp-004h]                         ; 8e 46 fc
    1094011027    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1094211029    mov byte [es:si+00082h], al               ; 26 88 84 82 00
    1094311030    mov byte [es:si+00083h], 000h             ; 26 c6 84 83 00 00
    10944     mov es, [bp-006h]                         ; 8e 46 fa
     11031    mov es, [bp-00ch]                         ; 8e 46 f4
    1094511032    mov al, byte [es:di]                      ; 26 8a 05
    1094611033    mov es, [bp-004h]                         ; 8e 46 fc
    1094711034    mov byte [es:si+00084h], al               ; 26 88 84 84 00
    10948     mov es, [bp-006h]                         ; 8e 46 fa
     11035    mov es, [bp-00ch]                         ; 8e 46 f4
    1094911036    mov ax, word [es:di]                      ; 26 8b 05
    10950     mov dx, word [es:di+002h]                 ; 26 8b 55 02
     11037    mov bx, word [es:di+002h]                 ; 26 8b 5d 02
    1095111038    mov cx, strict word 00008h                ; b9 08 00
    10952     shr dx, 1                                 ; d1 ea
     11039    shr bx, 1                                 ; d1 eb
    1095311040    rcr ax, 1                                 ; d1 d8
    10954     loop 07e31h                               ; e2 fa
     11041    loop 079c9h                               ; e2 fa
    1095511042    mov es, [bp-004h]                         ; 8e 46 fc
    1095611043    mov byte [es:si+00085h], al               ; 26 88 84 85 00
    10957     mov es, [bp-006h]                         ; 8e 46 fa
     11044    mov es, [bp-00ch]                         ; 8e 46 f4
    1095811045    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1095911046    mov es, [bp-004h]                         ; 8e 46 fc
    1096011047    mov byte [es:si+00086h], al               ; 26 88 84 86 00
    1096111048    mov byte [es:si+00087h], 040h             ; 26 c6 84 87 00 40
    10962     mov es, [bp-006h]                         ; 8e 46 fa
    10963     mov al, byte [es:di+003h]                 ; 26 8a 45 03
     11049    mov es, [bp-00ch]                         ; 8e 46 f4
     11050    mov ax, word [es:di+002h]                 ; 26 8b 45 02
     11051    shr ax, 008h                              ; c1 e8 08
    1096411052    mov es, [bp-004h]                         ; 8e 46 fc
    1096511053    mov byte [es:si+00088h], al               ; 26 88 84 88 00
     
    1096811056    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1096911057    mov byte [es:si+0008ch], al               ; 26 88 84 8c 00
    10970     mov al, byte [bp-009h]                    ; 8a 46 f7
     11058    mov ax, word [bp-00ah]                    ; 8b 46 f6
     11059    shr ax, 008h                              ; c1 e8 08
    1097111060    mov byte [es:si+0008dh], al               ; 26 88 84 8d 00
    1097211061    mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00
    1097311062    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1097411063    xor dx, dx                                ; 31 d2
    10975     mov bx, word [bp-00ch]                    ; 8b 5e f4
     11064    mov bx, word [bp-010h]                    ; 8b 5e f0
    1097611065    xor cx, cx                                ; 31 c9
    10977     call 08dd2h                               ; e8 3e 0f
     11066    call 08829h                               ; e8 f7 0d
    1097811067    push dx                                   ; 52
    1097911068    push ax                                   ; 50
    10980     mov es, [bp-006h]                         ; 8e 46 fa
     11069    mov es, [bp-00ch]                         ; 8e 46 f4
    1098111070    mov bx, word [es:di+004h]                 ; 26 8b 5d 04
    1098211071    mov cx, word [es:di+006h]                 ; 26 8b 4d 06
    1098311072    mov ax, 0026ah                            ; b8 6a 02
    1098411073    mov dx, word [bp-004h]                    ; 8b 56 fc
    10985     call 08c4eh                               ; e8 a4 0d
     11074    call 08744h                               ; e8 fc 0c
    1098611075    mov es, [bp-004h]                         ; 8e 46 fc
    10987     mov dl, byte [es:si+00263h]               ; 26 8a 94 63 02
    10988     xor dh, dh                                ; 30 f6
    10989     mov ax, word [es:si+0027eh]               ; 26 8b 84 7e 02
    10990     add ax, strict word 0ffffh                ; 05 ff ff
     11076    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     11077    mov dx, word [es:si+0027eh]               ; 26 8b 94 7e 02
     11078    add dx, strict byte 0ffffh                ; 83 c2 ff
    1099111079    mov bx, word [es:si+00280h]               ; 26 8b 9c 80 02
    1099211080    adc bx, strict byte 0ffffh                ; 83 d3 ff
    1099311081    mov word [bp-00eh], bx                    ; 89 5e f2
    10994     mov CL, strict byte 004h                  ; b1 04
    10995     mov bx, dx                                ; 89 d3
    10996     sal bx, CL                                ; d3 e3
    10997     mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
    10998     mov ax, word [bp-00eh]                    ; 8b 46 f2
    10999     mov word [es:bx+0010eh], ax               ; 26 89 87 0e 01
    11000     mov ax, word [es:si+0027ah]               ; 26 8b 84 7a 02
    11001     mov cx, word [es:si+0027ch]               ; 26 8b 8c 7c 02
    11002     mov word [es:bx+00100h], ax               ; 26 89 87 00 01
    11003     mov word [es:bx+00102h], cx               ; 26 89 8f 02 01
    11004     mov ax, dx                                ; 89 d0
     11082    mov bx, ax                                ; 89 c3
     11083    sal bx, 004h                              ; c1 e3 04
     11084    mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
     11085    mov dx, word [bp-00eh]                    ; 8b 56 f2
     11086    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
     11087    mov cx, word [es:si+0027ah]               ; 26 8b 8c 7a 02
     11088    mov dx, word [es:si+0027ch]               ; 26 8b 94 7c 02
     11089    mov word [es:bx+00100h], cx               ; 26 89 8f 00 01
     11090    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
    1100511091    inc ax                                    ; 40
    11006     mov es, [bp-006h]                         ; 8e 46 fa
     11092    mov es, [bp-00ch]                         ; 8e 46 f4
    1100711093    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    11008     je short 07f28h                           ; 74 2d
     11094    je short 07ac1h                           ; 74 2c
    1100911095    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1101011096    dec dx                                    ; 4a
    11011     mov CL, strict byte 004h                  ; b1 04
    1101211097    mov di, ax                                ; 89 c7
    11013     sal di, CL                                ; d3 e7
     11098    sal di, 004h                              ; c1 e7 04
    1101411099    mov es, [bp-004h]                         ; 8e 46 fc
    1101511100    mov word [es:di+0010ch], dx               ; 26 89 95 0c 01
    1101611101    mov word [es:di+0010eh], si               ; 26 89 b5 0e 01
    11017     mov bx, word [es:si+00264h]               ; 26 8b 9c 64 02
    11018     mov dx, word [es:si+00266h]               ; 26 8b 94 66 02
    11019     mov word [es:di+00100h], bx               ; 26 89 9d 00 01
    11020     mov word [es:di+00102h], dx               ; 26 89 95 02 01
     11102    mov dx, word [es:si+00264h]               ; 26 8b 94 64 02
     11103    mov bx, word [es:si+00266h]               ; 26 8b 9c 66 02
     11104    mov word [es:di+00100h], dx               ; 26 89 95 00 01
     11105    mov word [es:di+00102h], bx               ; 26 89 9d 02 01
    1102111106    inc ax                                    ; 40
    11022     mov es, [bp-008h]                         ; 8e 46 f8
    11023     mov bx, word [bp-010h]                    ; 8b 5e f0
     11107    les bx, [bp-008h]                         ; c4 5e f8
    1102411108    mov byte [es:bx+00263h], al               ; 26 88 87 63 02
    1102511109    xor ax, ax                                ; 31 c0
    11026     mov es, [bp-008h]                         ; 8e 46 f8
    11027     mov bx, word [bp-010h]                    ; 8b 5e f0
    11028     mov dl, byte [es:bx+00263h]               ; 26 8a 97 63 02
    11029     xor dh, dh                                ; 30 f6
     11110    les bx, [bp-008h]                         ; c4 5e f8
     11111    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1103011112    cmp ax, dx                                ; 39 d0
    11031     jnc short 07f49h                          ; 73 03
     11113    jnc short 07adbh                          ; 73 03
    1103211114    inc ax                                    ; 40
    11033     jmp short 07f35h                          ; eb ec
     11115    jmp short 07acbh                          ; eb f0
    1103411116    mov al, byte [bp-002h]                    ; 8a 46 fe
    1103511117    cmp AL, strict byte 035h                  ; 3c 35
    11036     jne short 07f56h                          ; 75 06
     11118    jne short 07ae8h                          ; 75 06
    1103711119    mov byte [bp-002h], 040h                  ; c6 46 fe 40
    11038     jmp short 07f69h                          ; eb 13
     11120    jmp short 07afch                          ; eb 14
    1103911121    cmp AL, strict byte 0a0h                  ; 3c a0
    11040     jne short 07f66h                          ; 75 0c
     11122    jne short 07af8h                          ; 75 0c
    1104111123    or byte [bp-002h], 020h                   ; 80 4e fe 20
    1104211124    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    11043     jmp short 07f69h                          ; eb 03
    11044     mov byte [bp-002h], dh                    ; 88 76 fe
     11125    jmp short 07afch                          ; eb 04
     11126    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1104511127    or byte [bp-002h], 005h                   ; 80 4e fe 05
    11046     mov bl, byte [bp-002h]                    ; 8a 5e fe
    11047     xor bh, bh                                ; 30 ff
    11048     mov ax, word [bp-010h]                    ; 8b 46 f0
    11049     mov dx, word [bp-008h]                    ; 8b 56 f8
    11050     call 07ce2h                               ; e8 67 fd
    11051     mov ax, word [bp-010h]                    ; 8b 46 f0
     11128    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     11129    mov ax, word [bp-008h]                    ; 8b 46 f8
     11130    mov dx, word [bp-006h]                    ; 8b 56 fa
     11131    call 07889h                               ; e8 7c fd
     11132    mov ax, word [bp-008h]                    ; 8b 46 f8
    1105211133    add ax, 0026ah                            ; 05 6a 02
    11053     mov dx, word [bp-008h]                    ; 8b 56 f8
    11054     call 08cc2h                               ; e8 3b 0d
    11055     mov sp, bp                                ; 89 ec
    11056     pop bp                                    ; 5d
     11134    mov dx, word [bp-006h]                    ; 8b 56 fa
     11135    call 087bah                               ; e8 a1 0c
     11136    leave                                     ; c9
    1105711137    pop di                                    ; 5f
    1105811138    pop si                                    ; 5e
    1105911139    pop cx                                    ; 59
    1106011140    retn                                      ; c3
    11061 ahci_port_deinit_current_:                   ; 0xf7f8e LB 0x148
     11141ahci_port_deinit_current_:                   ; 0xf7b1e LB 0x13f
    1106211142    push bx                                   ; 53
    1106311143    push cx                                   ; 51
    1106411144    push si                                   ; 56
    1106511145    push di                                   ; 57
    11066     push bp                                   ; 55
    11067     mov bp, sp                                ; 89 e5
    11068     sub sp, strict byte 00006h                ; 83 ec 06
     11146    enter 00006h, 000h                        ; c8 06 00 00
    1106911147    mov di, ax                                ; 89 c7
    1107011148    mov word [bp-004h], dx                    ; 89 56 fc
     
    1107411152    mov byte [bp-002h], al                    ; 88 46 fe
    1107511153    cmp AL, strict byte 0ffh                  ; 3c ff
    11076     jne short 07fb3h                          ; 75 03
    11077     jmp near 080ceh                           ; e9 1b 01
    11078     xor ah, ah                                ; 30 e4
    11079     mov CL, strict byte 007h                  ; b1 07
    11080     mov dx, ax                                ; 89 c2
    11081     sal dx, CL                                ; d3 e2
     11154    je near 07c57h                            ; 0f 84 17 01
     11155    movzx dx, al                              ; 0f b6 d0
     11156    sal dx, 007h                              ; c1 e2 07
    1108211157    add dx, 00118h                            ; 81 c2 18 01
    1108311158    mov bx, strict word 00011h                ; bb 11 00
    1108411159    xor cx, cx                                ; 31 c9
    1108511160    mov ax, si                                ; 89 f0
    11086     call 07c2ch                               ; e8 63 fc
    11087     mov al, byte [bp-002h]                    ; 8a 46 fe
    11088     xor ah, ah                                ; 30 e4
    11089     mov CL, strict byte 007h                  ; b1 07
    11090     sal ax, CL                                ; d3 e0
     11161    call 077d6h                               ; e8 82 fc
     11162    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11163    sal ax, 007h                              ; c1 e0 07
    1109111164    mov word [bp-006h], ax                    ; 89 46 fa
    1109211165    mov dx, ax                                ; 89 c2
     
    1109511168    xor cx, cx                                ; 31 c9
    1109611169    mov ax, si                                ; 89 f0
    11097     call 07c72h                               ; e8 8d fc
     11170    call 0781ah                               ; e8 ac fc
    1109811171    cmp AL, strict byte 001h                  ; 3c 01
    11099     je short 07fc9h                           ; 74 e0
     11172    je short 07b54h                           ; 74 e2
    1110011173    mov cx, strict word 00020h                ; b9 20 00
    1110111174    xor bx, bx                                ; 31 db
    1110211175    mov ax, di                                ; 89 f8
    1110311176    mov dx, word [bp-004h]                    ; 8b 56 fc
    11104     call 08dbbh                               ; e8 c5 0d
     11177    call 0885ah                               ; e8 db 0c
    1110511178    lea ax, [di+00080h]                       ; 8d 85 80 00
    1110611179    mov cx, strict word 00040h                ; b9 40 00
    1110711180    xor bx, bx                                ; 31 db
    1110811181    mov dx, word [bp-004h]                    ; 8b 56 fc
    11109     call 08dbbh                               ; e8 b6 0d
     11182    call 0885ah                               ; e8 cc 0c
    1111011183    lea ax, [di+00200h]                       ; 8d 85 00 02
    1111111184    mov cx, strict word 00060h                ; b9 60 00
    1111211185    xor bx, bx                                ; 31 db
    1111311186    mov dx, word [bp-004h]                    ; 8b 56 fc
    11114     call 08dbbh                               ; e8 a7 0d
     11187    call 0885ah                               ; e8 bd 0c
    1111511188    mov ax, word [bp-006h]                    ; 8b 46 fa
    1111611189    add ax, 00108h                            ; 05 08 01
     
    1120711280    mov es, [bp-004h]                         ; 8e 46 fc
    1120811281    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
    11209     mov sp, bp                                ; 89 ec
    11210     pop bp                                    ; 5d
     11282    leave                                     ; c9
    1121111283    pop di                                    ; 5f
    1121211284    pop si                                    ; 5e
     
    1121411286    pop bx                                    ; 5b
    1121511287    retn                                      ; c3
    11216 ahci_port_init_:                             ; 0xf80d6 LB 0x20d
     11288ahci_port_init_:                             ; 0xf7c5d LB 0x201
    1121711289    push cx                                   ; 51
    1121811290    push si                                   ; 56
    1121911291    push di                                   ; 57
    11220     push bp                                   ; 55
    11221     mov bp, sp                                ; 89 e5
    11222     sub sp, strict byte 00006h                ; 83 ec 06
     11292    enter 00006h, 000h                        ; c8 06 00 00
    1122311293    mov si, ax                                ; 89 c6
    1122411294    mov word [bp-004h], dx                    ; 89 56 fc
    1122511295    mov byte [bp-002h], bl                    ; 88 5e fe
    11226     call 07f8eh                               ; e8 a4 fe
    11227     mov al, bl                                ; 88 d8
    11228     xor ah, ah                                ; 30 e4
    11229     mov CL, strict byte 007h                  ; b1 07
    11230     mov dx, ax                                ; 89 c2
    11231     sal dx, CL                                ; d3 e2
     11296    call 07b1eh                               ; e8 af fe
     11297    movzx dx, bl                              ; 0f b6 d3
     11298    sal dx, 007h                              ; c1 e2 07
    1123211299    add dx, 00118h                            ; 81 c2 18 01
    1123311300    mov es, [bp-004h]                         ; 8e 46 fc
     
    1123511302    mov bx, strict word 00011h                ; bb 11 00
    1123611303    xor cx, cx                                ; 31 c9
    11237     call 07c2ch                               ; e8 24 fb
    11238     mov al, byte [bp-002h]                    ; 8a 46 fe
    11239     xor ah, ah                                ; 30 e4
    11240     mov CL, strict byte 007h                  ; b1 07
    11241     mov di, ax                                ; 89 c7
    11242     sal di, CL                                ; d3 e7
     11304    call 077d6h                               ; e8 4d fb
     11305    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     11306    sal di, 007h                              ; c1 e7 07
    1124311307    lea dx, [di+00118h]                       ; 8d 95 18 01
    1124411308    mov es, [bp-004h]                         ; 8e 46 fc
     
    1124611310    mov bx, 0c011h                            ; bb 11 c0
    1124711311    xor cx, cx                                ; 31 c9
    11248     call 07c72h                               ; e8 4b fb
     11312    call 0781ah                               ; e8 76 fb
    1124911313    cmp AL, strict byte 001h                  ; 3c 01
    11250     je short 08108h                           ; 74 dd
     11314    je short 07c89h                           ; 74 e1
    1125111315    mov cx, strict word 00020h                ; b9 20 00
    1125211316    xor bx, bx                                ; 31 db
    1125311317    mov ax, si                                ; 89 f0
    1125411318    mov dx, word [bp-004h]                    ; 8b 56 fc
    11255     call 08dbbh                               ; e8 83 0c
     11319    call 0885ah                               ; e8 a5 0b
    1125611320    lea ax, [si+00080h]                       ; 8d 84 80 00
    1125711321    mov cx, strict word 00040h                ; b9 40 00
    1125811322    xor bx, bx                                ; 31 db
    1125911323    mov dx, word [bp-004h]                    ; 8b 56 fc
    11260     call 08dbbh                               ; e8 74 0c
     11324    call 0885ah                               ; e8 96 0b
    1126111325    mov ax, si                                ; 89 f0
    1126211326    add ah, 002h                              ; 80 c4 02
     
    1126511329    xor bx, bx                                ; 31 db
    1126611330    mov dx, word [bp-004h]                    ; 8b 56 fc
    11267     call 08dbbh                               ; e8 61 0c
     11331    call 0885ah                               ; e8 83 0b
    1126811332    lea ax, [di+00108h]                       ; 8d 85 08 01
    1126911333    cwd                                       ; 99
     
    1127911343    mov ax, word [bp-006h]                    ; 8b 46 fa
    1128011344    mov dx, word [bp-004h]                    ; 8b 56 fc
    11281     call 07cc4h                               ; e8 47 fb
     11345    call 0786bh                               ; e8 71 fb
    1128211346    mov es, [bp-004h]                         ; 8e 46 fc
    1128311347    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1132411388    mov ax, si                                ; 89 f0
    1132511389    mov dx, word [bp-004h]                    ; 8b 56 fc
    11326     call 07cc4h                               ; e8 db fa
     11390    call 0786bh                               ; e8 05 fb
    1132711391    mov es, [bp-004h]                         ; 8e 46 fc
    1132811392    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1142311487    mov byte [es:si+00262h], al               ; 26 88 84 62 02
    1142411488    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
    11425     mov sp, bp                                ; 89 ec
    11426     pop bp                                    ; 5d
     11489    leave                                     ; c9
    1142711490    pop di                                    ; 5f
    1142811491    pop si                                    ; 5e
    1142911492    pop cx                                    ; 59
    1143011493    retn                                      ; c3
    11431 @ahci_read_sectors:                          ; 0xf82e3 LB 0x96
     11494@ahci_read_sectors:                          ; 0xf7e5e LB 0x8b
    1143211495    push si                                   ; 56
    1143311496    push di                                   ; 57
    1143411497    push bp                                   ; 55
    1143511498    mov bp, sp                                ; 89 e5
    11436     les bx, [bp+008h]                         ; c4 5e 08
    11437     mov al, byte [es:bx+008h]                 ; 26 8a 47 08
    11438     xor ah, ah                                ; 30 e4
    11439     mov di, ax                                ; 89 c7
     11499    les di, [bp+008h]                         ; c4 7e 08
     11500    movzx di, byte [es:di+008h]               ; 26 0f b6 7d 08
    1144011501    sub di, strict byte 0000ch                ; 83 ef 0c
    1144111502    cmp di, strict byte 00004h                ; 83 ff 04
    11442     jbe short 0830eh                          ; 76 13
     11503    jbe short 07e82h                          ; 76 0f
    1144311504    push di                                   ; 57
    11444     mov ax, 00b82h                            ; b8 82 0b
    11445     push ax                                   ; 50
    11446     mov ax, 00b94h                            ; b8 94 0b
    11447     push ax                                   ; 50
    11448     mov ax, strict word 00007h                ; b8 07 00
    11449     push ax                                   ; 50
    11450     call 018fah                               ; e8 ef 95
     11505    push 00b82h                               ; 68 82 0b
     11506    push 00b94h                               ; 68 94 0b
     11507    push strict byte 00007h                   ; 6a 07
     11508    call 018e9h                               ; e8 6a 9a
    1145111509    add sp, strict byte 00008h                ; 83 c4 08
    1145211510    les bx, [bp+008h]                         ; c4 5e 08
    1145311511    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1145411512    xor ax, ax                                ; 31 c0
    11455     call 07bc2h                               ; e8 a7 f8
     11513    call 0776eh                               ; e8 df f8
    1145611514    mov es, [bp+00ah]                         ; 8e 46 0a
    11457     add bx, di                                ; 01 fb
    11458     mov bl, byte [es:bx+001e9h]               ; 26 8a 9f e9 01
    11459     xor bh, bh                                ; 30 ff
     11515    add di, bx                                ; 01 df
     11516    movzx bx, byte [es:di+001e9h]             ; 26 0f b6 9d e9 01
    1146011517    mov di, word [bp+008h]                    ; 8b 7e 08
    1146111518    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1146211519    xor ax, ax                                ; 31 c0
    11463     call 080d6h                               ; e8 a2 fd
     11520    call 07c5dh                               ; e8 b6 fd
    1146411521    mov bx, strict word 00025h                ; bb 25 00
    1146511522    mov ax, di                                ; 89 f8
    1146611523    mov dx, word [bp+00ah]                    ; 8b 56 0a
    11467     call 07dbfh                               ; e8 80 fa
    11468     mov CL, strict byte 009h                  ; b1 09
     11524    call 07959h                               ; e8 a7 fa
    1146911525    mov es, [bp+00ah]                         ; 8e 46 0a
    1147011526    mov bx, di                                ; 89 fb
    11471     mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
    11472     sal ax, CL                                ; d3 e0
    11473     mov cx, ax                                ; 89 c1
     11527    mov cx, word [es:bx+00ah]                 ; 26 8b 4f 0a
     11528    sal cx, 009h                              ; c1 e1 09
    1147411529    shr cx, 1                                 ; d1 e9
    1147511530    mov di, word [es:di+004h]                 ; 26 8b 7d 04
     
    1148511540    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1148611541    xor ax, ax                                ; 31 c0
    11487     call 07bd6h                               ; e8 65 f8
     11542    call 07782h                               ; e8 a1 f8
    1148811543    xor ax, ax                                ; 31 c0
    1148911544    pop bp                                    ; 5d
     
    1149111546    pop si                                    ; 5e
    1149211547    retn 00004h                               ; c2 04 00
    11493 @ahci_write_sectors:                         ; 0xf8379 LB 0x6b
     11548@ahci_write_sectors:                         ; 0xf7ee9 LB 0x65
    1149411549    push si                                   ; 56
    1149511550    push bp                                   ; 55
     
    1149811553    mov cx, word [bp+008h]                    ; 8b 4e 08
    1149911554    mov es, cx                                ; 8e c1
    11500     mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    11501     xor bh, bh                                ; 30 ff
     11555    movzx bx, byte [es:si+008h]               ; 26 0f b6 5c 08
    1150211556    sub bx, strict byte 0000ch                ; 83 eb 0c
    1150311557    cmp bx, strict byte 00004h                ; 83 fb 04
    11504     jbe short 083a6h                          ; 76 13
     11558    jbe short 07f11h                          ; 76 0f
    1150511559    push bx                                   ; 53
    11506     mov dx, 00bb3h                            ; ba b3 0b
    11507     push dx                                   ; 52
    11508     mov dx, 00b94h                            ; ba 94 0b
    11509     push dx                                   ; 52
    11510     mov dx, strict word 00007h                ; ba 07 00
    11511     push dx                                   ; 52
    11512     call 018fah                               ; e8 57 95
     11560    push 00bb3h                               ; 68 b3 0b
     11561    push 00b94h                               ; 68 94 0b
     11562    push strict byte 00007h                   ; 6a 07
     11563    call 018e9h                               ; e8 db 99
    1151311564    add sp, strict byte 00008h                ; 83 c4 08
    1151411565    mov es, cx                                ; 8e c1
    1151511566    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1151611567    xor ax, ax                                ; 31 c0
    11517     call 07bc2h                               ; e8 10 f8
     11568    call 0776eh                               ; e8 51 f8
    1151811569    mov es, cx                                ; 8e c1
    1151911570    add bx, si                                ; 01 f3
    11520     mov bl, byte [es:bx+001e9h]               ; 26 8a 9f e9 01
    11521     xor bh, bh                                ; 30 ff
     11571    movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    1152211572    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1152311573    xor ax, ax                                ; 31 c0
    11524     call 080d6h                               ; e8 0f fd
     11574    call 07c5dh                               ; e8 2c fd
    1152511575    mov bx, strict word 00035h                ; bb 35 00
    1152611576    mov ax, si                                ; 89 f0
    1152711577    mov dx, cx                                ; 89 ca
    11528     call 07dbfh                               ; e8 ee f9
     11578    call 07959h                               ; e8 1e fa
    1152911579    mov es, cx                                ; 8e c1
    1153011580    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1153111581    xor ax, ax                                ; 31 c0
    11532     call 07bd6h                               ; e8 f9 f7
     11582    call 07782h                               ; e8 3b f8
    1153311583    xor ax, ax                                ; 31 c0
    1153411584    pop bp                                    ; 5d
    1153511585    pop si                                    ; 5e
    1153611586    retn 00004h                               ; c2 04 00
    11537 ahci_cmd_packet_:                            ; 0xf83e4 LB 0x178
     11587ahci_cmd_packet_:                            ; 0xf7f4e LB 0x16e
    1153811588    push si                                   ; 56
    1153911589    push di                                   ; 57
    11540     push bp                                   ; 55
    11541     mov bp, sp                                ; 89 e5
    11542     sub sp, strict byte 0000eh                ; 83 ec 0e
     11590    enter 0000eh, 000h                        ; c8 0e 00 00
    1154311591    push ax                                   ; 50
    1154411592    mov byte [bp-002h], dl                    ; 88 56 fe
     
    1154711595    mov dx, strict word 0000eh                ; ba 0e 00
    1154811596    mov ax, strict word 00040h                ; b8 40 00
    11549     call 0161ch                               ; e8 1d 92
     11597    call 0161ch                               ; e8 b5 96
    1155011598    mov si, 00122h                            ; be 22 01
    1155111599    mov word [bp-004h], ax                    ; 89 46 fc
    1155211600    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    11553     jne short 0842eh                          ; 75 23
    11554     mov bx, 00c16h                            ; bb 16 0c
     11601    jne short 07f92h                          ; 75 1f
     11602    mov bx, 00c08h                            ; bb 08 0c
    1155511603    mov cx, ds                                ; 8c d9
    1155611604    mov ax, strict word 00004h                ; b8 04 00
    11557     call 018bdh                               ; e8 a7 94
    11558     mov ax, 00bc6h                            ; b8 c6 0b
    11559     push ax                                   ; 50
    11560     mov ax, 00bd6h                            ; b8 d6 0b
    11561     push ax                                   ; 50
    11562     mov ax, strict word 00004h                ; b8 04 00
    11563     push ax                                   ; 50
    11564     call 018fah                               ; e8 d5 94
     11605    call 018aeh                               ; e8 30 99
     11606    push 00bc6h                               ; 68 c6 0b
     11607    push 00bd6h                               ; 68 d6 0b
     11608    push strict byte 00004h                   ; 6a 04
     11609    call 018e9h                               ; e8 60 99
    1156511610    add sp, strict byte 00006h                ; 83 c4 06
    1156611611    mov ax, strict word 00001h                ; b8 01 00
    11567     jmp near 08554h                           ; e9 26 01
     11612    jmp near 080b6h                           ; e9 24 01
    1156811613    test byte [bp+008h], 001h                 ; f6 46 08 01
    11569     jne short 08428h                          ; 75 f4
    11570     mov bx, word [bp+00ah]                    ; 8b 5e 0a
    11571     mov di, word [bp+00ch]                    ; 8b 7e 0c
     11614    jne short 07f8ch                          ; 75 f4
     11615    mov ax, word [bp+00ah]                    ; 8b 46 0a
     11616    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1157211617    mov cx, strict word 00008h                ; b9 08 00
    11573     sal bx, 1                                 ; d1 e3
    11574     rcl di, 1                                 ; d1 d7
    11575     loop 0843dh                               ; e2 fa
     11618    sal ax, 1                                 ; d1 e0
     11619    rcl dx, 1                                 ; d1 d2
     11620    loop 07fa1h                               ; e2 fa
    1157611621    mov es, [bp-004h]                         ; 8e 46 fc
    11577     mov word [es:si], bx                      ; 26 89 1c
    11578     mov word [es:si+002h], di                 ; 26 89 7c 02
     11622    mov word [es:si], ax                      ; 26 89 04
     11623    mov word [es:si+002h], dx                 ; 26 89 54 02
    1157911624    mov ax, word [bp+010h]                    ; 8b 46 10
    1158011625    mov word [es:si+004h], ax                 ; 26 89 44 04
     
    1158511630    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1158611631    xor cx, cx                                ; 31 c9
    11587     call 08d37h                               ; e8 cd 08
     11632    call 087f0h                               ; e8 22 08
    1158811633    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1158911634    xor di, di                                ; 31 ff
     
    1159511640    xor ax, ax                                ; 31 c0
    1159611641    mov dx, word [bp-006h]                    ; 8b 56 fa
    11597     call 07bc2h                               ; e8 38 f7
     11642    call 0776eh                               ; e8 80 f7
    1159811643    mov es, [bp-004h]                         ; 8e 46 fc
    1159911644    mov bx, word [bp-010h]                    ; 8b 5e f0
    1160011645    add bx, si                                ; 01 f3
    11601     mov bl, byte [es:bx+001e9h]               ; 26 8a 9f e9 01
    11602     xor bh, bh                                ; 30 ff
     11646    movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    1160311647    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1160411648    xor ax, ax                                ; 31 c0
    11605     call 080d6h                               ; e8 33 fc
    11606     mov al, byte [bp-002h]                    ; 8a 46 fe
    11607     xor ah, ah                                ; 30 e4
     11649    call 07c5dh                               ; e8 57 fc
     11650    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1160811651    push ax                                   ; 50
    1160911652    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1161111654    mov ax, 000c0h                            ; b8 c0 00
    1161211655    mov dx, word [bp-006h]                    ; 8b 56 fa
    11613     call 08deah                               ; e8 32 09
     11656    call 08867h                               ; e8 4d 08
    1161411657    mov es, [bp-004h]                         ; 8e 46 fc
    1161511658    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1161811661    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1161911662    test ax, ax                               ; 85 c0
    11620     je short 084f6h                           ; 74 27
     11663    je short 08058h                           ; 74 27
    1162111664    dec ax                                    ; 48
    1162211665    mov es, [bp-006h]                         ; 8e 46 fa
     
    1163111674    mov ax, si                                ; 89 f0
    1163211675    mov dx, word [bp-004h]                    ; 8b 56 fc
    11633     call 07dbfh                               ; e8 be f8
     11676    call 07959h                               ; e8 f6 f8
    1163411677    les bx, [bp-00ah]                         ; c4 5e f6
    1163511678    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1165411697    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1165511698    mov dx, word [bp-008h]                    ; 8b 56 f8
    11656     call 07bd6h                               ; e8 96 f6
     11699    call 07782h                               ; e8 e0 f6
    1165711700    les bx, [bp-00ah]                         ; c4 5e f6
    1165811701    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1165911702    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    11660     jne short 08552h                          ; 75 05
     11703    jne short 080b4h                          ; 75 05
    1166111704    mov ax, strict word 00004h                ; b8 04 00
    11662     jmp short 08554h                          ; eb 02
     11705    jmp short 080b6h                          ; eb 02
    1166311706    xor ax, ax                                ; 31 c0
    11664     mov sp, bp                                ; 89 ec
    11665     pop bp                                    ; 5d
     11707    leave                                     ; c9
    1166611708    pop di                                    ; 5f
    1166711709    pop si                                    ; 5e
    1166811710    retn 0000ch                               ; c2 0c 00
    11669 ahci_port_detect_device_:                    ; 0xf855c LB 0x3a0
     11711ahci_port_detect_device_:                    ; 0xf80bc LB 0x368
    1167011712    push cx                                   ; 51
    1167111713    push si                                   ; 56
    1167211714    push di                                   ; 57
    11673     push bp                                   ; 55
    11674     mov bp, sp                                ; 89 e5
    11675     sub sp, 0021ah                            ; 81 ec 1a 02
     11715    enter 00218h, 000h                        ; c8 18 02 00
    1167611716    mov di, ax                                ; 89 c7
    1167711717    mov word [bp-014h], dx                    ; 89 56 ec
    1167811718    mov byte [bp-004h], bl                    ; 88 5e fc
    11679     mov al, bl                                ; 88 d8
    11680     mov byte [bp-016h], bl                    ; 88 5e ea
    11681     xor al, bl                                ; 30 d8
    11682     mov byte [bp-015h], al                    ; 88 46 eb
    11683     mov bx, word [bp-016h]                    ; 8b 5e ea
    11684     mov ax, di                                ; 89 f8
    11685     call 080d6h                               ; e8 56 fb
     11719    movzx cx, bl                              ; 0f b6 cb
     11720    mov bx, cx                                ; 89 cb
     11721    call 07c5dh                               ; e8 8a fb
    1168611722    mov dx, strict word 0000eh                ; ba 0e 00
    1168711723    mov ax, strict word 00040h                ; b8 40 00
    11688     call 0161ch                               ; e8 93 90
    11689     mov word [bp-010h], ax                    ; 89 46 f0
     11724    call 0161ch                               ; e8 40 95
     11725    mov word [bp-016h], ax                    ; 89 46 ea
    1169011726    mov si, 00122h                            ; be 22 01
    11691     mov word [bp-012h], ax                    ; 89 46 ee
    11692     mov word [bp-01ah], si                    ; 89 76 e6
    11693     mov word [bp-018h], ax                    ; 89 46 e8
    11694     mov CL, strict byte 007h                  ; b1 07
    11695     mov ax, word [bp-016h]                    ; 8b 46 ea
    11696     sal ax, CL                                ; d3 e0
    11697     mov word [bp-00eh], ax                    ; 89 46 f2
     11727    mov word [bp-008h], ax                    ; 89 46 f8
     11728    mov word [bp-00ch], si                    ; 89 76 f4
     11729    mov word [bp-00ah], ax                    ; 89 46 f6
     11730    sal cx, 007h                              ; c1 e1 07
     11731    mov word [bp-00eh], cx                    ; 89 4e f2
     11732    mov ax, cx                                ; 89 c8
    1169811733    add ax, 0012ch                            ; 05 2c 01
    1169911734    cwd                                       ; 99
    11700     mov word [bp-016h], ax                    ; 89 46 ea
     11735    mov word [bp-018h], ax                    ; 89 46 e8
    1170111736    mov bx, dx                                ; 89 d3
    1170211737    mov es, [bp-014h]                         ; 8e 46 ec
     
    1172011755    mov es, [bp-014h]                         ; 8e 46 ec
    1172111756    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    11722     mov ax, word [bp-016h]                    ; 8b 46 ea
     11757    mov ax, word [bp-018h]                    ; 8b 46 e8
    1172311758    mov cx, bx                                ; 89 d9
    1172411759    xchg cx, ax                               ; 91
     
    1175711792    shr eax, 010h                             ; 66 c1 e8 10
    1175811793    xchg dx, ax                               ; 92
    11759     xor bx, bx                                ; 31 db
    11760     push bx                                   ; 53
     11794    push strict byte 00000h                   ; 6a 00
    1176111795    mov bx, strict word 0000fh                ; bb 0f 00
    1176211796    xor cx, cx                                ; 31 c9
    11763     call 07ca8h                               ; e8 68 f6
     11797    call 07850h                               ; e8 c0 f6
    1176411798    cmp ax, strict word 00003h                ; 3d 03 00
    11765     je short 08648h                           ; 74 03
    11766     jmp near 088f5h                           ; e9 ad 02
    11767     mov es, [bp-012h]                         ; 8e 46 ee
     11799    jne near 0841fh                           ; 0f 85 88 02
     11800    mov es, [bp-008h]                         ; 8e 46 f8
    1176811801    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    11769     mov byte [bp-002h], al                    ; 88 46 fe
     11802    mov byte [bp-006h], al                    ; 88 46 fa
    1177011803    cmp AL, strict byte 004h                  ; 3c 04
    11771     jnc short 08645h                          ; 73 ee
     11804    jnc near 0841fh                           ; 0f 83 77 02
    1177211805    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1177311806    add dx, 00118h                            ; 81 c2 18 01
     
    1177611809    mov bx, strict word 00010h                ; bb 10 00
    1177711810    xor cx, cx                                ; 31 c9
    11778     call 07beah                               ; e8 7c f5
     11811    call 07796h                               ; e8 d7 f5
    1177911812    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1178011813    add ax, 00124h                            ; 05 24 01
     
    1179711830    shr eax, 010h                             ; 66 c1 e8 10
    1179811831    xchg dx, ax                               ; 92
    11799     mov cl, byte [bp-002h]                    ; 8a 4e fe
     11832    mov cl, byte [bp-006h]                    ; 8a 4e fa
    1180011833    add cl, 00ch                              ; 80 c1 0c
    1180111834    test dx, dx                               ; 85 d2
    11802     jne short 086eah                          ; 75 42
     11835    jne near 0837ch                           ; 0f 85 81 01
    1180311836    cmp ax, 00101h                            ; 3d 01 01
    11804     jne short 086eah                          ; 75 3d
    11805     mov es, [bp-012h]                         ; 8e 46 ee
    11806     mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
    11807     mov word [es:si+002h], strict word 00000h ; 26 c7 44 02 00 00
    11808     lea dx, [bp-0021ah]                       ; 8d 96 e6 fd
     11837    jne near 0837ch                           ; 0f 85 7a 01
     11838    mov es, [bp-008h]                         ; 8e 46 f8
     11839    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     11840    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
     11841    lea dx, [bp-00218h]                       ; 8d 96 e8 fd
    1180911842    mov word [es:si+004h], dx                 ; 26 89 54 04
    1181011843    mov [es:si+006h], ss                      ; 26 8c 54 06
    11811     mov word [es:si+00ah], strict word 00001h ; 26 c7 44 0a 01 00
    11812     mov word [es:si+00ch], 00200h             ; 26 c7 44 0c 00 02
     11844    db  066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h
     11845    ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02
    1181311846    mov bx, 000ech                            ; bb ec 00
    1181411847    mov ax, si                                ; 89 f0
    11815     mov dx, word [bp-010h]                    ; 8b 56 f0
    11816     call 07dbfh                               ; e8 e1 f6
    11817     test byte [bp-0021ah], 080h               ; f6 86 e6 fd 80
    11818     je short 086edh                           ; 74 08
    11819     mov ax, strict word 00001h                ; b8 01 00
    11820     jmp short 086efh                          ; eb 05
    11821     jmp near 0883fh                           ; e9 52 01
    11822     xor ax, ax                                ; 31 c0
    11823     mov ch, al                                ; 88 c5
    11824     mov ax, word [bp-00218h]                  ; 8b 86 e8 fd
    11825     mov word [bp-00ch], ax                    ; 89 46 f4
    11826     mov ax, word [bp-00214h]                  ; 8b 86 ec fd
    11827     mov word [bp-008h], ax                    ; 89 46 f8
    11828     mov di, word [bp-0020eh]                  ; 8b be f2 fd
    11829     mov ax, word [bp-001a2h]                  ; 8b 86 5e fe
    11830     mov word [bp-006h], ax                    ; 89 46 fa
    11831     mov bx, word [bp-001a0h]                  ; 8b 9e 60 fe
     11848    mov dx, word [bp-016h]                    ; 8b 56 ea
     11849    call 07959h                               ; e8 2c f7
     11850    mov dh, cl                                ; 88 ce
     11851    test byte [bp-00218h], 080h               ; f6 86 e8 fd 80
     11852    db  00fh, 095h, 0c0h
     11853    ; setne al                                  ; 0f 95 c0
     11854    xor ah, ah                                ; 30 e4
     11855    mov byte [bp-002h], al                    ; 88 46 fe
     11856    mov ax, word [bp-00216h]                  ; 8b 86 ea fd
     11857    mov word [bp-010h], ax                    ; 89 46 f0
     11858    mov di, word [bp-00212h]                  ; 8b be ee fd
     11859    mov cx, word [bp-0020ch]                  ; 8b 8e f4 fd
     11860    mov ax, word [bp-001a0h]                  ; 8b 86 60 fe
     11861    mov bx, word [bp-0019eh]                  ; 8b 9e 62 fe
     11862    mov word [bp-012h], bx                    ; 89 5e ee
    1183211863    cmp bx, 00fffh                            ; 81 fb ff 0f
    11833     jne short 08722h                          ; 75 0e
     11864    jne short 0826ah                          ; 75 0e
    1183411865    cmp ax, strict word 0ffffh                ; 3d ff ff
    11835     jne short 08722h                          ; 75 09
    11836     mov ax, word [bp-00152h]                  ; 8b 86 ae fe
    11837     mov word [bp-006h], ax                    ; 89 46 fa
    11838     xor bx, bx                                ; 31 db
    11839     mov al, byte [bp-002h]                    ; 8a 46 fe
    11840     xor ah, ah                                ; 30 e4
    11841     les si, [bp-01ah]                         ; c4 76 e6
    11842     add si, ax                                ; 01 c6
    11843     mov al, byte [bp-004h]                    ; 8a 46 fc
    11844     mov byte [es:si+001e9h], al               ; 26 88 84 e9 01
    11845     mov al, cl                                ; 88 c8
    11846     mov dx, strict word 00018h                ; ba 18 00
    11847     imul dx                                   ; f7 ea
    11848     mov si, word [bp-01ah]                    ; 8b 76 e6
    11849     add si, ax                                ; 01 c6
     11866    jne short 0826ah                          ; 75 09
     11867    mov ax, word [bp-00150h]                  ; 8b 86 b0 fe
     11868    mov word [bp-012h], strict word 00000h    ; c7 46 ee 00 00
     11869    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     11870    mov es, [bp-00ah]                         ; 8e 46 f6
     11871    add bx, word [bp-00ch]                    ; 03 5e f4
     11872    mov dl, byte [bp-004h]                    ; 8a 56 fc
     11873    mov byte [es:bx+001e9h], dl               ; 26 88 97 e9 01
     11874    movzx bx, dh                              ; 0f b6 de
     11875    imul bx, bx, strict byte 00018h           ; 6b db 18
     11876    mov si, word [bp-00ch]                    ; 8b 76 f4
     11877    add si, bx                                ; 01 de
    1185011878    mov word [es:si+01eh], 0ff05h             ; 26 c7 44 1e 05 ff
    11851     mov byte [es:si+020h], ch                 ; 26 88 6c 20
     11879    mov dl, byte [bp-002h]                    ; 8a 56 fe
     11880    mov byte [es:si+020h], dl                 ; 26 88 54 20
    1185211881    mov byte [es:si+021h], 000h               ; 26 c6 44 21 00
    1185311882    mov word [es:si+024h], 00200h             ; 26 c7 44 24 00 02
    1185411883    mov byte [es:si+023h], 001h               ; 26 c6 44 23 01
    11855     mov ax, word [bp-006h]                    ; 8b 46 fa
    1185611884    mov word [es:si+032h], ax                 ; 26 89 44 32
    11857     mov word [es:si+034h], bx                 ; 26 89 5c 34
    11858     mov ax, word [bp-008h]                    ; 8b 46 f8
    11859     mov word [es:si+02ch], ax                 ; 26 89 44 2c
    11860     mov ax, word [bp-00ch]                    ; 8b 46 f4
     11885    mov ax, word [bp-012h]                    ; 8b 46 ee
     11886    mov word [es:si+034h], ax                 ; 26 89 44 34
     11887    mov word [es:si+02ch], di                 ; 26 89 7c 2c
     11888    mov ax, word [bp-010h]                    ; 8b 46 f0
    1186111889    mov word [es:si+02eh], ax                 ; 26 89 44 2e
    11862     mov word [es:si+030h], di                 ; 26 89 7c 30
    11863     mov al, byte [bp-002h]                    ; 8a 46 fe
     11890    mov word [es:si+030h], cx                 ; 26 89 4c 30
     11891    mov al, byte [bp-006h]                    ; 8a 46 fa
    1186411892    cmp AL, strict byte 001h                  ; 3c 01
    11865     jc short 0878ah                           ; 72 0c
    11866     jbe short 08792h                          ; 76 12
     11893    jc short 082d1h                           ; 72 0c
     11894    jbe short 082d9h                          ; 76 12
    1186711895    cmp AL, strict byte 003h                  ; 3c 03
    11868     je short 0879ah                           ; 74 16
     11896    je short 082e1h                           ; 74 16
    1186911897    cmp AL, strict byte 002h                  ; 3c 02
    11870     je short 08796h                           ; 74 0e
    11871     jmp short 087e1h                          ; eb 57
     11898    je short 082ddh                           ; 74 0e
     11899    jmp short 08323h                          ; eb 52
    1187211900    test al, al                               ; 84 c0
    11873     jne short 087e1h                          ; 75 53
     11901    jne short 08323h                          ; 75 4e
    1187411902    mov DL, strict byte 040h                  ; b2 40
    11875     jmp short 0879ch                          ; eb 0a
     11903    jmp short 082e3h                          ; eb 0a
    1187611904    mov DL, strict byte 048h                  ; b2 48
    11877     jmp short 0879ch                          ; eb 06
     11905    jmp short 082e3h                          ; eb 06
    1187811906    mov DL, strict byte 050h                  ; b2 50
    11879     jmp short 0879ch                          ; eb 02
     11907    jmp short 082e3h                          ; eb 02
    1188011908    mov DL, strict byte 058h                  ; b2 58
    11881     mov bl, dl                                ; 88 d3
    11882     add bl, 007h                              ; 80 c3 07
    11883     xor bh, bh                                ; 30 ff
     11909    mov al, dl                                ; 88 d0
     11910    add AL, strict byte 007h                  ; 04 07
     11911    movzx bx, al                              ; 0f b6 d8
    1188411912    mov ax, bx                                ; 89 d8
    11885     call 0165ch                               ; e8 b4 8e
     11913    call 0165ch                               ; e8 6d 93
    1188611914    test al, al                               ; 84 c0
    11887     je short 087e1h                           ; 74 35
     11915    je short 08323h                           ; 74 30
    1188811916    mov al, dl                                ; 88 d0
    1188911917    db  0feh, 0c0h
    1189011918    ; inc al                                    ; fe c0
    1189111919    xor ah, ah                                ; 30 e4
    11892     call 0165ch                               ; e8 a7 8e
    11893     mov byte [bp-015h], al                    ; 88 46 eb
    11894     mov byte [bp-016h], bh                    ; 88 7e ea
    11895     mov al, dl                                ; 88 d0
     11920    call 0165ch                               ; e8 60 93
     11921    movzx cx, al                              ; 0f b6 c8
     11922    sal cx, 008h                              ; c1 e1 08
     11923    movzx ax, dl                              ; 0f b6 c2
     11924    call 0165ch                               ; e8 54 93
    1189611925    xor ah, ah                                ; 30 e4
    11897     call 0165ch                               ; e8 9a 8e
    11898     xor ah, ah                                ; 30 e4
    11899     mov si, word [bp-016h]                    ; 8b 76 ea
    11900     add si, ax                                ; 01 c6
    11901     mov word [bp-00ch], si                    ; 89 76 f4
     11926    add ax, cx                                ; 01 c8
     11927    mov word [bp-010h], ax                    ; 89 46 f0
    1190211928    mov al, dl                                ; 88 d0
    1190311929    add AL, strict byte 002h                  ; 04 02
    11904     call 0165ch                               ; e8 89 8e
    1190511930    xor ah, ah                                ; 30 e4
    11906     mov word [bp-008h], ax                    ; 89 46 f8
     11931    call 0165ch                               ; e8 44 93
     11932    movzx di, al                              ; 0f b6 f8
    1190711933    mov ax, bx                                ; 89 d8
    11908     call 0165ch                               ; e8 7f 8e
    11909     xor ah, ah                                ; 30 e4
    11910     mov di, ax                                ; 89 c7
    11911     mov al, cl                                ; 88 c8
    11912     xor ah, ah                                ; 30 e4
    11913     mov dx, strict word 00018h                ; ba 18 00
    11914     imul dx                                   ; f7 ea
    11915     les si, [bp-01ah]                         ; c4 76 e6
    11916     add si, ax                                ; 01 c6
    11917     mov ax, word [bp-008h]                    ; 8b 46 f8
    11918     mov word [es:si+026h], ax                 ; 26 89 44 26
    11919     mov ax, word [bp-00ch]                    ; 8b 46 f4
     11934    call 0165ch                               ; e8 3c 93
     11935    movzx cx, al                              ; 0f b6 c8
     11936    movzx si, dh                              ; 0f b6 f6
     11937    imul si, si, strict byte 00018h           ; 6b f6 18
     11938    mov es, [bp-00ah]                         ; 8e 46 f6
     11939    add si, word [bp-00ch]                    ; 03 76 f4
     11940    mov word [es:si+026h], di                 ; 26 89 7c 26
     11941    mov ax, word [bp-010h]                    ; 8b 46 f0
    1192011942    mov word [es:si+028h], ax                 ; 26 89 44 28
    11921     mov word [es:si+02ah], di                 ; 26 89 7c 2a
    11922     mov bx, word [bp-01ah]                    ; 8b 5e e6
     11943    mov word [es:si+02ah], cx                 ; 26 89 4c 2a
     11944    mov bx, word [bp-00ch]                    ; 8b 5e f4
    1192311945    mov dl, byte [es:bx+0019eh]               ; 26 8a 97 9e 01
    11924     mov al, byte [bp-002h]                    ; 8a 46 fe
     11946    mov al, byte [bp-006h]                    ; 8a 46 fa
    1192511947    add AL, strict byte 00ch                  ; 04 0c
    11926     mov bl, dl                                ; 88 d3
    11927     xor bh, bh                                ; 30 ff
    11928     add bx, word [bp-01ah]                    ; 03 5e e6
     11948    movzx bx, dl                              ; 0f b6 da
     11949    add bx, word [bp-00ch]                    ; 03 5e f4
    1192911950    mov byte [es:bx+0019fh], al               ; 26 88 87 9f 01
    1193011951    db  0feh, 0c2h
    1193111952    ; inc dl                                    ; fe c2
    11932     mov bx, word [bp-01ah]                    ; 8b 5e e6
     11953    mov bx, word [bp-00ch]                    ; 8b 5e f4
    1193311954    mov byte [es:bx+0019eh], dl               ; 26 88 97 9e 01
    1193411955    mov dx, strict word 00075h                ; ba 75 00
    1193511956    mov ax, strict word 00040h                ; b8 40 00
    11936     call 01600h                               ; e8 d3 8d
    11937     mov bl, al                                ; 88 c3
    11938     db  0feh, 0c3h
    11939     ; inc bl                                    ; fe c3
    11940     xor bh, bh                                ; 30 ff
     11957    call 01600h                               ; e8 97 92
     11958    mov dl, al                                ; 88 c2
     11959    db  0feh, 0c2h
     11960    ; inc dl                                    ; fe c2
     11961    movzx bx, dl                              ; 0f b6 da
    1194111962    mov dx, strict word 00075h                ; ba 75 00
    1194211963    mov ax, strict word 00040h                ; b8 40 00
    11943     call 0160eh                               ; e8 d2 8d
    11944     jmp near 088e7h                           ; e9 a8 00
     11964    call 0160eh                               ; e8 95 92
     11965    jmp near 08411h                           ; e9 95 00
    1194511966    cmp dx, 0eb14h                            ; 81 fa 14 eb
    11946     jne short 08889h                          ; 75 44
     11967    jne near 08411h                           ; 0f 85 8d 00
    1194711968    cmp ax, 00101h                            ; 3d 01 01
    11948     jne short 08889h                          ; 75 3f
    11949     mov es, [bp-012h]                         ; 8e 46 ee
    11950     mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
    11951     mov word [es:si+002h], strict word 00000h ; 26 c7 44 02 00 00
    11952     lea dx, [bp-0021ah]                       ; 8d 96 e6 fd
     11969    jne near 08411h                           ; 0f 85 86 00
     11970    mov es, [bp-008h]                         ; 8e 46 f8
     11971    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     11972    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
     11973    lea dx, [bp-00218h]                       ; 8d 96 e8 fd
    1195311974    mov word [es:si+004h], dx                 ; 26 89 54 04
    1195411975    mov [es:si+006h], ss                      ; 26 8c 54 06
    11955     mov word [es:si+00ah], strict word 00001h ; 26 c7 44 0a 01 00
    11956     mov word [es:si+00ch], 00200h             ; 26 c7 44 0c 00 02
     11976    db  066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h
     11977    ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02
    1195711978    mov bx, 000a1h                            ; bb a1 00
    1195811979    mov ax, si                                ; 89 f0
    11959     mov dx, word [bp-010h]                    ; 8b 56 f0
    11960     call 07dbfh                               ; e8 44 f5
    11961     test byte [bp-0021ah], 080h               ; f6 86 e6 fd 80
    11962     je short 0888bh                           ; 74 09
    11963     mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    11964     jmp short 08890h                          ; eb 07
    11965     jmp short 088e7h                          ; eb 5c
    11966     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    11967     mov bl, byte [bp-002h]                    ; 8a 5e fe
    11968     xor bh, bh                                ; 30 ff
    11969     mov es, [bp-018h]                         ; 8e 46 e8
    11970     add bx, word [bp-01ah]                    ; 03 5e e6
    11971     mov al, byte [bp-004h]                    ; 8a 46 fc
    11972     mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
    11973     mov al, cl                                ; 88 c8
     11980    mov dx, word [bp-016h]                    ; 8b 56 ea
     11981    call 07959h                               ; e8 a3 f5
     11982    test byte [bp-00218h], 080h               ; f6 86 e8 fd 80
     11983    db  00fh, 095h, 0c0h
     11984    ; setne al                                  ; 0f 95 c0
    1197411985    xor ah, ah                                ; 30 e4
    11975     mov dx, strict word 00018h                ; ba 18 00
    11976     imul dx                                   ; f7 ea
    11977     mov si, word [bp-01ah]                    ; 8b 76 e6
    11978     add si, ax                                ; 01 c6
     11986    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     11987    mov es, [bp-016h]                         ; 8e 46 ea
     11988    add bx, si                                ; 01 f3
     11989    mov ah, byte [bp-004h]                    ; 8a 66 fc
     11990    mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
     11991    movzx si, cl                              ; 0f b6 f1
     11992    imul si, si, strict byte 00018h           ; 6b f6 18
     11993    add si, 00122h                            ; 81 c6 22 01
    1197911994    mov word [es:si+01eh], 00505h             ; 26 c7 44 1e 05 05
    11980     mov al, byte [bp-00ah]                    ; 8a 46 f6
    1198111995    mov byte [es:si+020h], al                 ; 26 88 44 20
    1198211996    mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    11983     mov bx, word [bp-01ah]                    ; 8b 5e e6
     11997    les bx, [bp-00ch]                         ; c4 5e f4
    1198411998    mov dl, byte [es:bx+001afh]               ; 26 8a 97 af 01
    11985     mov al, byte [bp-002h]                    ; 8a 46 fe
     11999    mov al, byte [bp-006h]                    ; 8a 46 fa
    1198612000    add AL, strict byte 00ch                  ; 04 0c
    11987     mov bl, dl                                ; 88 d3
    11988     xor bh, bh                                ; 30 ff
    11989     add bx, word [bp-01ah]                    ; 03 5e e6
     12001    movzx bx, dl                              ; 0f b6 da
     12002    mov es, [bp-016h]                         ; 8e 46 ea
     12003    add bx, 00122h                            ; 81 c3 22 01
    1199012004    mov byte [es:bx+001b0h], al               ; 26 88 87 b0 01
    1199112005    db  0feh, 0c2h
    1199212006    ; inc dl                                    ; fe c2
    11993     mov bx, word [bp-01ah]                    ; 8b 5e e6
     12007    les bx, [bp-00ch]                         ; c4 5e f4
    1199412008    mov byte [es:bx+001afh], dl               ; 26 88 97 af 01
    11995     inc byte [bp-002h]                        ; fe 46 fe
    11996     mov al, byte [bp-002h]                    ; 8a 46 fe
    11997     les bx, [bp-01ah]                         ; c4 5e e6
     12009    inc byte [bp-006h]                        ; fe 46 fa
     12010    mov al, byte [bp-006h]                    ; 8a 46 fa
     12011    les bx, [bp-00ch]                         ; c4 5e f4
    1199812012    mov byte [es:bx+001edh], al               ; 26 88 87 ed 01
    11999     mov sp, bp                                ; 89 ec
    12000     pop bp                                    ; 5d
     12013    leave                                     ; c9
    1200112014    pop di                                    ; 5f
    1200212015    pop si                                    ; 5e
    1200312016    pop cx                                    ; 59
    1200412017    retn                                      ; c3
    12005 ahci_mem_alloc_:                             ; 0xf88fc LB 0x40
     12018ahci_mem_alloc_:                             ; 0xf8424 LB 0x40
    1200612019    push bx                                   ; 53
    1200712020    push cx                                   ; 51
     
    1201312026    mov dx, 00413h                            ; ba 13 04
    1201412027    xor ax, ax                                ; 31 c0
    12015     call 0161ch                               ; e8 10 8d
     12028    call 0161ch                               ; e8 e8 91
    1201612029    test ax, ax                               ; 85 c0
    12017     je short 08935h                           ; 74 25
     12030    je short 0845dh                           ; 74 25
    1201812031    dec ax                                    ; 48
    1201912032    mov bx, ax                                ; 89 c3
     
    1202212035    sal ax, 1                                 ; d1 e0
    1202312036    rcl dx, 1                                 ; d1 d2
    12024     loop 08918h                               ; e2 fa
     12037    loop 08440h                               ; e2 fa
    1202512038    mov si, ax                                ; 89 c6
    1202612039    mov di, dx                                ; 89 d7
     
    1202812041    shr di, 1                                 ; d1 ef
    1202912042    rcr si, 1                                 ; d1 de
    12030     loop 08925h                               ; e2 fa
     12043    loop 0844dh                               ; e2 fa
    1203112044    mov dx, 00413h                            ; ba 13 04
    1203212045    xor ax, ax                                ; 31 c0
    12033     call 0162ah                               ; e8 f7 8c
     12046    call 0162ah                               ; e8 cf 91
    1203412047    mov ax, si                                ; 89 f0
    1203512048    pop bp                                    ; 5d
     
    1204012053    pop bx                                    ; 5b
    1204112054    retn                                      ; c3
    12042 ahci_hba_init_:                              ; 0xf893c LB 0x12c
     12055ahci_hba_init_:                              ; 0xf8464 LB 0x120
    1204312056    push bx                                   ; 53
    1204412057    push cx                                   ; 51
     
    1204612059    push si                                   ; 56
    1204712060    push di                                   ; 57
    12048     push bp                                   ; 55
    12049     mov bp, sp                                ; 89 e5
    12050     sub sp, strict byte 00006h                ; 83 ec 06
     12061    enter 00006h, 000h                        ; c8 06 00 00
    1205112062    mov si, ax                                ; 89 c6
    1205212063    mov dx, strict word 0000eh                ; ba 0e 00
    1205312064    mov ax, strict word 00040h                ; b8 40 00
    12054     call 0161ch                               ; e8 ca 8c
     12065    call 0161ch                               ; e8 a4 91
    1205512066    mov bx, 00122h                            ; bb 22 01
    1205612067    mov word [bp-006h], ax                    ; 89 46 fa
     
    1206912080    shr eax, 010h                             ; 66 c1 e8 10
    1207012081    xchg dx, ax                               ; 92
    12071     call 088fch                               ; e8 85 ff
     12082    call 08424h                               ; e8 87 ff
    1207212083    mov di, ax                                ; 89 c7
    1207312084    test ax, ax                               ; 85 c0
    12074     jne short 08980h                          ; 75 03
    12075     jmp near 08a48h                           ; e9 c8 00
     12085    je near 08566h                            ; 0f 84 c1 00
    1207612086    mov es, [bp-006h]                         ; 8e 46 fa
    1207712087    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1208112091    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
    1208212092    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
    12083     mov word [es:bx+00264h], 0c000h           ; 26 c7 87 64 02 00 c0
    12084     mov word [es:bx+00266h], strict word 0000ch ; 26 c7 87 66 02 0c 00
     12093    db  066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h
     12094    ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00
    1208512095    mov bx, strict word 00001h                ; bb 01 00
    1208612096    xor cx, cx                                ; 31 c9
    1208712097    mov dx, strict word 00004h                ; ba 04 00
    1208812098    mov ax, si                                ; 89 f0
    12089     call 07beah                               ; e8 32 f2
     12099    call 07796h                               ; e8 bd f2
    1209012100    mov ax, strict word 00004h                ; b8 04 00
    1209112101    xor cx, cx                                ; 31 c9
     
    1210412114    xchg dx, ax                               ; 92
    1210512115    test AL, strict byte 001h                 ; a8 01
    12106     jne short 089b8h                          ; 75 de
     12116    jne short 084d9h                          ; 75 de
    1210712117    xor ax, ax                                ; 31 c0
    1210812118    xor cx, cx                                ; 31 c9
     
    1211912129    shr eax, 010h                             ; 66 c1 e8 10
    1212012130    xchg dx, ax                               ; 92
    12121     xor bx, bx                                ; 31 db
    12122     push bx                                   ; 53
     12131    push strict byte 00000h                   ; 6a 00
    1212312132    mov bx, strict word 0001fh                ; bb 1f 00
    1212412133    xor cx, cx                                ; 31 c9
    12125     call 07ca8h                               ; e8 a9 f2
     12134    call 07850h                               ; e8 31 f3
    1212612135    db  0feh, 0c0h
    1212712136    ; inc al                                    ; fe c0
    12128     mov byte [bp-002h], al                    ; 88 46 fe
    12129     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    12130     jmp short 08a13h                          ; eb 09
    12131     inc byte [bp-004h]                        ; fe 46 fc
    12132     cmp byte [bp-004h], 020h                  ; 80 7e fc 20
    12133     jnc short 08a46h                          ; 73 33
    12134     mov cl, byte [bp-004h]                    ; 8a 4e fc
    12135     xor ch, ch                                ; 30 ed
     12137    mov byte [bp-004h], al                    ; 88 46 fc
     12138    mov byte [bp-002h], 000h                  ; c6 46 fe 00
     12139    jmp short 08533h                          ; eb 09
     12140    inc byte [bp-002h]                        ; fe 46 fe
     12141    cmp byte [bp-002h], 020h                  ; 80 7e fe 20
     12142    jnc short 08564h                          ; 73 31
     12143    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    1213612144    mov ax, strict word 00001h                ; b8 01 00
    1213712145    xor dx, dx                                ; 31 d2
    12138     jcxz 08a25h                               ; e3 06
     12146    jcxz 08544h                               ; e3 06
    1213912147    sal ax, 1                                 ; d1 e0
    1214012148    rcl dx, 1                                 ; d1 d2
    12141     loop 08a1fh                               ; e2 fa
     12149    loop 0853eh                               ; e2 fa
    1214212150    mov bx, ax                                ; 89 c3
    1214312151    mov cx, dx                                ; 89 d1
    1214412152    mov dx, strict word 0000ch                ; ba 0c 00
    1214512153    mov ax, si                                ; 89 f0
    12146     call 07c72h                               ; e8 41 f2
     12154    call 0781ah                               ; e8 ca f2
    1214712155    test al, al                               ; 84 c0
    12148     je short 08a0ah                           ; 74 d5
    12149     mov bl, byte [bp-004h]                    ; 8a 5e fc
    12150     xor bh, bh                                ; 30 ff
     12156    je short 0852ah                           ; 74 d6
     12157    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    1215112158    xor ax, ax                                ; 31 c0
    1215212159    mov dx, di                                ; 89 fa
    12153     call 0855ch                               ; e8 1b fb
    12154     dec byte [bp-002h]                        ; fe 4e fe
    12155     jne short 08a0ah                          ; 75 c4
     12160    call 080bch                               ; e8 5d fb
     12161    dec byte [bp-004h]                        ; fe 4e fc
     12162    jne short 0852ah                          ; 75 c6
    1215612163    xor ax, ax                                ; 31 c0
    12157     mov sp, bp                                ; 89 ec
    12158     pop bp                                    ; 5d
     12164    leave                                     ; c9
    1215912165    pop di                                    ; 5f
    1216012166    pop si                                    ; 5e
     
    1216612172    add AL, strict byte 003h                  ; 04 03
    1216712173    add al, byte [bx+di]                      ; 02 01
    12168     add byte [di-075h], cl                    ; 00 4d 8b
    12169     sub cx, word [bp+di-074cfh]               ; 2b 8b 31 8b
    12170     aaa                                       ; 37
    12171     mov di, word [di]                         ; 8b 3d
    12172     mov ax, word [bp+di-075h]                 ; 8b 43 8b
    12173     dec cx                                    ; 49
    12174     mov cx, word [di-075h]                    ; 8b 4d 8b
    12175 _ahci_init:                                  ; 0xf8a68 LB 0x119
     12174    add byte [bx+di-07ah], dl                 ; 00 51 86
     12175    das                                       ; 2f
     12176    xchg byte [di], dh                        ; 86 35
     12177    xchg byte [bp+di], bh                     ; 86 3b
     12178    xchg byte [bx+di-07ah], al                ; 86 41 86
     12179    inc di                                    ; 47
     12180    xchg byte [di-07ah], cl                   ; 86 4d 86
     12181    push cx                                   ; 51
     12182    db  086h
     12183_ahci_init:                                  ; 0xf8584 LB 0xf9
     12184    push si                                   ; 56
    1217612185    push di                                   ; 57
    12177     push bp                                   ; 55
    12178     mov bp, sp                                ; 89 e5
    12179     sub sp, strict byte 0000eh                ; 83 ec 0e
     12186    enter 00006h, 000h                        ; c8 06 00 00
    1218012187    mov ax, 00601h                            ; b8 01 06
    1218112188    mov dx, strict word 00001h                ; ba 01 00
    12182     call 08b81h                               ; e8 09 01
     12189    call 0867dh                               ; e8 ea 00
    1218312190    mov dx, ax                                ; 89 c2
    1218412191    cmp ax, strict word 0ffffh                ; 3d ff ff
    12185     je short 08ac8h                           ; 74 49
    12186     mov al, ah                                ; 88 e0
    12187     mov byte [bp-004h], ah                    ; 88 66 fc
    12188     mov byte [bp-006h], dl                    ; 88 56 fa
    12189     xor dh, ah                                ; 30 e6
     12192    je near 08679h                            ; 0f 84 dd 00
     12193    xor al, al                                ; 30 c0
     12194    shr ax, 008h                              ; c1 e8 08
     12195    mov byte [bp-006h], al                    ; 88 46 fa
     12196    mov byte [bp-004h], dl                    ; 88 56 fc
     12197    xor dh, dh                                ; 30 f6
    1219012198    xor ah, ah                                ; 30 e4
    1219112199    mov bx, strict word 00034h                ; bb 34 00
    12192     call 08ba9h                               ; e8 18 01
     12200    call 086a5h                               ; e8 f4 00
    1219312201    mov cl, al                                ; 88 c1
    1219412202    test cl, cl                               ; 84 c9
    12195     je short 08acbh                           ; 74 34
    12196     mov bl, cl                                ; 88 cb
    12197     xor bh, bh                                ; 30 ff
    12198     mov al, byte [bp-006h]                    ; 8a 46 fa
    12199     mov byte [bp-00ah], al                    ; 88 46 f6
    12200     mov byte [bp-009h], bh                    ; 88 7e f7
    12201     mov al, byte [bp-004h]                    ; 8a 46 fc
    12202     mov byte [bp-00eh], al                    ; 88 46 f2
    12203     mov byte [bp-00dh], bh                    ; 88 7e f3
    12204     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12205     mov ax, word [bp-00eh]                    ; 8b 46 f2
    12206     call 08ba9h                               ; e8 f3 00
     12203    je short 085dah                           ; 74 23
     12204    movzx bx, cl                              ; 0f b6 d9
     12205    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     12206    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     12207    mov dx, di                                ; 89 fa
     12208    mov ax, si                                ; 89 f0
     12209    call 086a5h                               ; e8 dc 00
    1220712210    cmp AL, strict byte 012h                  ; 3c 12
    12208     je short 08acbh                           ; 74 11
    12209     mov bl, cl                                ; 88 cb
    12210     db  0feh, 0c3h
    12211     ; inc bl                                    ; fe c3
    12212     xor bh, bh                                ; 30 ff
    12213     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12214     mov ax, word [bp-00eh]                    ; 8b 46 f2
    12215     jmp short 08a8eh                          ; eb c6
    12216     jmp near 08b7ch                           ; e9 b1 00
     12211    je short 085dah                           ; 74 0d
     12212    mov al, cl                                ; 88 c8
     12213    db  0feh, 0c0h
     12214    ; inc al                                    ; fe c0
     12215    movzx bx, al                              ; 0f b6 d8
     12216    mov dx, di                                ; 89 fa
     12217    mov ax, si                                ; 89 f0
     12218    jmp short 085aeh                          ; eb d4
    1221712219    test cl, cl                               ; 84 c9
    12218     je short 08ac8h                           ; 74 f9
     12220    je near 08679h                            ; 0f 84 99 00
    1221912221    add cl, 002h                              ; 80 c1 02
    12220     mov bl, cl                                ; 88 cb
    12221     xor bh, bh                                ; 30 ff
    12222     mov al, byte [bp-006h]                    ; 8a 46 fa
    12223     mov byte [bp-00ch], al                    ; 88 46 f4
    12224     mov byte [bp-00bh], bh                    ; 88 7e f5
    12225     mov al, byte [bp-004h]                    ; 8a 46 fc
    12226     mov byte [bp-008h], al                    ; 88 46 f8
    12227     mov byte [bp-007h], bh                    ; 88 7e f9
    12228     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12229     mov ax, word [bp-008h]                    ; 8b 46 f8
    12230     call 08ba9h                               ; e8 b8 00
     12222    movzx bx, cl                              ; 0f b6 d9
     12223    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     12224    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     12225    mov dx, di                                ; 89 fa
     12226    mov ax, si                                ; 89 f0
     12227    call 086a5h                               ; e8 b0 00
    1223112228    cmp AL, strict byte 010h                  ; 3c 10
    12232     jne short 08ac8h                          ; 75 d3
     12229    jne near 08679h                           ; 0f 85 7e 00
    1223312230    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    12234     mov bl, cl                                ; 88 cb
    12235     add bl, 002h                              ; 80 c3 02
    12236     xor bh, bh                                ; 30 ff
    12237     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12238     mov ax, word [bp-008h]                    ; 8b 46 f8
    12239     call 08bcdh                               ; e8 c4 00
     12231    mov al, cl                                ; 88 c8
     12232    add AL, strict byte 002h                  ; 04 02
     12233    movzx bx, al                              ; 0f b6 d8
     12234    mov dx, di                                ; 89 fa
     12235    mov ax, si                                ; 89 f0
     12236    call 086c6h                               ; e8 b9 00
    1224012237    mov dx, ax                                ; 89 c2
    1224112238    and ax, strict word 0000fh                ; 25 0f 00
    1224212239    sub ax, strict word 00004h                ; 2d 04 00
    1224312240    cmp ax, strict word 0000bh                ; 3d 0b 00
    12244     jnbe short 08b4dh                         ; 77 37
     12241    jnbe short 08651h                         ; 77 37
    1224512242    push CS                                   ; 0e
    1224612243    pop ES                                    ; 07
    1224712244    mov cx, strict word 00008h                ; b9 08 00
    12248     mov di, 08a51h                            ; bf 51 8a
     12245    mov di, 0856dh                            ; bf 6d 85
    1224912246    repne scasb                               ; f2 ae
    1225012247    sal cx, 1                                 ; d1 e1
    1225112248    mov di, cx                                ; 89 cf
    12252     mov ax, word [cs:di-075a8h]               ; 2e 8b 85 58 8a
     12249    mov ax, word [cs:di-07a8ch]               ; 2e 8b 85 74 85
    1225312250    jmp ax                                    ; ff e0
    1225412251    mov byte [bp-002h], 010h                  ; c6 46 fe 10
    12255     jmp short 08b4dh                          ; eb 1c
     12252    jmp short 08651h                          ; eb 1c
    1225612253    mov byte [bp-002h], 014h                  ; c6 46 fe 14
    12257     jmp short 08b4dh                          ; eb 16
     12254    jmp short 08651h                          ; eb 16
    1225812255    mov byte [bp-002h], 018h                  ; c6 46 fe 18
    12259     jmp short 08b4dh                          ; eb 10
     12256    jmp short 08651h                          ; eb 10
    1226012257    mov byte [bp-002h], 01ch                  ; c6 46 fe 1c
    12261     jmp short 08b4dh                          ; eb 0a
     12258    jmp short 08651h                          ; eb 0a
    1226212259    mov byte [bp-002h], 020h                  ; c6 46 fe 20
    12263     jmp short 08b4dh                          ; eb 04
     12260    jmp short 08651h                          ; eb 04
    1226412261    mov byte [bp-002h], 024h                  ; c6 46 fe 24
    12265     mov CL, strict byte 004h                  ; b1 04
    12266     mov ax, dx                                ; 89 d0
    12267     shr ax, CL                                ; d3 e8
    12268     mov cx, ax                                ; 89 c1
    12269     sal cx, 1                                 ; d1 e1
    12270     sal cx, 1                                 ; d1 e1
     12262    mov si, dx                                ; 89 d6
     12263    shr si, 004h                              ; c1 ee 04
     12264    sal si, 002h                              ; c1 e6 02
    1227112265    mov al, byte [bp-002h]                    ; 8a 46 fe
    1227212266    test al, al                               ; 84 c0
    12273     je short 08b7ch                           ; 74 1c
    12274     mov bl, al                                ; 88 c3
    12275     xor bh, bh                                ; 30 ff
    12276     mov dl, byte [bp-006h]                    ; 8a 56 fa
    12277     xor dh, dh                                ; 30 f6
    12278     mov al, byte [bp-004h]                    ; 8a 46 fc
    12279     xor ah, ah                                ; 30 e4
    12280     call 08befh                               ; e8 7e 00
     12267    je short 08679h                           ; 74 19
     12268    movzx bx, al                              ; 0f b6 d8
     12269    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     12270    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     12271    call 086e5h                               ; e8 77 00
    1228112272    test AL, strict byte 001h                 ; a8 01
    12282     je short 08b7ch                           ; 74 07
     12273    je short 08679h                           ; 74 07
    1228312274    and AL, strict byte 0f0h                  ; 24 f0
    12284     add ax, cx                                ; 01 c8
    12285     call 0893ch                               ; e8 c0 fd
    12286     mov sp, bp                                ; 89 ec
    12287     pop bp                                    ; 5d
     12275    add ax, si                                ; 01 f0
     12276    call 08464h                               ; e8 eb fd
     12277    leave                                     ; c9
    1228812278    pop di                                    ; 5f
    12289     retn                                      ; c3
    12290 pci_find_classcode_:                         ; 0xf8b81 LB 0x28
     12279    pop si                                    ; 5e
     12280    retn                                      ; c3
     12281pci_find_classcode_:                         ; 0xf867d LB 0x28
    1229112282    push bx                                   ; 53
    1229212283    push cx                                   ; 51
     
    1230312294    int 01ah                                  ; cd 1a
    1230412295    cmp ah, 000h                              ; 80 fc 00
    12305     je near 08ba2h                            ; 0f 84 03 00
     12296    je near 0869eh                            ; 0f 84 03 00
    1230612297    mov bx, strict word 0ffffh                ; bb ff ff
    1230712298    mov ax, bx                                ; 89 d8
     
    1231112302    pop bx                                    ; 5b
    1231212303    retn                                      ; c3
    12313 pci_read_config_byte_:                       ; 0xf8ba9 LB 0x24
     12304pci_read_config_byte_:                       ; 0xf86a5 LB 0x21
    1231412305    push cx                                   ; 51
    1231512306    push di                                   ; 57
    1231612307    push bp                                   ; 55
    1231712308    mov bp, sp                                ; 89 e5
    12318     mov dh, al                                ; 88 c6
    12319     mov bh, dl                                ; 88 d7
    12320     mov al, bl                                ; 88 d8
    12321     xor ah, ah                                ; 30 e4
    12322     xor dl, dl                                ; 30 d2
    12323     mov bl, bh                                ; 88 fb
    12324     mov bh, dh                                ; 88 f7
    12325     mov di, ax                                ; 89 c7
     12309    movzx di, bl                              ; 0f b6 fb
     12310    movzx bx, al                              ; 0f b6 d8
     12311    sal bx, 008h                              ; c1 e3 08
     12312    movzx ax, dl                              ; 0f b6 c2
     12313    or bx, ax                                 ; 09 c3
    1232612314    mov ax, 0b108h                            ; b8 08 b1
    1232712315    int 01ah                                  ; cd 1a
    12328     mov al, cl                                ; 88 c8
    12329     xor ah, ah                                ; 30 e4
    12330     xor dh, dh                                ; 30 f6
     12316    movzx ax, cl                              ; 0f b6 c1
     12317    xor dx, dx                                ; 31 d2
    1233112318    pop bp                                    ; 5d
    1233212319    pop di                                    ; 5f
    1233312320    pop cx                                    ; 59
    1233412321    retn                                      ; c3
    12335 pci_read_config_word_:                       ; 0xf8bcd LB 0x22
     12322pci_read_config_word_:                       ; 0xf86c6 LB 0x1f
    1233612323    push cx                                   ; 51
    1233712324    push di                                   ; 57
    1233812325    push bp                                   ; 55
    1233912326    mov bp, sp                                ; 89 e5
    12340     mov dh, al                                ; 88 c6
    12341     mov cl, dl                                ; 88 d1
    12342     mov al, bl                                ; 88 d8
     12327    movzx di, bl                              ; 0f b6 fb
    1234312328    xor ah, ah                                ; 30 e4
    12344     mov bh, dh                                ; 88 f7
    12345     xor dh, dh                                ; 30 f6
    12346     mov bl, dl                                ; 88 d3
    12347     mov di, ax                                ; 89 c7
     12329    sal ax, 008h                              ; c1 e0 08
     12330    movzx bx, dl                              ; 0f b6 da
     12331    or bx, ax                                 ; 09 c3
    1234812332    mov ax, 0b109h                            ; b8 09 b1
    1234912333    int 01ah                                  ; cd 1a
    1235012334    mov ax, cx                                ; 89 c8
    12351     xor dl, dl                                ; 30 d2
     12335    xor dx, dx                                ; 31 d2
    1235212336    pop bp                                    ; 5d
    1235312337    pop di                                    ; 5f
    1235412338    pop cx                                    ; 59
    1235512339    retn                                      ; c3
    12356 pci_read_config_dword_:                      ; 0xf8bef LB 0x24
     12340pci_read_config_dword_:                      ; 0xf86e5 LB 0x24
    1235712341    push cx                                   ; 51
    1235812342    push di                                   ; 57
    1235912343    push bp                                   ; 55
    1236012344    mov bp, sp                                ; 89 e5
    12361     mov dh, al                                ; 88 c6
    12362     mov bh, dl                                ; 88 d7
    12363     mov al, bl                                ; 88 d8
    12364     xor ah, ah                                ; 30 e4
    12365     mov bh, dh                                ; 88 f7
    12366     mov bl, dl                                ; 88 d3
    12367     mov di, ax                                ; 89 c7
     12345    movzx di, bl                              ; 0f b6 fb
     12346    movzx bx, al                              ; 0f b6 d8
     12347    sal bx, 008h                              ; c1 e3 08
     12348    movzx ax, dl                              ; 0f b6 c2
     12349    or bx, ax                                 ; 09 c3
    1236812350    mov ax, 0b10ah                            ; b8 0a b1
    1236912351    int 01ah                                  ; cd 1a
     
    1237612358    pop cx                                    ; 59
    1237712359    retn                                      ; c3
    12378 vds_is_present_:                             ; 0xf8c13 LB 0x1d
     12360vds_is_present_:                             ; 0xf8709 LB 0x1d
    1237912361    push bx                                   ; 53
    1238012362    push bp                                   ; 55
     
    1238412366    mov es, ax                                ; 8e c0
    1238512367    test byte [es:bx], 020h                   ; 26 f6 07 20
    12386     je short 08c2bh                           ; 74 06
     12368    je short 08721h                           ; 74 06
    1238712369    mov ax, strict word 00001h                ; b8 01 00
    1238812370    pop bp                                    ; 5d
     
    1239312375    pop bx                                    ; 5b
    1239412376    retn                                      ; c3
    12395 vds_real_to_lin_:                            ; 0xf8c30 LB 0x1e
     12377vds_real_to_lin_:                            ; 0xf8726 LB 0x1e
    1239612378    push bx                                   ; 53
    1239712379    push cx                                   ; 51
     
    1240412386    sal ax, 1                                 ; d1 e0
    1240512387    rcl dx, 1                                 ; d1 d2
    12406     loop 08c3eh                               ; e2 fa
     12388    loop 08734h                               ; e2 fa
    1240712389    xor cx, cx                                ; 31 c9
    1240812390    add ax, bx                                ; 01 d8
     
    1241212394    pop bx                                    ; 5b
    1241312395    retn                                      ; c3
    12414 vds_build_sg_list_:                          ; 0xf8c4e LB 0x74
     12396vds_build_sg_list_:                          ; 0xf8744 LB 0x76
    1241512397    push si                                   ; 56
    1241612398    push di                                   ; 57
     
    1242612408    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1242712409    mov word [es:di+002h], bx                 ; 26 89 5d 02
    12428     call 08c30h                               ; e8 c3 ff
     12410    call 08726h                               ; e8 c3 ff
    1242912411    mov es, si                                ; 8e c6
    1243012412    mov word [es:di+004h], ax                 ; 26 89 45 04
    1243112413    mov word [es:di+006h], dx                 ; 26 89 55 06
    1243212414    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    12433     call 08c13h                               ; e8 93 ff
     12415    call 08709h                               ; e8 93 ff
    1243412416    test ax, ax                               ; 85 c0
    12435     je short 08c95h                           ; 74 11
     12417    je short 0878dh                           ; 74 13
    1243612418    mov es, si                                ; 8e c6
    1243712419    mov ax, 08105h                            ; b8 05 81
    1243812420    mov dx, strict word 00000h                ; ba 00 00
    1243912421    int 04bh                                  ; cd 4b
    12440     jc short 08c92h                           ; 72 02
     12422    jc near 0878ah                            ; 0f 82 02 00
    1244112423    db  032h, 0c0h
    1244212424    ; xor al, al                                ; 32 c0
    1244312425    cbw                                       ; 98
    12444     jmp short 08cbch                          ; eb 27
     12426    jmp short 087b4h                          ; eb 27
    1244512427    mov es, si                                ; 8e c6
    1244612428    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1245812440    pop si                                    ; 5e
    1245912441    retn 00004h                               ; c2 04 00
    12460 vds_free_sg_list_:                           ; 0xf8cc2 LB 0x2c
     12442vds_free_sg_list_:                           ; 0xf87ba LB 0x36
    1246112443    push bx                                   ; 53
    1246212444    push di                                   ; 57
     
    1246412446    mov bp, sp                                ; 89 e5
    1246512447    mov bx, ax                                ; 89 c3
    12466     call 08c13h                               ; e8 47 ff
     12448    call 08709h                               ; e8 45 ff
    1246712449    test ax, ax                               ; 85 c0
    12468     je short 08ce1h                           ; 74 11
     12450    je short 087dbh                           ; 74 13
    1246912451    mov di, bx                                ; 89 df
    1247012452    mov es, dx                                ; 8e c2
     
    1247212454    mov dx, strict word 00000h                ; ba 00 00
    1247312455    int 04bh                                  ; cd 4b
    12474     jc short 08ce0h                           ; 72 02
     12456    jc near 087dah                            ; 0f 82 02 00
    1247512457    db  032h, 0c0h
    1247612458    ; xor al, al                                ; 32 c0
     
    1248212464    pop bx                                    ; 5b
    1248312465    retn                                      ; c3
    12484     times 0x1 db 0
    12485 _small_code_:                                ; 0xf8cee LB 0x49
    12486     db  00bh, 0d2h
    12487     ; or dx, dx                                 ; 0b d2
    12488     js short 08d08h                           ; 78 16
    12489     db  00bh, 0c9h
    12490     ; or cx, cx                                 ; 0b c9
    12491     jns short 08d37h                          ; 79 41
    12492     neg cx                                    ; f7 d9
    12493     neg bx                                    ; f7 db
    12494     sbb cx, strict byte 00000h                ; 83 d9 00
    12495     call 08d37h                               ; e8 37 00
    12496     neg dx                                    ; f7 da
    12497     neg ax                                    ; f7 d8
    12498     sbb dx, strict byte 00000h                ; 83 da 00
    12499     retn                                      ; c3
    12500     neg dx                                    ; f7 da
    12501     neg ax                                    ; f7 d8
    12502     sbb dx, strict byte 00000h                ; 83 da 00
    12503     db  00bh, 0c9h
    12504     ; or cx, cx                                 ; 0b c9
    12505     jns short 08d25h                          ; 79 12
    12506     neg cx                                    ; f7 d9
    12507     neg bx                                    ; f7 db
    12508     sbb cx, strict byte 00000h                ; 83 d9 00
    12509     call 08d37h                               ; e8 1a 00
    12510     neg cx                                    ; f7 d9
    12511     neg bx                                    ; f7 db
    12512     sbb cx, strict byte 00000h                ; 83 d9 00
    12513     retn                                      ; c3
    12514     call 08d37h                               ; e8 0f 00
    12515     neg cx                                    ; f7 d9
    12516     neg bx                                    ; f7 db
    12517     sbb cx, strict byte 00000h                ; 83 d9 00
    12518     neg dx                                    ; f7 da
    12519     neg ax                                    ; f7 d8
    12520     sbb dx, strict byte 00000h                ; 83 da 00
    12521     retn                                      ; c3
    12522 __U4D:                                       ; 0xf8d37 LB 0x84
    12523     db  00bh, 0c9h
    12524     ; or cx, cx                                 ; 0b c9
    12525     jne short 08d55h                          ; 75 1a
    12526     dec bx                                    ; 4b
    12527     je short 08d54h                           ; 74 16
    12528     inc bx                                    ; 43
    12529     db  03bh, 0dah
    12530     ; cmp bx, dx                                ; 3b da
    12531     jnbe short 08d4ch                         ; 77 09
    12532     db  08bh, 0c8h
    12533     ; mov cx, ax                                ; 8b c8
     12466    times 0x9 db 0
     12467__U4D:                                       ; 0xf87f0 LB 0x39
     12468    pushfw                                    ; 9c
     12469    push eax                                  ; 66 50
     12470    push edx                                  ; 66 52
     12471    push ecx                                  ; 66 51
     12472    rol eax, 010h                             ; 66 c1 c0 10
    1253412473    db  08bh, 0c2h
    1253512474    ; mov ax, dx                                ; 8b c2
    12536     db  02bh, 0d2h
    12537     ; sub dx, dx                                ; 2b d2
    12538     div bx                                    ; f7 f3
    12539     xchg cx, ax                               ; 91
    12540     div bx                                    ; f7 f3
     12475    ror eax, 010h                             ; 66 c1 c8 10
     12476    db  066h, 033h, 0d2h
     12477    ; xor edx, edx                              ; 66 33 d2
     12478    shr ecx, 010h                             ; 66 c1 e9 10
     12479    db  08bh, 0cbh
     12480    ; mov cx, bx                                ; 8b cb
     12481    div ecx                                   ; 66 f7 f1
    1254112482    db  08bh, 0dah
    1254212483    ; mov bx, dx                                ; 8b da
    12543     db  08bh, 0d1h
    12544     ; mov dx, cx                                ; 8b d1
    12545     db  02bh, 0c9h
    12546     ; sub cx, cx                                ; 2b c9
    12547     retn                                      ; c3
    12548     db  03bh, 0cah
    12549     ; cmp cx, dx                                ; 3b ca
    12550     jc short 08d73h                           ; 72 1a
    12551     jne short 08d6bh                          ; 75 10
    12552     db  03bh, 0d8h
    12553     ; cmp bx, ax                                ; 3b d8
    12554     jnbe short 08d6bh                         ; 77 0c
    12555     db  02bh, 0c3h
    12556     ; sub ax, bx                                ; 2b c3
    12557     db  08bh, 0d8h
    12558     ; mov bx, ax                                ; 8b d8
    12559     db  02bh, 0c9h
    12560     ; sub cx, cx                                ; 2b c9
    12561     db  02bh, 0d2h
    12562     ; sub dx, dx                                ; 2b d2
    12563     mov ax, strict word 00001h                ; b8 01 00
    12564     retn                                      ; c3
    12565     db  02bh, 0c9h
    12566     ; sub cx, cx                                ; 2b c9
    12567     db  02bh, 0dbh
    12568     ; sub bx, bx                                ; 2b db
    12569     xchg bx, ax                               ; 93
    12570     xchg dx, cx                               ; 87 ca
    12571     retn                                      ; c3
    12572     push bp                                   ; 55
    12573     push si                                   ; 56
    12574     db  02bh, 0f6h
    12575     ; sub si, si                                ; 2b f6
    12576     db  08bh, 0eeh
    12577     ; mov bp, si                                ; 8b ee
    12578     db  003h, 0dbh
    12579     ; add bx, bx                                ; 03 db
    12580     db  013h, 0c9h
    12581     ; adc cx, cx                                ; 13 c9
    12582     jc short 08d90h                           ; 72 11
    12583     inc bp                                    ; 45
    12584     db  03bh, 0cah
    12585     ; cmp cx, dx                                ; 3b ca
    12586     jc short 08d79h                           ; 72 f5
    12587     jnbe short 08d8ah                         ; 77 04
    12588     db  03bh, 0d8h
    12589     ; cmp bx, ax                                ; 3b d8
    12590     jbe short 08d79h                          ; 76 ef
    12591     clc                                       ; f8
    12592     db  013h, 0f6h
    12593     ; adc si, si                                ; 13 f6
    12594     dec bp                                    ; 4d
    12595     js short 08db0h                           ; 78 20
    12596     rcr cx, 1                                 ; d1 d9
    12597     rcr bx, 1                                 ; d1 db
    12598     db  02bh, 0c3h
    12599     ; sub ax, bx                                ; 2b c3
    12600     sbb dx, cx                                ; 19 ca
    12601     cmc                                       ; f5
    12602     jc short 08d8bh                           ; 72 f0
    12603     db  003h, 0f6h
    12604     ; add si, si                                ; 03 f6
    12605     dec bp                                    ; 4d
    12606     js short 08dach                           ; 78 0c
    12607     shr cx, 1                                 ; d1 e9
    12608     rcr bx, 1                                 ; d1 db
    12609     db  003h, 0c3h
    12610     ; add ax, bx                                ; 03 c3
    12611     db  013h, 0d1h
    12612     ; adc dx, cx                                ; 13 d1
    12613     jnc short 08d9bh                          ; 73 f1
    12614     jmp short 08d8bh                          ; eb df
    12615     db  003h, 0c3h
    12616     ; add ax, bx                                ; 03 c3
    12617     db  013h, 0d1h
    12618     ; adc dx, cx                                ; 13 d1
    12619     db  08bh, 0d8h
    12620     ; mov bx, ax                                ; 8b d8
     12484    pop ecx                                   ; 66 59
     12485    shr edx, 010h                             ; 66 c1 ea 10
    1262112486    db  08bh, 0cah
    1262212487    ; mov cx, dx                                ; 8b ca
    12623     db  08bh, 0c6h
    12624     ; mov ax, si                                ; 8b c6
    12625     db  033h, 0d2h
    12626     ; xor dx, dx                                ; 33 d2
     12488    pop edx                                   ; 66 5a
     12489    ror eax, 010h                             ; 66 c1 c8 10
     12490    db  08bh, 0d0h
     12491    ; mov dx, ax                                ; 8b d0
     12492    add sp, strict byte 00002h                ; 83 c4 02
     12493    pop ax                                    ; 58
     12494    rol eax, 010h                             ; 66 c1 c0 10
     12495    popfw                                     ; 9d
     12496    retn                                      ; c3
     12497__U4M:                                       ; 0xf8829 LB 0x31
     12498    pushfw                                    ; 9c
     12499    push eax                                  ; 66 50
     12500    push edx                                  ; 66 52
     12501    push ecx                                  ; 66 51
     12502    rol eax, 010h                             ; 66 c1 c0 10
     12503    db  08bh, 0c2h
     12504    ; mov ax, dx                                ; 8b c2
     12505    ror eax, 010h                             ; 66 c1 c8 10
     12506    db  066h, 033h, 0d2h
     12507    ; xor edx, edx                              ; 66 33 d2
     12508    shr ecx, 010h                             ; 66 c1 e9 10
     12509    db  08bh, 0cbh
     12510    ; mov cx, bx                                ; 8b cb
     12511    mul ecx                                   ; 66 f7 e1
     12512    pop ecx                                   ; 66 59
     12513    pop edx                                   ; 66 5a
     12514    ror eax, 010h                             ; 66 c1 c8 10
     12515    db  08bh, 0d0h
     12516    ; mov dx, ax                                ; 8b d0
     12517    add sp, strict byte 00002h                ; 83 c4 02
     12518    pop ax                                    ; 58
     12519    rol eax, 010h                             ; 66 c1 c0 10
     12520    popfw                                     ; 9d
     12521    retn                                      ; c3
     12522_fmemset_:                                   ; 0xf885a LB 0xd
     12523    push di                                   ; 57
     12524    mov es, dx                                ; 8e c2
     12525    db  08bh, 0f8h
     12526    ; mov di, ax                                ; 8b f8
     12527    xchg al, bl                               ; 86 d8
     12528    rep stosb                                 ; f3 aa
     12529    xchg al, bl                               ; 86 d8
     12530    pop di                                    ; 5f
     12531    retn                                      ; c3
     12532_fmemcpy_:                                   ; 0xf8867 LB 0x18
     12533    push bp                                   ; 55
     12534    db  08bh, 0ech
     12535    ; mov bp, sp                                ; 8b ec
     12536    push di                                   ; 57
     12537    push DS                                   ; 1e
     12538    push si                                   ; 56
     12539    mov es, dx                                ; 8e c2
     12540    db  08bh, 0f8h
     12541    ; mov di, ax                                ; 8b f8
     12542    mov ds, cx                                ; 8e d9
     12543    db  08bh, 0f3h
     12544    ; mov si, bx                                ; 8b f3
     12545    mov cx, word [bp+004h]                    ; 8b 4e 04
     12546    rep movsb                                 ; f3 a4
    1262712547    pop si                                    ; 5e
    12628     pop bp                                    ; 5d
    12629     retn                                      ; c3
    12630 _fmemset_:                                   ; 0xf8dbb LB 0x17
    12631     push di                                   ; 57
    12632     mov di, ax                                ; 89 c7
    12633     mov al, bl                                ; 88 d8
    12634     mov es, dx                                ; 8e c2
    12635     push di                                   ; 57
    12636     db  08ah, 0e0h
    12637     ; mov ah, al                                ; 8a e0
    12638     shr cx, 1                                 ; d1 e9
    12639     rep stosw                                 ; f3 ab
    12640     db  013h, 0c9h
    12641     ; adc cx, cx                                ; 13 c9
    12642     rep stosb                                 ; f3 aa
     12548    pop DS                                    ; 1f
    1264312549    pop di                                    ; 5f
    12644     mov ax, di                                ; 89 f8
    12645     pop di                                    ; 5f
    12646     retn                                      ; c3
    12647 __I4M:                                       ; 0xf8dd2 LB 0x18
    12648     xchg bx, ax                               ; 93
    12649     push ax                                   ; 50
    12650     xchg dx, ax                               ; 92
    12651     db  00bh, 0c0h
    12652     ; or ax, ax                                 ; 0b c0
    12653     je short 08ddbh                           ; 74 02
    12654     mul dx                                    ; f7 e2
    12655     xchg cx, ax                               ; 91
    12656     db  00bh, 0c0h
    12657     ; or ax, ax                                 ; 0b c0
    12658     je short 08de4h                           ; 74 04
    12659     mul bx                                    ; f7 e3
    12660     db  003h, 0c8h
    12661     ; add cx, ax                                ; 03 c8
    12662     pop ax                                    ; 58
    12663     mul bx                                    ; f7 e3
    12664     db  003h, 0d1h
    12665     ; add dx, cx                                ; 03 d1
    12666     retn                                      ; c3
    12667 _fmemcpy_:                                   ; 0xf8dea LB 0x25
    12668     push si                                   ; 56
    12669     push di                                   ; 57
    12670     push bp                                   ; 55
    12671     mov bp, sp                                ; 89 e5
    12672     mov di, ax                                ; 89 c7
    12673     mov ax, word [bp+008h]                    ; 8b 46 08
    12674     mov si, bx                                ; 89 de
    12675     mov es, dx                                ; 8e c2
    12676     push DS                                   ; 1e
    12677     push di                                   ; 57
    12678     xchg cx, ax                               ; 91
    12679     mov ds, ax                                ; 8e d8
    12680     shr cx, 1                                 ; d1 e9
    12681     rep movsw                                 ; f3 a5
    12682     db  013h, 0c9h
    12683     ; adc cx, cx                                ; 13 c9
    12684     rep movsb                                 ; f3 a4
    12685     pop di                                    ; 5f
    12686     pop DS                                    ; 1f
    12687     mov ax, di                                ; 89 f8
    12688     pop bp                                    ; 5d
    12689     pop di                                    ; 5f
    12690     pop si                                    ; 5e
    12691     retn 00002h                               ; c2 02 00
     12550    leave                                     ; c9
     12551    retn                                      ; c3
    1269212552
    12693   ; Padding 0x4ff1 bytes at 0xf8e0f
    12694   times 20465 db 0
     12553  ; Padding 0x5581 bytes at 0xf887f
     12554  times 21889 db 0
    1269512555
    12696 section BIOS32 progbits vstart=0xde00 align=1 ; size=0x1b7 class=CODE group=AUTO
    12697     db  05fh, 033h, 032h, 05fh, 010h, 0deh, 00fh, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h
    12698     db  09ch, 03dh, 024h, 050h, 043h, 049h, 075h, 041h, 0b8h, 000h, 000h, 000h, 080h, 066h, 0bah, 0f8h
    12699     db  00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h, 037h, 012h, 074h, 018h, 0b8h, 000h
    12700     db  0f0h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h
    12701     db  04eh, 024h, 074h, 002h, 0ebh, 013h, 0bbh, 000h, 000h, 00fh, 000h, 0b9h, 000h, 000h, 000h, 000h
    12702     db  0bah, 060h, 0deh, 000h, 000h, 032h, 0c0h, 0ebh, 002h, 0b0h, 080h, 09dh, 0cbh, 08dh, 040h, 000h
    12703 pcibios_protected:                           ; 0xfde60 LB 0x157
     12556section BIOS32 progbits vstart=0xde00 align=1 ; size=0x1d7 class=CODE group=AUTO
     12557    db  05fh, 033h, 032h, 05fh, 010h, 0deh, 00fh, 000h, 000h, 001h, 0dfh, 000h, 000h, 000h, 000h, 000h
     12558    db  09ch, 03dh, 024h, 050h, 043h, 049h, 075h, 057h, 0b8h, 000h, 000h, 000h, 080h, 066h, 0bah, 0f8h
     12559    db  00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h, 037h, 012h, 074h, 02eh, 0b8h, 000h
     12560    db  0c0h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h
     12561    db  048h, 024h, 074h, 018h, 0b8h, 000h, 0c8h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah
     12562    db  0fch, 00ch, 0edh, 03dh, 086h, 080h, 048h, 024h, 074h, 002h, 0ebh, 013h, 0bbh, 000h, 000h, 00fh
     12563    db  000h, 0b9h, 000h, 000h, 000h, 000h, 0bah, 080h, 0deh, 000h, 000h, 032h, 0c0h, 0ebh, 002h, 0b0h
     12564    db  080h, 09dh, 0cbh, 08dh, 080h, 000h, 000h, 000h, 000h, 08dh, 080h, 000h, 000h, 000h, 000h, 090h
     12565pcibios_protected:                           ; 0xfde80 LB 0x157
    1270412566    pushfw                                    ; 9c
    1270512567    cli                                       ; fa
     
    1270712569    push di                                   ; 57
    1270812570    cmp AL, strict byte 001h                  ; 3c 01
    12709     jne short 0de7ch                          ; 75 14
     12571    jne short 0de9ch                          ; 75 14
    1271012572    mov ebx, strict dword 0b9660210h          ; 66 bb 10 02 66 b9
    1271112573    add byte [bx+si], al                      ; 00 00
     
    1272912591    db  03bh, 0c1h
    1273012592    ; cmp ax, cx                                ; 3b c1
    12731     jne short 0dea6h                          ; 75 0c
     12593    jne short 0dec6h                          ; 75 0c
    1273212594    cmp esi, strict byte 000000000h           ; 66 83 fe 00
    12733     je near 0df91h                            ; 0f 84 ef 00
     12595    je near 0dfb1h                            ; 0f 84 ef 00
    1273412596    add byte [bx+si], al                      ; 00 00
    1273512597    dec esi                                   ; 66 4e
     
    1273712599    cmp bx, strict word 00000h                ; 81 fb 00 00
    1273812600    add word [bx+si], ax                      ; 01 00
    12739     jne short 0de8ch                          ; 75 dd
     12601    jne short 0deach                          ; 75 dd
    1274012602    mov AH, strict byte 086h                  ; b4 86
    12741     jmp near 0df8ch                           ; e9 d8 00
     12603    jmp near 0dfach                           ; e9 d8 00
    1274212604    add byte [bx+si], al                      ; 00 00
    1274312605    cmp AL, strict byte 003h                  ; 3c 03
    12744     jne short 0deedh                          ; 75 33
     12606    jne short 0df0dh                          ; 75 33
    1274512607    db  033h, 0dbh
    1274612608    ; xor bx, bx                                ; 33 db
     
    1275312615    db  03bh, 0c1h
    1275412616    ; cmp ax, cx                                ; 3b c1
    12755     jne short 0deddh                          ; 75 0c
     12617    jne short 0defdh                          ; 75 0c
    1275612618    cmp esi, strict byte 000000000h           ; 66 83 fe 00
    12757     je near 0df91h                            ; 0f 84 b8 00
     12619    je near 0dfb1h                            ; 0f 84 b8 00
    1275812620    add byte [bx+si], al                      ; 00 00
    1275912621    dec esi                                   ; 66 4e
     
    1276112623    cmp bx, strict word 00000h                ; 81 fb 00 00
    1276212624    add word [bx+si], ax                      ; 01 00
    12763     jne short 0dec0h                          ; 75 da
     12625    jne short 0dee0h                          ; 75 da
    1276412626    mov AH, strict byte 086h                  ; b4 86
    12765     jmp near 0df8ch                           ; e9 a1 00
     12627    jmp near 0dfach                           ; e9 a1 00
    1276612628    add byte [bx+si], al                      ; 00 00
    1276712629    cmp AL, strict byte 008h                  ; 3c 08
    12768     jne short 0df0ch                          ; 75 1b
    12769     call 0df98h                               ; e8 a4 00
     12630    jne short 0df2ch                          ; 75 1b
     12631    call 0dfb8h                               ; e8 a4 00
    1277012632    add byte [bx+si], al                      ; 00 00
    1277112633    push dx                                   ; 52
     
    1277612638    db  08ah, 0c8h
    1277712639    ; mov cl, al                                ; 8a c8
    12778     jmp near 0df91h                           ; e9 87 00
     12640    jmp near 0dfb1h                           ; e9 87 00
    1277912641    add byte [bx+si], al                      ; 00 00
    1278012642    cmp AL, strict byte 009h                  ; 3c 09
    12781     jne short 0df2ah                          ; 75 1a
    12782     call 0df98h                               ; e8 85 00
     12643    jne short 0df4ah                          ; 75 1a
     12644    call 0dfb8h                               ; e8 85 00
    1278312645    add byte [bx+si], al                      ; 00 00
    1278412646    push dx                                   ; 52
     
    1279012652    db  066h, 08bh, 0c8h
    1279112653    ; mov ecx, eax                              ; 66 8b c8
    12792     jmp short 0df93h                          ; eb 69
     12654    jmp short 0dfb3h                          ; eb 69
    1279312655    cmp AL, strict byte 00ah                  ; 3c 0a
    12794     jne short 0df3eh                          ; 75 10
    12795     call 0df98h                               ; e8 67 00
     12656    jne short 0df5eh                          ; 75 10
     12657    call 0dfb8h                               ; e8 67 00
    1279612658    add byte [bx+si], al                      ; 00 00
    1279712659    push dx                                   ; 52
     
    1279912661    db  08bh, 0c8h
    1280012662    ; mov cx, ax                                ; 8b c8
    12801     jmp short 0df93h                          ; eb 55
     12663    jmp short 0dfb3h                          ; eb 55
    1280212664    cmp AL, strict byte 00bh                  ; 3c 0b
    12803     jne short 0df5ah                          ; 75 18
    12804     call 0df98h                               ; e8 53 00
     12665    jne short 0df7ah                          ; 75 18
     12666    call 0dfb8h                               ; e8 53 00
    1280512667    add byte [bx+si], al                      ; 00 00
    1280612668    push dx                                   ; 52
     
    1281112673    out DX, AL                                ; ee
    1281212674    pop dx                                    ; 5a
    12813     jmp short 0df93h                          ; eb 39
     12675    jmp short 0dfb3h                          ; eb 39
    1281412676    cmp AL, strict byte 00ch                  ; 3c 0c
    12815     jne short 0df78h                          ; 75 1a
    12816     call 0df98h                               ; e8 37 00
     12677    jne short 0df98h                          ; 75 1a
     12678    call 0dfb8h                               ; e8 37 00
    1281712679    add byte [bx+si], al                      ; 00 00
    1281812680    push dx                                   ; 52
     
    1282212684    add edx, strict dword 08b660cfch          ; 66 81 c2 fc 0c 66 8b
    1282312685    sal word [bp-011h], 05ah                  ; c1 66 ef 5a
    12824     jmp short 0df93h                          ; eb 1b
     12686    jmp short 0dfb3h                          ; eb 1b
    1282512687    cmp AL, strict byte 00dh                  ; 3c 0d
    12826     jne short 0df8ch                          ; 75 10
    12827     call 0df98h                               ; e8 19 00
     12688    jne short 0dfach                          ; 75 10
     12689    call 0dfb8h                               ; e8 19 00
    1282812690    add byte [bx+si], al                      ; 00 00
    1282912691    push dx                                   ; 52
     
    1283112693    out DX, ax                                ; ef
    1283212694    pop dx                                    ; 5a
    12833     jmp short 0df93h                          ; eb 07
     12695    jmp short 0dfb3h                          ; eb 07
    1283412696    mov AH, strict byte 081h                  ; b4 81
    1283512697    pop di                                    ; 5f
     
    1285912721    retn                                      ; c3
    1286012722
    12861   ; Padding 0x49 bytes at 0xfdfb7
    12862   times 73 db 0
     12723  ; Padding 0x29 bytes at 0xfdfd7
     12724  times 41 db 0
    1286312725
    1286412726section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
     
    1288112743    times 0x15 db 0
    1288212744    db  'XM'
    12883 post:                                        ; 0xfe05b LB 0x30
     12745post:                                        ; 0xfe05b LB 0x32
    1288412746    db  033h, 0c0h
    1288512747    ; xor ax, ax                                ; 33 c0
     
    1290212764    ; mov al, bl                                ; 8a c3
    1290312765    cmp AL, strict byte 000h                  ; 3c 00
    12904     je short 0e08bh                           ; 74 0c
     12766    je short 0e098h                           ; 74 19
    1290512767    cmp AL, strict byte 00dh                  ; 3c 0d
    12906     jnc short 0e08bh                          ; 73 08
     12768    jnc short 0e098h                          ; 73 15
    1290712769    cmp AL, strict byte 009h                  ; 3c 09
    12908     je short 0e08bh                           ; 74 04
     12770    je short 0e098h                           ; 74 11
    1290912771    cmp AL, strict byte 005h                  ; 3c 05
    1291012772    je short 0e030h                           ; 74 a5
    12911 normal_post:                                 ; 0xfe08b LB 0x238
     12773    jmp short 0e098h                          ; eb 0b
     12774set_int_vects:                               ; 0xfe08d LB 0xb
     12775    mov word [bx], ax                         ; 89 07
     12776    mov word [bx+002h], dx                    ; 89 57 02
     12777    add bx, strict byte 00004h                ; 83 c3 04
     12778    loop 0e08dh                               ; e2 f6
     12779    retn                                      ; c3
     12780normal_post:                                 ; 0xfe098 LB 0x22b
    1291212781    cli                                       ; fa
    1291312782    mov ax, 07800h                            ; b8 00 78
     
    1293212801    add bx, 01000h                            ; 81 c3 00 10
    1293312802    cmp bx, 09000h                            ; 81 fb 00 90
    12934     jnc short 0e0bfh                          ; 73 0b
     12803    jnc short 0e0cch                          ; 73 0b
    1293512804    mov es, bx                                ; 8e c3
    1293612805    db  033h, 0ffh
     
    1293812807    mov cx, 08000h                            ; b9 00 80
    1293912808    rep stosw                                 ; f3 ab
    12940     jmp short 0e0aah                          ; eb eb
     12809    jmp short 0e0b7h                          ; eb eb
    1294112810    mov es, bx                                ; 8e c3
    1294212811    db  033h, 0ffh
     
    1294912818    pop DS                                    ; 1f
    1295012819    cld                                       ; fc
    12951     call 01709h                               ; e8 39 36
    12952     call 0e8c8h                               ; e8 f5 07
     12820    call 01707h                               ; e8 2a 36
     12821    call 0e8e0h                               ; e8 00 08
    1295312822    db  033h, 0dbh
    1295412823    ; xor bx, bx                                ; 33 db
    1295512824    mov ds, bx                                ; 8e db
    12956     mov cx, strict word 00078h                ; b9 78 00
     12825    mov cx, strict word 00060h                ; b9 60 00
    1295712826    mov ax, 0ff53h                            ; b8 53 ff
    1295812827    mov dx, 0f000h                            ; ba 00 f0
    12959     mov word [bx], ax                         ; 89 07
    12960     mov word [bx+002h], dx                    ; 89 57 02
    12961     add bx, strict byte 00004h                ; 83 c3 04
    12962     loop 0e0e0h                               ; e2 f6
     12828    call 0e08dh                               ; e8 9d ff
     12829    mov bx, 001a0h                            ; bb a0 01
     12830    mov cx, strict word 00010h                ; b9 10 00
     12831    call 0e08dh                               ; e8 94 ff
    1296312832    mov ax, 0027fh                            ; b8 7f 02
    1296412833    mov word [00413h], ax                     ; a3 13 04
     
    1299112860    mov ax, 0f000h                            ; b8 00 f0
    1299212861    mov word [00072h], ax                     ; a3 72 00
    12993     call 0e7c0h                               ; e8 79 06
     12862    call 0e7c0h                               ; e8 6a 06
    1299412863    mov ax, 0fea5h                            ; b8 a5 fe
    1299512864    mov word [00020h], ax                     ; a3 20 00
     
    1302912898    pop DS                                    ; 1f
    1303012899    cld                                       ; fc
    13031     call 04b28h                               ; e8 7e 69
     12900    call 04893h                               ; e8 da 66
    1303212901    pop DS                                    ; 1f
    1303312902    mov AL, strict byte 014h                  ; b0 14
     
    1304612915    mov CL, strict byte 014h                  ; b1 14
    1304712916    mov dx, 00378h                            ; ba 78 03
    13048     call 0ecedh                               ; e8 1f 0b
     12917    call 0ecedh                               ; e8 10 0b
    1304912918    mov dx, 00278h                            ; ba 78 02
    13050     call 0ecedh                               ; e8 19 0b
     12919    call 0ecedh                               ; e8 0a 0b
    1305112920    sal bx, 00eh                              ; c1 e3 0e
    1305212921    mov ax, word [00410h]                     ; a1 10 04
     
    1307112940    mov CL, strict byte 00ah                  ; b1 0a
    1307212941    mov dx, 003f8h                            ; ba f8 03
    13073     call 0ed0bh                               ; e8 fb 0a
     12942    call 0ed0bh                               ; e8 ec 0a
    1307412943    mov dx, 002f8h                            ; ba f8 02
    13075     call 0ed0bh                               ; e8 f5 0a
     12944    call 0ed0bh                               ; e8 e6 0a
    1307612945    mov dx, 003e8h                            ; ba e8 03
    13077     call 0ed0bh                               ; e8 ef 0a
     12946    call 0ed0bh                               ; e8 e0 0a
    1307812947    mov dx, 002e8h                            ; ba e8 02
    13079     call 0ed0bh                               ; e8 e9 0a
     12948    call 0ed0bh                               ; e8 da 0a
    1308012949    sal bx, 009h                              ; c1 e3 09
    1308112950    mov ax, word [00410h]                     ; a1 10 04
     
    1309612965    mov ax, 0f000h                            ; b8 00 f0
    1309712966    mov word [001c2h], ax                     ; a3 c2 01
    13098     call 0edbfh                               ; e8 68 0b
     12967    call 0edbfh                               ; e8 59 0b
    1309912968    mov ax, 0f8a3h                            ; b8 a3 f8
    1310012969    mov word [001d0h], ax                     ; a3 d0 01
     
    1310912978    mov ax, 0f000h                            ; b8 00 f0
    1311012979    mov word [00042h], ax                     ; a3 42 00
    13111     call 0e79bh                               ; e8 1d 05
    13112     call 0f2feh                               ; e8 7d 10
    13113     call 0f383h                               ; e8 ff 10
    13114     call 0e758h                               ; e8 d1 04
     12980    call 0e79bh                               ; e8 0e 05
     12981    call 0f316h                               ; e8 86 10
     12982    call 0f39bh                               ; e8 08 11
     12983    call 0e758h                               ; e8 c2 04
    1311512984    push CS                                   ; 0e
    1311612985    pop DS                                    ; 1f
    1311712986    cld                                       ; fc
    13118     call 01b49h                               ; e8 bc 38
    13119     call 01f79h                               ; e8 e9 3c
    13120     call 07b5eh                               ; e8 cb 98
    13121     call 08a68h                               ; e8 d2 a7
    13122     call 0ed2fh                               ; e8 96 0a
    13123     call 0e2d2h                               ; e8 36 00
     12987    call 01b25h                               ; e8 89 38
     12988    call 01f23h                               ; e8 84 3c
     12989    call 0770ah                               ; e8 68 94
     12990    call 08584h                               ; e8 df a2
     12991    call 0ed2fh                               ; e8 87 0a
     12992    call 0e2d2h                               ; e8 27 00
    1312412993    push CS                                   ; 0e
    1312512994    pop DS                                    ; 1f
    1312612995    cld                                       ; fc
    13127     call 0172bh                               ; e8 89 34
    13128     call 036f9h                               ; e8 54 54
     12996    call 01725h                               ; e8 74 34
     12997    call 0358dh                               ; e8 d9 52
    1312912998    sti                                       ; fb
    1313012999    int 019h                                  ; cd 19
    1313113000    sti                                       ; fb
    1313213001    hlt                                       ; f4
    13133     jmp short 0e2a9h                          ; eb fd
     13002    jmp short 0e2b8h                          ; eb fd
    1313413003    cli                                       ; fa
    1313513004    hlt                                       ; f4
    13136     times 0x13 db 0
    13137     db  'XM'
     13005    add byte [bx+si], al                      ; 00 00
     13006    add byte [bx+si], al                      ; 00 00
     13007    pop ax                                    ; 58
     13008    dec bp                                    ; 4d
    1313813009nmi:                                         ; 0xfe2c3 LB 0x7
    1313913010    push CS                                   ; 0e
    1314013011    pop DS                                    ; 1f
    1314113012    cld                                       ; fc
    13142     call 016e3h                               ; e8 1a 34
     13013    call 016e7h                               ; e8 1e 34
    1314313014    iret                                      ; cf
    1314413015int75_handler:                               ; 0xfe2ca LB 0x8
     
    1324913120    pop DS                                    ; 1f
    1325013121    cld                                       ; fc
    13251     call 05eeah                               ; e8 a8 77
     13122    call 05b9dh                               ; e8 5b 74
    1325213123    popaw                                     ; 61
    1325313124    pop ES                                    ; 07
     
    1336513236    pop DS                                    ; 1f
    1336613237    cld                                       ; fc
    13367     call 0526eh                               ; e8 2c 6a
     13238    call 04f85h                               ; e8 43 67
    1336813239    popaw                                     ; 61
    1336913240    pop DS                                    ; 1f
     
    1338213253    pop DS                                    ; 1f
    1338313254    cld                                       ; fc
    13384     call 0526eh                               ; e8 0e 6a
     13255    call 04f85h                               ; e8 25 67
    1338513256    popaw                                     ; 61
    1338613257    pop DS                                    ; 1f
     
    1339913270    retn                                      ; c3
    1340013271pmode_exit:                                  ; 0xfe87f LB 0x13
    13401     mov ax, strict word 00028h                ; b8 28 00
     13272    mov ax, strict word 00040h                ; b8 40 00
    1340213273    mov ds, ax                                ; 8e d8
    1340313274    mov eax, cr0                              ; 0f 20 c0
     
    1340713278    retn                                      ; c3
    1340813279pmbios_gdt_desc:                             ; 0xfe892 LB 0x6
    13409     db  030h, 000h, 098h, 0e8h, 00fh, 000h
    13410 pmbios_gdt:                                  ; 0xfe898 LB 0x30
     13280    db  047h, 000h, 098h, 0e8h, 00fh, 000h
     13281pmbios_gdt:                                  ; 0xfe898 LB 0x48
    1341113282    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1341213283    db  0ffh, 0ffh, 000h, 000h, 000h, 09bh, 0cfh, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 0cfh, 000h
    1341313284    db  0ffh, 0ffh, 000h, 000h, 00fh, 09bh, 000h, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 000h, 000h
    13414 pmode_setup:                                 ; 0xfe8c8 LB 0x393
     13285    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     13286    db  0ffh, 0ffh, 000h, 004h, 000h, 093h, 000h, 000h
     13287pmode_setup:                                 ; 0xfe8e0 LB 0x37b
    1341513288    push eax                                  ; 66 50
    1341613289    push esi                                  ; 66 56
    1341713290    pushfw                                    ; 9c
    1341813291    cli                                       ; fa
    13419     call 0e864h                               ; e8 93 ff
     13292    call 0e864h                               ; e8 7b ff
    1342013293    mov eax, cr0                              ; 0f 20 c0
    1342113294    and eax, strict dword 09fffffffh          ; 66 25 ff ff ff 9f
     
    1343113304    or ah, 004h                               ; 80 cc 04
    1343213305    mov dword [esi], eax                      ; 67 66 89 06
    13433     call 0e87fh                               ; e8 71 ff
     13306    call 0e87fh                               ; e8 59 ff
    1343413307    popfw                                     ; 9d
    1343513308    pop esi                                   ; 66 5e
    1343613309    pop eax                                   ; 66 58
    1343713310    retn                                      ; c3
    13438     times 0x71 db 0
     13311    times 0x59 db 0
    1343913312    pop ax                                    ; 58
    1344013313    dec bp                                    ; 4d
     
    1347913352    pop DS                                    ; 1f
    1348013353    cld                                       ; fc
    13481     call 04e39h                               ; e8 6a 64
     13354    call 04b9dh                               ; e8 ce 61
    1348213355    pop ES                                    ; 07
    1348313356    popaw                                     ; 61
     
    1350513378    cld                                       ; fc
    1350613379    push 0ece9h                               ; 68 e9 ec
    13507     jmp near 03737h                           ; e9 c6 4a
     13380    jmp near 035cbh                           ; e9 5a 49
    1350813381    push ES                                   ; 06
    1350913382    push ax                                   ; 50
     
    1351113384    push cx                                   ; 51
    1351213385    push dx                                   ; 52
    13513     call 0370fh                               ; e8 96 4a
     13386    call 035a3h                               ; e8 2a 49
    1351413387    cmp AL, strict byte 000h                  ; 3c 00
    1351513388    je short 0ecabh                           ; 74 2e
    13516     call 03723h                               ; e8 a3 4a
     13389    call 035b7h                               ; e8 37 49
    1351713390    pop dx                                    ; 5a
    1351813391    push dx                                   ; 52
     
    1353213405    cld                                       ; fc
    1353313406    push 0ece9h                               ; 68 e9 ec
    13534     jmp near 03d62h                           ; e9 cb 50
     13407    jmp near 03ba9h                           ; e9 12 4f
    1353513408    and dl, 0e0h                              ; 80 e2 e0
    1353613409    db  03ah, 0c2h
     
    1357213445    jne short 0ecc8h                          ; 75 06
    1357313446    push 0ece9h                               ; 68 e9 ec
    13574     jmp near 02efch                           ; e9 34 42
     13447    jmp near 02df4h                           ; e9 2c 41
    1357513448int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1357613449    cmp dl, 0e0h                              ; 80 fa e0
     
    1357813451    shr ebx, 010h                             ; 66 c1 eb 10
    1357913452    push bx                                   ; 53
    13580     call 04182h                               ; e8 ad 54
     13453    call 03fc8h                               ; e8 f3 52
    1358113454    pop bx                                    ; 5b
    1358213455    sal ebx, 010h                             ; 66 c1 e3 10
     
    1358513458    cmp ah, 040h                              ; 80 fc 40
    1358613459    jnbe short 0ece6h                         ; 77 05
    13587     call 05595h                               ; e8 b1 68
     13460    call 05299h                               ; e8 b5 65
    1358813461    jmp short 0ece9h                          ; eb 03
    13589     call 059cfh                               ; e8 e6 6c
     13462    call 056d5h                               ; e8 ec 69
    1359013463int13_out:                                   ; 0xfece9 LB 0x4
    1359113464    pop DS                                    ; 1f
     
    1379013663    ; sbb di, di                                ; 1b ff
    1379113664    insb                                      ; 6c
    13792     db  0f6h, 00fh
    13793     ;                                           ; f6 0f
    13794     db  008h
     13665    db  0f6h
     13666    invd                                      ; 0f 08
    1379513667int17_handler:                               ; 0xfefd2 LB 0xd
    1379613668    push DS                                   ; 1e
     
    1380013672    pop DS                                    ; 1f
    1380113673    cld                                       ; fc
    13802     call 070e5h                               ; e8 0a 81
     13674    call 06d3ch                               ; e8 61 7d
    1380313675    popaw                                     ; 61
    1380413676    pop ES                                    ; 07
     
    1382513697    pop DS                                    ; 1f
    1382613698    cld                                       ; fc
    13827     call 016f6h                               ; e8 4c 26
     13699    call 016f7h                               ; e8 4d 26
    1382813700    hlt                                       ; f4
    1382913701    iret                                      ; cf
     
    1384813720    mov ax, strict word 00001h                ; b8 01 00
    1384913721    push ax                                   ; 50
    13850     call 0487eh                               ; e8 ae 57
     13722    call 04631h                               ; e8 61 55
    1385113723    inc sp                                    ; 44
    1385213724    inc sp                                    ; 44
     
    1385513727    mov ax, strict word 00002h                ; b8 02 00
    1385613728    push ax                                   ; 50
    13857     call 0487eh                               ; e8 a1 57
     13729    call 04631h                               ; e8 54 55
    1385813730    inc sp                                    ; 44
    1385913731    inc sp                                    ; 44
     
    1386213734    mov ax, strict word 00003h                ; b8 03 00
    1386313735    push strict byte 00003h                   ; 6a 03
    13864     call 0487eh                               ; e8 93 57
     13736    call 04631h                               ; e8 46 55
    1386513737    inc sp                                    ; 44
    1386613738    inc sp                                    ; 44
     
    1386913741    mov ax, strict word 00004h                ; b8 04 00
    1387013742    push ax                                   ; 50
    13871     call 0487eh                               ; e8 86 57
     13743    call 04631h                               ; e8 39 55
    1387213744    inc sp                                    ; 44
    1387313745    inc sp                                    ; 44
     
    1388713759    pop bp                                    ; 5d
    1388813760    iret                                      ; cf
    13889 pcibios_real:                                ; 0xff11d LB 0x3a
     13761pcibios_real:                                ; 0xff11d LB 0x52
    1389013762    push eax                                  ; 66 50
    1389113763    push dx                                   ; 52
     
    1389613768    in eax, DX                                ; 66 ed
    1389713769    cmp eax, strict dword 012378086h          ; 66 3d 86 80 37 12
    13898     je short 0f157h                           ; 74 1f
    13899     mov eax, strict dword 08000f000h          ; 66 b8 00 f0 00 80
     13770    je short 0f16fh                           ; 74 37
     13771    mov eax, strict dword 08000c000h          ; 66 b8 00 c0 00 80
    1390013772    mov dx, 00cf8h                            ; ba f8 0c
    1390113773    out DX, eax                               ; 66 ef
    1390213774    mov dx, 00cfch                            ; ba fc 0c
    1390313775    in eax, DX                                ; 66 ed
    13904     cmp eax, strict dword 0244e8086h          ; 66 3d 86 80 4e 24
    13905     je short 0f157h                           ; 74 07
     13776    cmp eax, strict dword 024488086h          ; 66 3d 86 80 48 24
     13777    je short 0f16fh                           ; 74 1f
     13778    mov eax, strict dword 08000c800h          ; 66 b8 00 c8 00 80
     13779    mov dx, 00cf8h                            ; ba f8 0c
     13780    out DX, eax                               ; 66 ef
     13781    mov dx, 00cfch                            ; ba fc 0c
     13782    in eax, DX                                ; 66 ed
     13783    cmp eax, strict dword 024488086h          ; 66 3d 86 80 48 24
     13784    je short 0f16fh                           ; 74 07
    1390613785    pop dx                                    ; 5a
    1390713786    pop eax                                   ; 66 58
     
    1390913788    stc                                       ; f9
    1391013789    retn                                      ; c3
    13911 pci_present:                                 ; 0xff157 LB 0x1e
     13790pci_present:                                 ; 0xff16f LB 0x1e
    1391213791    pop dx                                    ; 5a
    1391313792    pop eax                                   ; 66 58
    1391413793    cmp AL, strict byte 001h                  ; 3c 01
    13915     jne short 0f175h                          ; 75 17
     13794    jne short 0f18dh                          ; 75 17
    1391613795    mov ax, strict word 00001h                ; b8 01 00
    1391713796    mov bx, 00210h                            ; bb 10 02
    1391813797    mov cx, strict word 00000h                ; b9 00 00
    1391913798    mov edx, strict dword 020494350h          ; 66 ba 50 43 49 20
    13920     mov edi, strict dword 00000de60h          ; 66 bf 60 de 00 00
     13799    mov edi, strict dword 00000de80h          ; 66 bf 80 de 00 00
    1392113800    clc                                       ; f8
    1392213801    retn                                      ; c3
    13923 pci_real_f02:                                ; 0xff175 LB 0x16
     13802pci_real_f02:                                ; 0xff18d LB 0x16
    1392413803    push esi                                  ; 66 56
    1392513804    push edi                                  ; 66 57
    1392613805    push edx                                  ; 66 52
    1392713806    cmp AL, strict byte 002h                  ; 3c 02
    13928     jne short 0f1b7h                          ; 75 38
     13807    jne short 0f1cfh                          ; 75 38
    1392913808    sal ecx, 010h                             ; 66 c1 e1 10
    1393013809    db  08bh, 0cah
     
    1393313812    ; xor ebx, ebx                              ; 66 33 db
    1393413813    mov di, strict word 00000h                ; bf 00 00
    13935 pci_real_devloop:                            ; 0xff18b LB 0x15
    13936     call 0f2c3h                               ; e8 35 01
     13814pci_real_devloop:                            ; 0xff1a3 LB 0x15
     13815    call 0f2dbh                               ; e8 35 01
    1393713816    mov dx, 00cfch                            ; ba fc 0c
    1393813817    in eax, DX                                ; 66 ed
    1393913818    db  066h, 03bh, 0c1h
    1394013819    ; cmp eax, ecx                              ; 66 3b c1
    13941     jne short 0f1a0h                          ; 75 08
     13820    jne short 0f1b8h                          ; 75 08
    1394213821    cmp si, strict byte 00000h                ; 83 fe 00
    13943     je near 0f2b9h                            ; 0f 84 1a 01
     13822    je near 0f2d1h                            ; 0f 84 1a 01
    1394413823    dec si                                    ; 4e
    13945 pci_real_nextdev:                            ; 0xff1a0 LB 0x17
     13824pci_real_nextdev:                            ; 0xff1b8 LB 0x17
    1394613825    inc ebx                                   ; 66 43
    1394713826    cmp ebx, strict dword 000010000h          ; 66 81 fb 00 00 01 00
    13948     jne short 0f18bh                          ; 75 e0
     13827    jne short 0f1a3h                          ; 75 e0
    1394913828    db  08bh, 0d1h
    1395013829    ; mov dx, cx                                ; 8b d1
    1395113830    shr ecx, 010h                             ; 66 c1 e9 10
    1395213831    mov ax, 08602h                            ; b8 02 86
    13953     jmp near 0f2b1h                           ; e9 fa 00
    13954 pci_real_f03:                                ; 0xff1b7 LB 0xa
     13832    jmp near 0f2c9h                           ; e9 fa 00
     13833pci_real_f03:                                ; 0xff1cf LB 0xa
    1395513834    cmp AL, strict byte 003h                  ; 3c 03
    13956     jne short 0f1ebh                          ; 75 30
     13835    jne short 0f203h                          ; 75 30
    1395713836    db  066h, 033h, 0dbh
    1395813837    ; xor ebx, ebx                              ; 66 33 db
    1395913838    mov di, strict word 00008h                ; bf 08 00
    13960 pci_real_devloop2:                           ; 0xff1c1 LB 0x19
    13961     call 0f2c3h                               ; e8 ff 00
     13839pci_real_devloop2:                           ; 0xff1d9 LB 0x19
     13840    call 0f2dbh                               ; e8 ff 00
    1396213841    mov dx, 00cfch                            ; ba fc 0c
    1396313842    in eax, DX                                ; 66 ed
     
    1396513844    db  066h, 03bh, 0c1h
    1396613845    ; cmp eax, ecx                              ; 66 3b c1
    13967     jne short 0f1dah                          ; 75 08
     13846    jne short 0f1f2h                          ; 75 08
    1396813847    cmp si, strict byte 00000h                ; 83 fe 00
    13969     je near 0f2b9h                            ; 0f 84 e0 00
     13848    je near 0f2d1h                            ; 0f 84 e0 00
    1397013849    dec si                                    ; 4e
    13971 pci_real_nextdev2:                           ; 0xff1da LB 0xd7
     13850pci_real_nextdev2:                           ; 0xff1f2 LB 0xd7
    1397213851    inc ebx                                   ; 66 43
    1397313852    cmp ebx, strict dword 000010000h          ; 66 81 fb 00 00 01 00
    13974     jne short 0f1c1h                          ; 75 dc
     13853    jne short 0f1d9h                          ; 75 dc
    1397513854    mov ax, 08603h                            ; b8 03 86
    13976     jmp near 0f2b1h                           ; e9 c6 00
     13855    jmp near 0f2c9h                           ; e9 c6 00
    1397713856    cmp AL, strict byte 008h                  ; 3c 08
    13978     jne short 0f203h                          ; 75 14
    13979     call 0f2c3h                               ; e8 d1 00
     13857    jne short 0f21bh                          ; 75 14
     13858    call 0f2dbh                               ; e8 d1 00
    1398013859    push dx                                   ; 52
    1398113860    db  08bh, 0d7h
     
    1398713866    db  08ah, 0c8h
    1398813867    ; mov cl, al                                ; 8a c8
    13989     jmp near 0f2b9h                           ; e9 b6 00
     13868    jmp near 0f2d1h                           ; e9 b6 00
    1399013869    cmp AL, strict byte 009h                  ; 3c 09
    13991     jne short 0f21bh                          ; 75 14
    13992     call 0f2c3h                               ; e8 b9 00
     13870    jne short 0f233h                          ; 75 14
     13871    call 0f2dbh                               ; e8 b9 00
    1399313872    push dx                                   ; 52
    1399413873    db  08bh, 0d7h
     
    1400013879    db  08bh, 0c8h
    1400113880    ; mov cx, ax                                ; 8b c8
    14002     jmp near 0f2b9h                           ; e9 9e 00
     13881    jmp near 0f2d1h                           ; e9 9e 00
    1400313882    cmp AL, strict byte 00ah                  ; 3c 0a
    14004     jne short 0f22fh                          ; 75 10
    14005     call 0f2c3h                               ; e8 a1 00
     13883    jne short 0f247h                          ; 75 10
     13884    call 0f2dbh                               ; e8 a1 00
    1400613885    push dx                                   ; 52
    1400713886    mov dx, 00cfch                            ; ba fc 0c
     
    1401013889    db  066h, 08bh, 0c8h
    1401113890    ; mov ecx, eax                              ; 66 8b c8
    14012     jmp near 0f2b9h                           ; e9 8a 00
     13891    jmp near 0f2d1h                           ; e9 8a 00
    1401313892    cmp AL, strict byte 00bh                  ; 3c 0b
    14014     jne short 0f246h                          ; 75 13
    14015     call 0f2c3h                               ; e8 8d 00
     13893    jne short 0f25eh                          ; 75 13
     13894    call 0f2dbh                               ; e8 8d 00
    1401613895    push dx                                   ; 52
    1401713896    db  08bh, 0d7h
     
    1402313902    out DX, AL                                ; ee
    1402413903    pop dx                                    ; 5a
    14025     jmp short 0f2b9h                          ; eb 73
     13904    jmp short 0f2d1h                          ; eb 73
    1402613905    cmp AL, strict byte 00ch                  ; 3c 0c
    14027     jne short 0f25dh                          ; 75 13
    14028     call 0f2c3h                               ; e8 76 00
     13906    jne short 0f275h                          ; 75 13
     13907    call 0f2dbh                               ; e8 76 00
    1402913908    push dx                                   ; 52
    1403013909    db  08bh, 0d7h
     
    1403613915    out DX, ax                                ; ef
    1403713916    pop dx                                    ; 5a
    14038     jmp short 0f2b9h                          ; eb 5c
     13917    jmp short 0f2d1h                          ; eb 5c
    1403913918    cmp AL, strict byte 00dh                  ; 3c 0d
    14040     jne short 0f270h                          ; 75 0f
    14041     call 0f2c3h                               ; e8 5f 00
     13919    jne short 0f288h                          ; 75 0f
     13920    call 0f2dbh                               ; e8 5f 00
    1404213921    push dx                                   ; 52
    1404313922    mov dx, 00cfch                            ; ba fc 0c
     
    1404613925    out DX, eax                               ; 66 ef
    1404713926    pop dx                                    ; 5a
    14048     jmp short 0f2b9h                          ; eb 49
     13927    jmp short 0f2d1h                          ; eb 49
    1404913928    cmp AL, strict byte 00eh                  ; 3c 0e
    14050     jne short 0f2afh                          ; 75 3b
     13929    jne short 0f2c7h                          ; 75 3b
    1405113930    cmp word [es:di], 001e0h                  ; 26 81 3d e0 01
    14052     jc short 0f2a6h                           ; 72 2b
     13931    jc short 0f2beh                           ; 72 2b
    1405313932    mov word [es:di], 001e0h                  ; 26 c7 05 e0 01
    1405413933    pushfw                                    ; 9c
     
    1405913938    push di                                   ; 57
    1406013939    cld                                       ; fc
    14061     mov si, 0f480h                            ; be 80 f4
     13940    mov si, 0f490h                            ; be 90 f4
    1406213941    push CS                                   ; 0e
    1406313942    pop DS                                    ; 1f
     
    1407513954    popfw                                     ; 9d
    1407613955    mov bx, 00a00h                            ; bb 00 0a
    14077     jmp short 0f2b9h                          ; eb 13
     13956    jmp short 0f2d1h                          ; eb 13
    1407813957    mov word [es:di], 001e0h                  ; 26 c7 05 e0 01
    1407913958    mov AH, strict byte 089h                  ; b4 89
    14080     jmp short 0f2b1h                          ; eb 02
     13959    jmp short 0f2c9h                          ; eb 02
    1408113960    mov AH, strict byte 081h                  ; b4 81
    14082 pci_real_fail:                               ; 0xff2b1 LB 0x8
     13961pci_real_fail:                               ; 0xff2c9 LB 0x8
    1408313962    pop edx                                   ; 66 5a
    1408413963    pop edi                                   ; 66 5f
     
    1408613965    stc                                       ; f9
    1408713966    retn                                      ; c3
    14088 pci_real_ok:                                 ; 0xff2b9 LB 0xa
     13967pci_real_ok:                                 ; 0xff2d1 LB 0xa
    1408913968    db  032h, 0e4h
    1409013969    ; xor ah, ah                                ; 32 e4
     
    1409413973    clc                                       ; f8
    1409513974    retn                                      ; c3
    14096 pci_real_select_reg:                         ; 0xff2c3 LB 0x3b
     13975pci_real_select_reg:                         ; 0xff2db LB 0x3b
    1409713976    push dx                                   ; 52
    1409813977    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
     
    1412214001    pop eax                                   ; 66 58
    1412314002    retn                                      ; c3
    14124 pcibios_init_iomem_bases:                    ; 0xff2fe LB 0x16
     14003pcibios_init_iomem_bases:                    ; 0xff316 LB 0x16
    1412514004    push bp                                   ; 55
    1412614005    db  08bh, 0ech
     
    1413314012    push ax                                   ; 50
    1413414013    mov bx, strict word 00008h                ; bb 08 00
    14135 pci_init_io_loop1:                           ; 0xff314 LB 0xe
     14014pci_init_io_loop1:                           ; 0xff32c LB 0xe
    1413614015    mov DL, strict byte 000h                  ; b2 00
    14137     call 0f2e3h                               ; e8 ca ff
     14016    call 0f2fbh                               ; e8 ca ff
    1413814017    mov dx, 00cfch                            ; ba fc 0c
    1413914018    in ax, DX                                 ; ed
    1414014019    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    14141     je short 0f35bh                           ; 74 39
    14142 enable_iomem_space:                          ; 0xff322 LB 0x39
     14020    je short 0f373h                           ; 74 39
     14021enable_iomem_space:                          ; 0xff33a LB 0x39
    1414314022    mov DL, strict byte 004h                  ; b2 04
    14144     call 0f2e3h                               ; e8 bc ff
     14023    call 0f2fbh                               ; e8 bc ff
    1414514024    mov dx, 00cfch                            ; ba fc 0c
    1414614025    in AL, DX                                 ; ec
     
    1414814027    out DX, AL                                ; ee
    1414914028    mov DL, strict byte 000h                  ; b2 00
    14150     call 0f2e3h                               ; e8 b0 ff
     14029    call 0f2fbh                               ; e8 b0 ff
    1415114030    mov dx, 00cfch                            ; ba fc 0c
    1415214031    in eax, DX                                ; 66 ed
    1415314032    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    14154     jne short 0f35bh                          ; 75 1b
     14033    jne short 0f373h                          ; 75 1b
    1415514034    mov DL, strict byte 010h                  ; b2 10
    14156     call 0f2e3h                               ; e8 9e ff
     14035    call 0f2fbh                               ; e8 9e ff
    1415714036    mov dx, 00cfch                            ; ba fc 0c
    1415814037    in ax, DX                                 ; ed
     
    1416814047    add dx, strict byte 00018h                ; 83 c2 18
    1416914048    in eax, DX                                ; 66 ed
    14170 next_pci_dev:                                ; 0xff35b LB 0xf
     14049next_pci_dev:                                ; 0xff373 LB 0xf
    1417114050    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    1417214051    inc bx                                    ; 43
    1417314052    cmp bx, 00100h                            ; 81 fb 00 01
    14174     jne short 0f314h                          ; 75 ae
     14053    jne short 0f32ch                          ; 75 ae
    1417514054    db  08bh, 0e5h
    1417614055    ; mov sp, bp                                ; 8b e5
    1417714056    pop bp                                    ; 5d
    1417814057    retn                                      ; c3
    14179 pcibios_init_set_elcr:                       ; 0xff36a LB 0xc
     14058pcibios_init_set_elcr:                       ; 0xff382 LB 0xc
    1418014059    push ax                                   ; 50
    1418114060    push cx                                   ; 51
    1418214061    mov dx, 004d0h                            ; ba d0 04
    1418314062    test AL, strict byte 008h                 ; a8 08
    14184     je short 0f376h                           ; 74 03
     14063    je short 0f38eh                           ; 74 03
    1418514064    inc dx                                    ; 42
    1418614065    and AL, strict byte 007h                  ; 24 07
    14187 is_master_pic:                               ; 0xff376 LB 0xd
     14066is_master_pic:                               ; 0xff38e LB 0xd
    1418814067    db  08ah, 0c8h
    1418914068    ; mov cl, al                                ; 8a c8
     
    1419714076    pop ax                                    ; 58
    1419814077    retn                                      ; c3
    14199 pcibios_init_irqs:                           ; 0xff383 LB 0x53
     14078pcibios_init_irqs:                           ; 0xff39b LB 0x53
    1420014079    push DS                                   ; 1e
    1420114080    push bp                                   ; 55
     
    1420714086    inc dx                                    ; 42
    1420814087    out DX, AL                                ; ee
    14209     mov si, 0f460h                            ; be 60 f4
     14088    mov si, 0f470h                            ; be 70 f4
    1421014089    mov bh, byte [si+008h]                    ; 8a 7c 08
    1421114090    mov bl, byte [si+009h]                    ; 8a 5c 09
    1421214091    mov DL, strict byte 000h                  ; b2 00
    14213     call 0f2e3h                               ; e8 43 ff
     14092    call 0f2fbh                               ; e8 43 ff
    1421414093    mov dx, 00cfch                            ; ba fc 0c
    1421514094    in eax, DX                                ; 66 ed
    1421614095    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    14217     jne near 0f453h                           ; 0f 85 a6 00
     14096    jne near 0f46bh                           ; 0f 85 a6 00
    1421814097    mov dl, byte [si+022h]                    ; 8a 54 22
    14219     call 0f2e3h                               ; e8 30 ff
     14098    call 0f2fbh                               ; e8 30 ff
    1422014099    push bx                                   ; 53
    1422114100    mov dx, 00cfch                            ; ba fc 0c
     
    1423214111    db  08bh, 0ech
    1423314112    ; mov bp, sp                                ; 8b ec
    14234     mov ax, 0f2dfh                            ; b8 df f2
     14113    mov ax, 0f2f7h                            ; b8 f7 f2
    1423514114    push ax                                   ; 50
    1423614115    db  033h, 0c0h
    1423714116    ; xor ax, ax                                ; 33 c0
    1423814117    push ax                                   ; 50
    14239 pci_init_irq_loop1:                          ; 0xff3d6 LB 0x5
     14118pci_init_irq_loop1:                          ; 0xff3ee LB 0x5
    1424014119    mov bh, byte [si]                         ; 8a 3c
    1424114120    mov bl, byte [si+001h]                    ; 8a 5c 01
    14242 pci_init_irq_loop2:                          ; 0xff3db LB 0x15
     14121pci_init_irq_loop2:                          ; 0xff3f3 LB 0x15
    1424314122    mov DL, strict byte 000h                  ; b2 00
    14244     call 0f2e3h                               ; e8 03 ff
     14123    call 0f2fbh                               ; e8 03 ff
    1424514124    mov dx, 00cfch                            ; ba fc 0c
    1424614125    in ax, DX                                 ; ed
    1424714126    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    14248     jne short 0f3f0h                          ; 75 07
     14127    jne short 0f408h                          ; 75 07
    1424914128    test bl, 007h                             ; f6 c3 07
    14250     je short 0f447h                           ; 74 59
    14251     jmp short 0f43dh                          ; eb 4d
    14252 pci_test_int_pin:                            ; 0xff3f0 LB 0x3c
     14129    je short 0f45fh                           ; 74 59
     14130    jmp short 0f455h                          ; eb 4d
     14131pci_test_int_pin:                            ; 0xff408 LB 0x3c
    1425314132    mov DL, strict byte 03ch                  ; b2 3c
    14254     call 0f2e3h                               ; e8 ee fe
     14133    call 0f2fbh                               ; e8 ee fe
    1425514134    mov dx, 00cfdh                            ; ba fd 0c
    1425614135    in AL, DX                                 ; ec
    1425714136    and AL, strict byte 007h                  ; 24 07
    14258     je short 0f43dh                           ; 74 40
     14137    je short 0f455h                           ; 74 40
    1425914138    db  0feh, 0c8h
    1426014139    ; dec al                                    ; fe c8
     
    1427014149    ; mov dl, al                                ; 8a d0
    1427114150    mov bx, word [byte bp+000h]               ; 8b 5e 00
    14272     call 0f2e3h                               ; e8 d0 fe
     14151    call 0f2fbh                               ; e8 d0 fe
    1427314152    mov dx, 00cfch                            ; ba fc 0c
    1427414153    and AL, strict byte 003h                  ; 24 03
     
    1427714156    in AL, DX                                 ; ec
    1427814157    cmp AL, strict byte 080h                  ; 3c 80
    14279     jc short 0f42ch                           ; 72 0d
     14158    jc short 0f444h                           ; 72 0d
    1428014159    mov bx, word [bp-002h]                    ; 8b 5e fe
    1428114160    mov al, byte [bx]                         ; 8a 07
     
    1428314162    inc bx                                    ; 43
    1428414163    mov word [bp-002h], bx                    ; 89 5e fe
    14285     call 0f36ah                               ; e8 3e ff
    14286 pirq_found:                                  ; 0xff42c LB 0x11
     14164    call 0f382h                               ; e8 3e ff
     14165pirq_found:                                  ; 0xff444 LB 0x11
    1428714166    mov bh, byte [si]                         ; 8a 3c
    1428814167    mov bl, byte [si+001h]                    ; 8a 5c 01
    1428914168    add bl, byte [bp-003h]                    ; 02 5e fd
    1429014169    mov DL, strict byte 03ch                  ; b2 3c
    14291     call 0f2e3h                               ; e8 aa fe
     14170    call 0f2fbh                               ; e8 aa fe
    1429214171    mov dx, 00cfch                            ; ba fc 0c
    1429314172    out DX, AL                                ; ee
    14294 next_pci_func:                               ; 0xff43d LB 0xa
     14173next_pci_func:                               ; 0xff455 LB 0xa
    1429514174    inc byte [bp-003h]                        ; fe 46 fd
    1429614175    db  0feh, 0c3h
    1429714176    ; inc bl                                    ; fe c3
    1429814177    test bl, 007h                             ; f6 c3 07
    14299     jne short 0f3dbh                          ; 75 94
    14300 next_pir_entry:                              ; 0xff447 LB 0xc
     14178    jne short 0f3f3h                          ; 75 94
     14179next_pir_entry:                              ; 0xff45f LB 0xc
    1430114180    add si, strict byte 00010h                ; 83 c6 10
    1430214181    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    14303     loop 0f3d6h                               ; e2 86
     14182    loop 0f3eeh                               ; e2 86
    1430414183    db  08bh, 0e5h
    1430514184    ; mov sp, bp                                ; 8b e5
    1430614185    pop bx                                    ; 5b
    14307 pci_init_end:                                ; 0xff453 LB 0xd
     14186pci_init_end:                                ; 0xff46b LB 0x5
    1430814187    pop bp                                    ; 5d
    1430914188    pop DS                                    ; 1f
    1431014189    retn                                      ; c3
    14311     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h
    14312 pci_routing_table_structure:                 ; 0xff460 LB 0x3e1
     14190    db  089h, 0c0h
     14191pci_routing_table_structure:                 ; 0xff470 LB 0x3d1
    1431314192    db  024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h
    14314     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     14193    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
    1431514194    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
    1431614195    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
     
    1437114250    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1437214251    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    14373     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1437414252    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h
    1437514253    db  04dh
     
    1440614284    cmp ah, 0c2h                              ; 80 fc c2
    1440714285    je short 0f881h                           ; 74 0d
    14408     call 060f8h                               ; e8 81 68
     14286    call 05da6h                               ; e8 2f 65
    1440914287    popaw                                     ; 61
    1441014288    pop ES                                    ; 07
     
    1441614294    jmp short 0f88fh                          ; eb 0e
    1441714295int15_handler_mouse:                         ; 0xff881 LB 0x5
    14418     call 06d46h                               ; e8 c2 74
     14296    call 069b6h                               ; e8 32 71
    1441914297    jmp short 0f877h                          ; eb f1
    1442014298int15_handler32:                             ; 0xff886 LB 0x9
    1442114299    pushad                                    ; 66 60
    14422     call 065c6h                               ; e8 3b 6d
     14300    call 0626fh                               ; e8 e4 69
    1442314301    popad                                     ; 66 61
    1442414302    jmp short 0f878h                          ; eb e9
     
    1445014328    pop DS                                    ; 1f
    1445114329    cld                                       ; fc
    14452     call 06c74h                               ; e8 bd 73
     14330    call 068f0h                               ; e8 39 70
    1445314331    pop cx                                    ; 59
    1445414332    jcxz 0f8c6h                               ; e3 0c
     
    1454214420    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1454314421    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    14544     db  080h, 0fch, 0b1h, 075h, 00eh, 0e8h, 0a7h, 0f2h, 072h, 003h, 0e9h, 014h, 0fah, 060h, 0e8h, 050h
    14545     db  06bh, 061h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 076h, 06bh, 061h, 01fh, 007h, 0cfh
     14422    db  080h, 0fch, 0b1h, 075h, 00eh, 0e8h, 0a7h, 0f2h, 072h, 003h, 0e9h, 014h, 0fah, 060h, 0e8h, 0e8h
     14423    db  067h, 061h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 00eh, 068h, 061h, 01fh, 007h, 0cfh
    1454614424int70_handler:                               ; 0xffe8e LB 0x17
    1454714425    push ES                                   ; 06
     
    1455114429    pop DS                                    ; 1f
    1455214430    cld                                       ; fc
    14553     call 06921h                               ; e8 8a 6a
     14431    call 065bch                               ; e8 25 67
    1455414432    popaw                                     ; 61
    1455514433    pop DS                                    ; 1f
     
    1462514503    dec bp                                    ; 4d
    1462614504    pop di                                    ; 5f
    14627     add byte [bx], bl                         ; 00 1f
     14505    jnl short 0ff85h                          ; 7d 1f
    1462814506    add al, byte [di]                         ; 02 05
    1462914507    inc word [bx+si]                          ; ff 00
     
    1463614514    dec cx                                    ; 49
    1463714515    pop di                                    ; 5f
    14638     add byte [bx+si+001h], ah                 ; 00 60 01
     14516    mov di, 00160h                            ; bf 60 01
    1463914517    add byte [bx+si], dl                      ; 00 10
    1464014518    push CS                                   ; 0e
     
    1464514523cpu_reset:                                   ; 0xffff0 LB 0x10
    1464614524    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    14647     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ffh
     14525    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 005h
  • trunk/src/VBox/Devices/PC/BIOS-new/VBoxBiosAlternative.md5sum

    r41513 r42053  
    1 76025087e3ecf3738a573074c6955457 *VBoxPcBios.rom
     1e550fec5c488fd7c2362c348dbf107d9 *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