From db9c76bcee96b32ab882adc1d4caf75a565d10d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Thu, 29 Jul 2021 23:19:41 +0300 Subject: [PATCH] First commit --- .gitignore | 1 + LICENSE.microsoft | 12 + LICENSE.tools | 116 +++++ Makefile | 12 + README | 3 + edlin.asm | 1001 ++++++++++++++++++++++++++++++++++++++++++++ edlin.original | Bin 0 -> 2392 bytes process-disasm.sed | 21 + 8 files changed, 1166 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.microsoft create mode 100644 LICENSE.tools create mode 100644 Makefile create mode 100644 README create mode 100644 edlin.asm create mode 100644 edlin.original create mode 100755 process-disasm.sed diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed6fe06 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.com diff --git a/LICENSE.microsoft b/LICENSE.microsoft new file mode 100644 index 0000000..904da7a --- /dev/null +++ b/LICENSE.microsoft @@ -0,0 +1,12 @@ +# MS-DOS v1.25 and v2.0 Source Code + +Copyright (c) Microsoft Corporation. +All rights reserved. + +## MIT License. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, ARISING FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSE.tools b/LICENSE.tools new file mode 100644 index 0000000..670154e --- /dev/null +++ b/LICENSE.tools @@ -0,0 +1,116 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5707db5 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +all: edlin.com + +edlin.com: edlin.asm + nasm -f bin -o $@ $< + +test: edlin.com + diff edlin.com edlin.original + +clean: + rm -f *.com + +.PHONY: all test diff --git a/README b/README new file mode 100644 index 0000000..1a661c0 --- /dev/null +++ b/README @@ -0,0 +1,3 @@ +This is a (work in progress) disassembly of the MS-DOS 1.25 EDLIN.COM +binary. Sources deriving from MS-DOS are under MIT license, see +LICENSE.microsoft, while other sources are under CC0, see LICENSE.tools. diff --git a/edlin.asm b/edlin.asm new file mode 100644 index 0000000..745a018 --- /dev/null +++ b/edlin.asm @@ -0,0 +1,1001 @@ +cpu 8086 +org 0x100 + +db 0xEB, 0x7F ; 0100 jmp short 0x181 +db 0x0D, 0x0A, 0x54 ; 0102 or ax,0x540a +db 0x68, 0x65, 0x20 ; 0105 push word 0x2065 +db 0x49 ; 0108 dec cx +db 0x42 ; 0109 inc dx +db 0x4D ; 010A dec bp +db 0x20, 0x50, 0x65 ; 010B and [bx+si+0x65],dl +db 0x72, 0x73 ; 010E jc 0x183 +db 0x6F ; 0110 outsw +db 0x6E ; 0111 outsb +db 0x61 ; 0112 popa +db 0x6C ; 0113 insb +db 0x20, 0x43, 0x6F ; 0114 and [bp+di+0x6f],al +db 0x6D ; 0117 insw +db 0x70, 0x75 ; 0118 jo 0x18f +db 0x74, 0x65 ; 011A jz 0x181 +db 0x72, 0x20 ; 011C jc 0x13e +db 0x45 ; 011E inc bp +db 0x44 ; 011F inc sp +db 0x49 ; 0120 dec cx +db 0x54 ; 0121 push sp +db 0x4F ; 0122 dec di +db 0x52 ; 0123 push dx +db 0x0D, 0x0A, 0x56 ; 0124 or ax,0x560a +db 0x65, 0x72, 0x73 ; 0127 gs jc 0x19d +db 0x69, 0x6F, 0x6E, 0x20, 0x31 ; 012A imul bp,[bx+0x6e],word 0x3120 +db 0x2E, 0x30, 0x30 ; 012F xor [cs:bx+si],dh +db 0x20, 0x28 ; 0132 and [bx+si],ch +db 0x43 ; 0134 inc bx +db 0x29, 0x43, 0x6F ; 0135 sub [bp+di+0x6f],ax +db 0x70, 0x79 ; 0138 jo 0x1b3 +db 0x72, 0x69 ; 013A jc 0x1a5 +db 0x67, 0x68, 0x74, 0x20 ; 013C push word 0x2074 +db 0x49 ; 0140 dec cx +db 0x42 ; 0141 inc dx +db 0x4D ; 0142 dec bp +db 0x20, 0x43, 0x6F ; 0143 and [bp+di+0x6f],al +db 0x72, 0x70 ; 0146 jc 0x1b8 +db 0x20, 0x31 ; 0148 and [bx+di],dh +db 0x39, 0x38 ; 014A cmp [bx+si],di +db 0x31, 0x0D ; 014C xor [di],cx +db 0x0A, 0x24 ; 014E or ah,[si] +db 0x4C ; 0150 dec sp +db 0x69, 0x63, 0x65, 0x6E, 0x73 ; 0151 imul sp,[bp+di+0x65],word 0x736e +db 0x65, 0x64, 0x20, 0x4D, 0x61 ; 0156 and [fs:di+0x61],cl +db 0x74, 0x65 ; 015B jz 0x1c2 +db 0x72, 0x69 ; 015D jc 0x1c8 +db 0x61 ; 015F popa +db 0x6C ; 0160 insb +db 0x20, 0x2D ; 0161 and [di],ch +db 0x20, 0x50, 0x72 ; 0163 and [bx+si+0x72],dl +db 0x6F ; 0166 outsw +db 0x67, 0x72, 0x61 ; 0167 jc 0x1cb +db 0x6D ; 016A insw +db 0x20, 0x50, 0x72 ; 016B and [bx+si+0x72],dl +db 0x6F ; 016E outsw +db 0x70, 0x65 ; 016F jo 0x1d6 +db 0x72, 0x74 ; 0171 jc 0x1e7 +db 0x79, 0x20 ; 0173 jns 0x195 +db 0x6F ; 0175 outsw +db 0x66, 0x20, 0x49, 0x42 ; 0176 o32 and [bx+di+0x42],cl +db 0x4D ; 017A dec bp +db 0xBA, 0x5C, 0x09 ; 017B mov dx,0x95c +db 0xE9, 0xFB, 0x02 ; 017E jmp 0x47c +db 0xC6, 0x06, 0x7F, 0x0A, 0x00 ; 0181 mov byte [0xa7f],0x0 +db 0xBC, 0x48, 0x0D ; 0186 mov sp,0xd48 +db 0x82 ; 0189 db 0x82 +db 0x3E, 0x5D ; 018A ds pop bp +db 0x00, 0x20 ; 018C add [bx+si],ah +db 0x74, 0xEB ; 018E jz 0x17b +db 0x0A, 0xC0 ; 0190 or al,al +db 0xBA, 0x41, 0x09 ; 0192 mov dx,0x941 +db 0x75, 0xE7 ; 0195 jnz 0x17e +db 0xBE, 0x3E, 0x09 ; 0197 mov si,0x93e +db 0xBF, 0x65, 0x00 ; 019A mov di,0x65 +db 0xB9, 0x03, 0x00 ; 019D mov cx,0x3 +db 0xF3, 0xA6 ; 01A0 repe cmpsb +db 0x74, 0x42 ; 01A2 jz 0x1e6 +db 0xB4, 0x0F ; 01A4 mov ah,0xf +db 0xBA, 0x5C, 0x00 ; 01A6 mov dx,0x5c +db 0xCD, 0x21 ; 01A9 int 0x21 +db 0xA2, 0x7E, 0x0A ; 01AB mov [0xa7e],al +db 0x0A, 0xC0 ; 01AE or al,al +db 0x74, 0x07 ; 01B0 jz 0x1b9 +db 0xBA, 0x03, 0x0A ; 01B2 mov dx,0xa03 +db 0xB4, 0x09 ; 01B5 mov ah,0x9 +db 0xCD, 0x21 ; 01B7 int 0x21 +db 0xBE, 0x5C, 0x00 ; 01B9 mov si,0x5c +db 0xBF, 0x58, 0x0A ; 01BC mov di,0xa58 +db 0xB9, 0x09, 0x00 ; 01BF mov cx,0x9 +db 0xF3, 0xA4 ; 01C2 rep movsb +db 0xBE, 0x3E, 0x09 ; 01C4 mov si,0x93e +db 0xA5 ; 01C7 movsw +db 0xA4 ; 01C8 movsb +db 0xB4, 0x13 ; 01C9 mov ah,0x13 +db 0xBA, 0x58, 0x0A ; 01CB mov dx,0xa58 +db 0xCD, 0x21 ; 01CE int 0x21 +db 0xB0, 0x24 ; 01D0 mov al,0x24 +db 0xBF, 0x61, 0x0A ; 01D2 mov di,0xa61 +db 0xAA ; 01D5 stosb +db 0xAA ; 01D6 stosb +db 0xAA ; 01D7 stosb +db 0xB4, 0x16 ; 01D8 mov ah,0x16 +db 0xCD, 0x21 ; 01DA int 0x21 +db 0x0A, 0xC0 ; 01DC or al,al +db 0x74, 0x0C ; 01DE jz 0x1ec +db 0xBA, 0x9B, 0x09 ; 01E0 mov dx,0x99b +db 0xE9, 0x96, 0x02 ; 01E3 jmp 0x47c +db 0xBA, 0x78, 0x09 ; 01E6 mov dx,0x978 +db 0xE9, 0x90, 0x02 ; 01E9 jmp 0x47c +db 0x33, 0xC0 ; 01EC xor ax,ax +db 0xA3, 0x7D, 0x00 ; 01EE mov [0x7d],ax +db 0xA3, 0x7F, 0x00 ; 01F1 mov [0x7f],ax +db 0xA3, 0x79, 0x0A ; 01F4 mov [0xa79],ax +db 0xA3, 0x7B, 0x0A ; 01F7 mov [0xa7b],ax +db 0x40 ; 01FA inc ax +db 0xA3, 0x6A, 0x00 ; 01FB mov [0x6a],ax +db 0xA3, 0x66, 0x0A ; 01FE mov [0xa66],ax +db 0xBA, 0x49, 0x0D ; 0201 mov dx,0xd49 +db 0x8B, 0xFA ; 0204 mov di,dx +db 0xB4, 0x1A ; 0206 mov ah,0x1a +db 0xCD, 0x21 ; 0208 int 0x21 +db 0x8B, 0x0E, 0x06, 0x00 ; 020A mov cx,[0x6] +db 0x49 ; 020E dec cx +db 0x89, 0x0E, 0x98, 0x0A ; 020F mov [0xa98],cx +db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 0213 test byte [0xa7e],0xff +db 0x75, 0x26 ; 0218 jnz 0x240 +db 0x81, 0xE9, 0x49, 0x0D ; 021A sub cx,0xd49 +db 0xD1, 0xE9 ; 021E shr cx,1 +db 0x8B, 0xC1 ; 0220 mov ax,cx +db 0xD1, 0xE9 ; 0222 shr cx,1 +db 0x89, 0x0E, 0x94, 0x0A ; 0224 mov [0xa94],cx +db 0x03, 0xC8 ; 0228 add cx,ax +db 0x8B, 0xD1 ; 022A mov dx,cx +db 0x81, 0xC2, 0x49, 0x0D ; 022C add dx,0xd49 +db 0x89, 0x16, 0x96, 0x0A ; 0230 mov [0xa96],dx +db 0xBA, 0x5C, 0x00 ; 0234 mov dx,0x5c +db 0xB4, 0x27 ; 0237 mov ah,0x27 +db 0xCD, 0x21 ; 0239 int 0x21 +db 0xE8, 0x20, 0x01 ; 023B call 0x35e +db 0x03, 0xF9 ; 023E add di,cx +db 0xFC ; 0240 cld +db 0xC6, 0x05, 0x1A ; 0241 mov byte [di],0x1a +db 0x89, 0x3E, 0x9A, 0x0A ; 0244 mov [0xa9a],di +db 0xC6, 0x06, 0x9C, 0x0A, 0x80 ; 0248 mov byte [0xa9c],0x80 +db 0xC6, 0x06, 0x1E, 0x0C, 0xFF ; 024D mov byte [0xc1e],0xff +db 0xC6, 0x06, 0x48, 0x0D, 0x0A ; 0252 mov byte [0xd48],0xa +db 0xC7, 0x06, 0x92, 0x0A, 0x49, 0x0D ; 0257 mov word [0xa92],0xd49 +db 0xC7, 0x06, 0x90, 0x0A, 0x01, 0x00 ; 025D mov word [0xa90],0x1 +db 0xC7, 0x06, 0x80, 0x0A, 0x01, 0x00 ; 0263 mov word [0xa80],0x1 +db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 0269 test byte [0xa7e],0xff +db 0x75, 0x03 ; 026E jnz 0x273 +db 0xE8, 0xFD, 0x00 ; 0270 call 0x370 +db 0xBC, 0x48, 0x0D ; 0273 mov sp,0xd48 +db 0xB8, 0x23, 0x25 ; 0276 mov ax,0x2523 +db 0xBA, 0x2D, 0x09 ; 0279 mov dx,0x92d +db 0xCD, 0x21 ; 027C int 0x21 +db 0xB0, 0x2A ; 027E mov al,0x2a +db 0xE8, 0xA1, 0x06 ; 0280 call 0x924 +db 0xBA, 0x9C, 0x0A ; 0283 mov dx,0xa9c +db 0xB4, 0x0A ; 0286 mov ah,0xa +db 0xCD, 0x21 ; 0288 int 0x21 +db 0xB0, 0x0A ; 028A mov al,0xa +db 0xE8, 0x95, 0x06 ; 028C call 0x924 +db 0xC7, 0x06, 0x82, 0x0A, 0x00, 0x00 ; 028F mov word [0xa82],0x0 +db 0xC6, 0x06, 0x7D, 0x0A, 0x00 ; 0295 mov byte [0xa7d],0x0 +db 0xBE, 0x9E, 0x0A ; 029A mov si,0xa9e +db 0xE8, 0x59, 0x00 ; 029D call 0x2f9 +db 0x89, 0x16, 0x80, 0x0A ; 02A0 mov [0xa80],dx +db 0xE8, 0x43, 0x00 ; 02A4 call 0x2ea +db 0x3C, 0x2C ; 02A7 cmp al,0x2c +db 0x75, 0x01 ; 02A9 jnz 0x2ac +db 0x46 ; 02AB inc si +db 0x4E ; 02AC dec si +db 0xE8, 0x49, 0x00 ; 02AD call 0x2f9 +db 0x89, 0x16, 0x82, 0x0A ; 02B0 mov [0xa82],dx +db 0xE8, 0x33, 0x00 ; 02B4 call 0x2ea +db 0x3C, 0x3F ; 02B7 cmp al,0x3f +db 0x75, 0x06 ; 02B9 jnz 0x2c1 +db 0xA2, 0x7D, 0x0A ; 02BB mov [0xa7d],al +db 0xE8, 0x28, 0x00 ; 02BE call 0x2e9 +db 0x3C, 0x5F ; 02C1 cmp al,0x5f +db 0x76, 0x02 ; 02C3 jna 0x2c7 +db 0x24, 0x5F ; 02C5 and al,0x5f +db 0xBF, 0x40, 0x03 ; 02C7 mov di,0x340 +db 0xB9, 0x0A, 0x00 ; 02CA mov cx,0xa +db 0xF2, 0xAE ; 02CD repne scasb +db 0x75, 0x1E ; 02CF jnz 0x2ef +db 0x8B, 0xD9 ; 02D1 mov bx,cx +db 0xA1, 0x82, 0x0A ; 02D3 mov ax,[0xa82] +db 0x0B, 0xC0 ; 02D6 or ax,ax +db 0x74, 0x06 ; 02D8 jz 0x2e0 +db 0x3B, 0x06, 0x80, 0x0A ; 02DA cmp ax,[0xa80] +db 0x72, 0x0F ; 02DE jc 0x2ef +db 0xD1, 0xE3 ; 02E0 shl bx,1 +db 0xFF, 0x97, 0x4A, 0x03 ; 02E2 call [bx+0x34a] +db 0xE9, 0x8A, 0xFF ; 02E6 jmp 0x273 +db 0xAC ; 02E9 lodsb +db 0x3C, 0x20 ; 02EA cmp al,0x20 +db 0x74, 0xFB ; 02EC jz 0x2e9 +db 0xC3 ; 02EE ret +db 0xBA, 0xF5, 0x09 ; 02EF mov dx,0x9f5 +db 0xB4, 0x09 ; 02F2 mov ah,0x9 +db 0xCD, 0x21 ; 02F4 int 0x21 +db 0xE9, 0x7A, 0xFF ; 02F6 jmp 0x273 +db 0xE8, 0xED, 0xFF ; 02F9 call 0x2e9 +db 0x3C, 0x2E ; 02FC cmp al,0x2e +db 0x74, 0x35 ; 02FE jz 0x335 +db 0x3C, 0x23 ; 0300 cmp al,0x23 +db 0x74, 0x37 ; 0302 jz 0x33b +db 0xBA, 0x00, 0x00 ; 0304 mov dx,0x0 +db 0xB1, 0x00 ; 0307 mov cl,0x0 +db 0x3C, 0x30 ; 0309 cmp al,0x30 +db 0x72, 0x1E ; 030B jc 0x32b +db 0x3C, 0x39 ; 030D cmp al,0x39 +db 0x77, 0x1A ; 030F ja 0x32b +db 0x81, 0xFA, 0x99, 0x19 ; 0311 cmp dx,0x1999 +db 0x73, 0xD8 ; 0315 jnc 0x2ef +db 0xB1, 0x01 ; 0317 mov cl,0x1 +db 0x2C, 0x30 ; 0319 sub al,0x30 +db 0x8B, 0xDA ; 031B mov bx,dx +db 0xD1, 0xE2 ; 031D shl dx,1 +db 0xD1, 0xE2 ; 031F shl dx,1 +db 0x03, 0xD3 ; 0321 add dx,bx +db 0xD1, 0xE2 ; 0323 shl dx,1 +db 0x98 ; 0325 cbw +db 0x03, 0xD0 ; 0326 add dx,ax +db 0xAC ; 0328 lodsb +db 0xEB, 0xDE ; 0329 jmp short 0x309 +db 0x82 ; 032B db 0x82 +db 0xF9 ; 032C stc +db 0x00, 0x74, 0xBE ; 032D add [si-0x42],dh +db 0x0B, 0xD2 ; 0330 or dx,dx +db 0x74, 0xBB ; 0332 jz 0x2ef +db 0xC3 ; 0334 ret +db 0x8B, 0x16, 0x90, 0x0A ; 0335 mov dx,[0xa90] +db 0xAC ; 0339 lodsb +db 0xC3 ; 033A ret +db 0xBA, 0xFE, 0xFF ; 033B mov dx,0xfffe +db 0xAC ; 033E lodsb +db 0xC3 ; 033F ret +db 0x51 ; 0340 push cx +db 0x57 ; 0341 push di +db 0x41 ; 0342 inc cx +db 0x53 ; 0343 push bx +db 0x52 ; 0344 push dx +db 0x44 ; 0345 inc sp +db 0x4C ; 0346 dec sp +db 0x49 ; 0347 dec cx +db 0x45 ; 0348 inc bp +db 0x0D, 0x85, 0x07 ; 0349 or ax,0x785 +db 0xCD, 0x08 ; 034C int 0x8 +db 0x16 ; 034E push ss +db 0x08, 0x0E, 0x05, 0x4E ; 034F or [0x4e05],cl +db 0x07 ; 0353 pop es +db 0x96 ; 0354 xchg ax,si +db 0x05, 0x27, 0x06 ; 0355 add ax,0x627 +db 0x70, 0x03 ; 0358 jo 0x35d +db 0x17 ; 035A pop ss +db 0x04, 0xA6 ; 035B add al,0xa6 +db 0x08, 0x57, 0x51 ; 035D or [bx+0x51],dl +db 0xB0, 0x1A ; 0360 mov al,0x1a +db 0xF2, 0xAE ; 0362 repne scasb +db 0x8B, 0xF9 ; 0364 mov di,cx +db 0x59 ; 0366 pop cx +db 0x9F ; 0367 lahf +db 0x2B, 0xCF ; 0368 sub cx,di +db 0x9E ; 036A sahf +db 0x5F ; 036B pop di +db 0xC3 ; 036C ret +db 0xE9, 0x8E, 0x00 ; 036D jmp 0x3fe +db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 0370 test byte [0xa7e],0xff +db 0x75, 0xF6 ; 0375 jnz 0x36d +db 0x8B, 0x16, 0x9A, 0x0A ; 0377 mov dx,[0xa9a] +db 0x83, 0x3E, 0x80, 0x0A, 0x00 ; 037B cmp word [0xa80],byte +0x0 +db 0x75, 0x06 ; 0380 jnz 0x388 +db 0x3B, 0x16, 0x96, 0x0A ; 0382 cmp dx,[0xa96] +db 0x73, 0xE4 ; 0386 jnc 0x36c +db 0x8B, 0xFA ; 0388 mov di,dx +db 0xB4, 0x1A ; 038A mov ah,0x1a +db 0xCD, 0x21 ; 038C int 0x21 +db 0x8B, 0x0E, 0x98, 0x0A ; 038E mov cx,[0xa98] +db 0x2B, 0xCA ; 0392 sub cx,dx +db 0x74, 0x7E ; 0394 jz 0x414 +db 0xBA, 0x5C, 0x00 ; 0396 mov dx,0x5c +db 0xB4, 0x27 ; 0399 mov ah,0x27 +db 0xCD, 0x21 ; 039B int 0x21 +db 0xA2, 0x7E, 0x0A ; 039D mov [0xa7e],al +db 0x51 ; 03A0 push cx +db 0xE8, 0xBA, 0xFF ; 03A1 call 0x35e +db 0x75, 0x05 ; 03A4 jnz 0x3ab +db 0xC6, 0x06, 0x7E, 0x0A, 0x01 ; 03A6 mov byte [0xa7e],0x1 +db 0x33, 0xD2 ; 03AB xor dx,dx +db 0x8B, 0x1E, 0x80, 0x0A ; 03AD mov bx,[0xa80] +db 0x0B, 0xDB ; 03B1 or bx,bx +db 0x75, 0x15 ; 03B3 jnz 0x3ca +db 0x8B, 0xC7 ; 03B5 mov ax,di +db 0x03, 0xC1 ; 03B7 add ax,cx +db 0x3B, 0x06, 0x96, 0x0A ; 03B9 cmp ax,[0xa96] +db 0x76, 0x0B ; 03BD jna 0x3ca +db 0x8B, 0x3E, 0x96, 0x0A ; 03BF mov di,[0xa96] +db 0x8B, 0xC8 ; 03C3 mov cx,ax +db 0x2B, 0xCF ; 03C5 sub cx,di +db 0xBB, 0x01, 0x00 ; 03C7 mov bx,0x1 +db 0xE8, 0xD7, 0x00 ; 03CA call 0x4a4 +db 0x38, 0x45, 0xFF ; 03CD cmp [di-0x1],al +db 0x74, 0x0C ; 03D0 jz 0x3de +db 0xFD ; 03D2 std +db 0x4F ; 03D3 dec di +db 0x8B, 0x0E, 0x98, 0x0A ; 03D4 mov cx,[0xa98] +db 0xF2, 0xAE ; 03D8 repne scasb +db 0x47 ; 03DA inc di +db 0x47 ; 03DB inc di +db 0x4A ; 03DC dec dx +db 0xFC ; 03DD cld +db 0x59 ; 03DE pop cx +db 0xC7, 0x05, 0x1A, 0x00 ; 03DF mov word [di],0x1a +db 0x2B, 0xCF ; 03E3 sub cx,di +db 0x87, 0x3E, 0x9A, 0x0A ; 03E5 xchg di,[0xa9a] +db 0x03, 0xF9 ; 03E9 add di,cx +db 0x29, 0x3E, 0x7D, 0x00 ; 03EB sub [0x7d],di +db 0x83, 0x1E, 0x7F, 0x00, 0x00 ; 03EF sbb word [0x7f],byte +0x0 +db 0x3B, 0xDA ; 03F4 cmp bx,dx +db 0x75, 0x0E ; 03F6 jnz 0x406 +db 0xC6, 0x06, 0x7E, 0x0A, 0x00 ; 03F8 mov byte [0xa7e],0x0 +db 0xC3 ; 03FD ret +db 0xBA, 0x31, 0x0A ; 03FE mov dx,0xa31 +db 0xB4, 0x09 ; 0401 mov ah,0x9 +db 0xCD, 0x21 ; 0403 int 0x21 +db 0xC3 ; 0405 ret +db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 0406 test byte [0xa7e],0xff +db 0x75, 0xF1 ; 040B jnz 0x3fe +db 0xF6, 0x06, 0x7F, 0x0A, 0xFF ; 040D test byte [0xa7f],0xff +db 0x75, 0xF1 ; 0412 jnz 0x405 +db 0xE9, 0xF5, 0x03 ; 0414 jmp 0x80c +db 0x8B, 0x1E, 0x80, 0x0A ; 0417 mov bx,[0xa80] +db 0x0B, 0xDB ; 041B or bx,bx +db 0x75, 0x1C ; 041D jnz 0x43b +db 0x8B, 0x0E, 0x94, 0x0A ; 041F mov cx,[0xa94] +db 0x8B, 0x3E, 0x9A, 0x0A ; 0423 mov di,[0xa9a] +db 0x2B, 0xF9 ; 0427 sub di,cx +db 0x76, 0xDA ; 0429 jna 0x405 +db 0x81, 0xFF, 0x49, 0x0D ; 042B cmp di,0xd49 +db 0x76, 0xD4 ; 042F jna 0x405 +db 0x33, 0xD2 ; 0431 xor dx,dx +db 0xBB, 0x01, 0x00 ; 0433 mov bx,0x1 +db 0xE8, 0x6B, 0x00 ; 0436 call 0x4a4 +db 0xEB, 0x04 ; 0439 jmp short 0x43f +db 0x43 ; 043B inc bx +db 0xE8, 0x43, 0x00 ; 043C call 0x482 +db 0x8B, 0xCF ; 043F mov cx,di +db 0xBA, 0x49, 0x0D ; 0441 mov dx,0xd49 +db 0x2B, 0xCA ; 0444 sub cx,dx +db 0x74, 0xBD ; 0446 jz 0x405 +db 0xB4, 0x1A ; 0448 mov ah,0x1a +db 0xCD, 0x21 ; 044A int 0x21 +db 0xBA, 0x58, 0x0A ; 044C mov dx,0xa58 +db 0xB4, 0x28 ; 044F mov ah,0x28 +db 0xCD, 0x21 ; 0451 int 0x21 +db 0x0A, 0xC0 ; 0453 or al,al +db 0x75, 0x1E ; 0455 jnz 0x475 +db 0x8B, 0xF7 ; 0457 mov si,di +db 0xBF, 0x49, 0x0D ; 0459 mov di,0xd49 +db 0x89, 0x3E, 0x92, 0x0A ; 045C mov [0xa92],di +db 0x8B, 0x0E, 0x9A, 0x0A ; 0460 mov cx,[0xa9a] +db 0x2B, 0xCE ; 0464 sub cx,si +db 0x41 ; 0466 inc cx +db 0xF3, 0xA4 ; 0467 rep movsb +db 0x4F ; 0469 dec di +db 0x89, 0x3E, 0x9A, 0x0A ; 046A mov [0xa9a],di +db 0xC7, 0x06, 0x90, 0x0A, 0x01, 0x00 ; 046E mov word [0xa90],0x1 +db 0xC3 ; 0474 ret +db 0xB4, 0x10 ; 0475 mov ah,0x10 +db 0xCD, 0x21 ; 0477 int 0x21 +db 0xBA, 0xB9, 0x09 ; 0479 mov dx,0x9b9 +db 0xB4, 0x09 ; 047C mov ah,0x9 +db 0xCD, 0x21 ; 047E int 0x21 +db 0xCD, 0x20 ; 0480 int 0x20 +db 0x8B, 0x16, 0x90, 0x0A ; 0482 mov dx,[0xa90] +db 0x8B, 0x3E, 0x92, 0x0A ; 0486 mov di,[0xa92] +db 0x3B, 0xDA ; 048A cmp bx,dx +db 0x74, 0xE6 ; 048C jz 0x474 +db 0x77, 0x0E ; 048E ja 0x49e +db 0x0B, 0xDB ; 0490 or bx,bx +db 0x74, 0x0A ; 0492 jz 0x49e +db 0xBA, 0x01, 0x00 ; 0494 mov dx,0x1 +db 0xBF, 0x49, 0x0D ; 0497 mov di,0xd49 +db 0x3B, 0xDA ; 049A cmp bx,dx +db 0x74, 0xD6 ; 049C jz 0x474 +db 0x8B, 0x0E, 0x9A, 0x0A ; 049E mov cx,[0xa9a] +db 0x2B, 0xCF ; 04A2 sub cx,di +db 0xB0, 0x0A ; 04A4 mov al,0xa +db 0x0A, 0xC0 ; 04A6 or al,al +db 0xE3, 0xCA ; 04A8 jcxz 0x474 +db 0xF2, 0xAE ; 04AA repne scasb +db 0x42 ; 04AC inc dx +db 0x3B, 0xDA ; 04AD cmp bx,dx +db 0x75, 0xF7 ; 04AF jnz 0x4a8 +db 0xC3 ; 04B1 ret +db 0x53 ; 04B2 push bx +db 0xB0, 0x20 ; 04B3 mov al,0x20 +db 0xE8, 0x6C, 0x04 ; 04B5 call 0x924 +db 0xE8, 0x13, 0x00 ; 04B8 call 0x4ce +db 0xB0, 0x3A ; 04BB mov al,0x3a +db 0xE8, 0x64, 0x04 ; 04BD call 0x924 +db 0xB0, 0x2A ; 04C0 mov al,0x2a +db 0x5B ; 04C2 pop bx +db 0x3B, 0x1E, 0x90, 0x0A ; 04C3 cmp bx,[0xa90] +db 0x74, 0x02 ; 04C7 jz 0x4cb +db 0xB0, 0x20 ; 04C9 mov al,0x20 +db 0xE9, 0x56, 0x04 ; 04CB jmp 0x924 +db 0x33, 0xC0 ; 04CE xor ax,ax +db 0x8A, 0xD0 ; 04D0 mov dl,al +db 0xB9, 0x10, 0x00 ; 04D2 mov cx,0x10 +db 0xD1, 0xE3 ; 04D5 shl bx,1 +db 0x12, 0xC0 ; 04D7 adc al,al +db 0x27 ; 04D9 daa +db 0x86, 0xC4 ; 04DA xchg al,ah +db 0x12, 0xC0 ; 04DC adc al,al +db 0x27 ; 04DE daa +db 0x86, 0xC4 ; 04DF xchg al,ah +db 0x12, 0xD2 ; 04E1 adc dl,dl +db 0xE2, 0xF0 ; 04E3 loop 0x4d5 +db 0xB3, 0x10 ; 04E5 mov bl,0x10 +db 0x92 ; 04E7 xchg ax,dx +db 0xE8, 0x16, 0x00 ; 04E8 call 0x501 +db 0x8A, 0xC6 ; 04EB mov al,dh +db 0xE8, 0x02, 0x00 ; 04ED call 0x4f2 +db 0x8A, 0xC2 ; 04F0 mov al,dl +db 0x8A, 0xF0 ; 04F2 mov dh,al +db 0xD0, 0xE8 ; 04F4 shr al,1 +db 0xD0, 0xE8 ; 04F6 shr al,1 +db 0xD0, 0xE8 ; 04F8 shr al,1 +db 0xD0, 0xE8 ; 04FA shr al,1 +db 0xE8, 0x02, 0x00 ; 04FC call 0x501 +db 0x8A, 0xC6 ; 04FF mov al,dh +db 0x24, 0x0F ; 0501 and al,0xf +db 0x74, 0x02 ; 0503 jz 0x507 +db 0xB3, 0x00 ; 0505 mov bl,0x0 +db 0x04, 0x30 ; 0507 add al,0x30 +db 0x2A, 0xC3 ; 0509 sub al,bl +db 0xE9, 0x16, 0x04 ; 050B jmp 0x924 +db 0x8B, 0x1E, 0x80, 0x0A ; 050E mov bx,[0xa80] +db 0x0B, 0xDB ; 0512 or bx,bx +db 0x75, 0x0C ; 0514 jnz 0x522 +db 0x8B, 0x1E, 0x90, 0x0A ; 0516 mov bx,[0xa90] +db 0x83, 0xEB, 0x0B ; 051A sub bx,byte +0xb +db 0x77, 0x03 ; 051D ja 0x522 +db 0xBB, 0x01, 0x00 ; 051F mov bx,0x1 +db 0xE8, 0x5D, 0xFF ; 0522 call 0x482 +db 0x75, 0x8A ; 0525 jnz 0x4b1 +db 0x8B, 0xF7 ; 0527 mov si,di +db 0x8B, 0x3E, 0x82, 0x0A ; 0529 mov di,[0xa82] +db 0x47 ; 052D inc di +db 0x2B, 0xFB ; 052E sub di,bx +db 0x77, 0x08 ; 0530 ja 0x53a +db 0xBF, 0x17, 0x00 ; 0532 mov di,0x17 +db 0xEB, 0x03 ; 0535 jmp short 0x53a +db 0xBF, 0x01, 0x00 ; 0537 mov di,0x1 +db 0x8B, 0x0E, 0x9A, 0x0A ; 053A mov cx,[0xa9a] +db 0x2B, 0xCE ; 053E sub cx,si +db 0x74, 0x31 ; 0540 jz 0x573 +db 0x8B, 0x2E, 0x90, 0x0A ; 0542 mov bp,[0xa90] +db 0x51 ; 0546 push cx +db 0xE8, 0x68, 0xFF ; 0547 call 0x4b2 +db 0x59 ; 054A pop cx +db 0xAC ; 054B lodsb +db 0x3C, 0x20 ; 054C cmp al,0x20 +db 0x73, 0x15 ; 054E jnc 0x565 +db 0x3C, 0x0A ; 0550 cmp al,0xa +db 0x74, 0x11 ; 0552 jz 0x565 +db 0x3C, 0x0D ; 0554 cmp al,0xd +db 0x74, 0x0D ; 0556 jz 0x565 +db 0x3C, 0x09 ; 0558 cmp al,0x9 +db 0x74, 0x09 ; 055A jz 0x565 +db 0x50 ; 055C push ax +db 0xB0, 0x5E ; 055D mov al,0x5e +db 0xE8, 0xC2, 0x03 ; 055F call 0x924 +db 0x58 ; 0562 pop ax +db 0x0C, 0x40 ; 0563 or al,0x40 +db 0xE8, 0xBC, 0x03 ; 0565 call 0x924 +db 0x3C, 0x0A ; 0568 cmp al,0xa +db 0xE0, 0xDF ; 056A loopne 0x54b +db 0xE3, 0x05 ; 056C jcxz 0x573 +db 0x43 ; 056E inc bx +db 0x4F ; 056F dec di +db 0x75, 0xD4 ; 0570 jnz 0x546 +db 0x4B ; 0572 dec bx +db 0xC3 ; 0573 ret +db 0xBF, 0x20, 0x0C ; 0574 mov di,0xc20 +db 0xB9, 0xFF, 0x00 ; 0577 mov cx,0xff +db 0xBA, 0xFF, 0xFF ; 057A mov dx,0xffff +db 0xAC ; 057D lodsb +db 0xAA ; 057E stosb +db 0x42 ; 057F inc dx +db 0x3C, 0x0D ; 0580 cmp al,0xd +db 0xE0, 0xF9 ; 0582 loopne 0x57d +db 0x88, 0x16, 0x1F, 0x0C ; 0584 mov [0xc1f],dl +db 0x74, 0xE9 ; 0588 jz 0x573 +db 0xAC ; 058A lodsb +db 0x42 ; 058B inc dx +db 0x3C, 0x0D ; 058C cmp al,0xd +db 0x75, 0xFA ; 058E jnz 0x58a +db 0x4F ; 0590 dec di +db 0xAA ; 0591 stosb +db 0xC3 ; 0592 ret +db 0xE9, 0xC9, 0x00 ; 0593 jmp 0x65f +db 0xE8, 0xFD, 0x00 ; 0596 call 0x696 +db 0x75, 0xF8 ; 0599 jnz 0x593 +db 0x8B, 0x36, 0x8C, 0x0A ; 059B mov si,[0xa8c] +db 0xE8, 0xD2, 0xFF ; 059F call 0x574 +db 0x2B, 0x16, 0x84, 0x0A ; 05A2 sub dx,[0xa84] +db 0x8B, 0x0E, 0x86, 0x0A ; 05A6 mov cx,[0xa86] +db 0x03, 0xD1 ; 05AA add dx,cx +db 0x81, 0xFA, 0xFE, 0x00 ; 05AC cmp dx,0xfe +db 0x77, 0x70 ; 05B0 ja 0x622 +db 0x8B, 0x1E, 0x8A, 0x0A ; 05B2 mov bx,[0xa8a] +db 0x52 ; 05B6 push dx +db 0xE8, 0xF8, 0xFE ; 05B7 call 0x4b2 +db 0x5A ; 05BA pop dx +db 0x8B, 0x0E, 0x88, 0x0A ; 05BB mov cx,[0xa88] +db 0x8B, 0x36, 0x8C, 0x0A ; 05BF mov si,[0xa8c] +db 0x2B, 0xCE ; 05C3 sub cx,si +db 0x49 ; 05C5 dec cx +db 0xE8, 0x4F, 0x00 ; 05C6 call 0x618 +db 0x56 ; 05C9 push si +db 0xBE, 0x9E, 0x0B ; 05CA mov si,0xb9e +db 0x8B, 0x0E, 0x86, 0x0A ; 05CD mov cx,[0xa86] +db 0xE8, 0x44, 0x00 ; 05D1 call 0x618 +db 0x5E ; 05D4 pop si +db 0x03, 0x36, 0x84, 0x0A ; 05D5 add si,[0xa84] +db 0x8B, 0xCA ; 05D9 mov cx,dx +db 0x83, 0xC1, 0x02 ; 05DB add cx,byte +0x2 +db 0xE8, 0x37, 0x00 ; 05DE call 0x618 +db 0xE8, 0x90, 0x00 ; 05E1 call 0x674 +db 0x75, 0x2A ; 05E4 jnz 0x610 +db 0xE8, 0x7E, 0x00 ; 05E6 call 0x667 +db 0x8B, 0x3E, 0x88, 0x0A ; 05E9 mov di,[0xa88] +db 0x4F ; 05ED dec di +db 0xBE, 0x9E, 0x0B ; 05EE mov si,0xb9e +db 0x8B, 0x16, 0x84, 0x0A ; 05F1 mov dx,[0xa84] +db 0x8B, 0x0E, 0x86, 0x0A ; 05F5 mov cx,[0xa86] +db 0x49 ; 05F9 dec cx +db 0x01, 0x0E, 0x88, 0x0A ; 05FA add [0xa88],cx +db 0x41 ; 05FE inc cx +db 0x4A ; 05FF dec dx +db 0x29, 0x16, 0x8E, 0x0A ; 0600 sub [0xa8e],dx +db 0x73, 0x06 ; 0604 jnc 0x60c +db 0xC7, 0x06, 0x8E, 0x0A, 0x00, 0x00 ; 0606 mov word [0xa8e],0x0 +db 0x42 ; 060C inc dx +db 0xE8, 0xC7, 0x01 ; 060D call 0x7d7 +db 0xE8, 0xDC, 0x00 ; 0610 call 0x6ef +db 0x75, 0x0C ; 0613 jnz 0x621 +db 0xE9, 0x83, 0xFF ; 0615 jmp 0x59b +db 0xE3, 0x07 ; 0618 jcxz 0x621 +db 0xAC ; 061A lodsb +db 0xE8, 0x06, 0x03 ; 061B call 0x924 +db 0x4A ; 061E dec dx +db 0xE2, 0xF9 ; 061F loop 0x61a +db 0xC3 ; 0621 ret +db 0xBA, 0x21, 0x0A ; 0622 mov dx,0xa21 +db 0xEB, 0x3B ; 0625 jmp short 0x662 +db 0xE8, 0x6C, 0x00 ; 0627 call 0x696 +db 0x75, 0x33 ; 062A jnz 0x65f +db 0x8B, 0x1E, 0x8A, 0x0A ; 062C mov bx,[0xa8a] +db 0x8B, 0x36, 0x8C, 0x0A ; 0630 mov si,[0xa8c] +db 0xE8, 0x00, 0xFF ; 0634 call 0x537 +db 0xE8, 0x3A, 0x00 ; 0637 call 0x674 +db 0x74, 0x2B ; 063A jz 0x667 +db 0x8B, 0x3E, 0x88, 0x0A ; 063C mov di,[0xa88] +db 0x8B, 0x0E, 0x8E, 0x0A ; 0640 mov cx,[0xa8e] +db 0xB0, 0x0A ; 0644 mov al,0xa +db 0xF2, 0xAE ; 0646 repne scasb +db 0x75, 0x15 ; 0648 jnz 0x65f +db 0x89, 0x3E, 0x88, 0x0A ; 064A mov [0xa88],di +db 0x89, 0x3E, 0x8C, 0x0A ; 064E mov [0xa8c],di +db 0x89, 0x0E, 0x8E, 0x0A ; 0652 mov [0xa8e],cx +db 0xFF, 0x06, 0x8A, 0x0A ; 0656 inc word [0xa8a] +db 0xE8, 0x92, 0x00 ; 065A call 0x6ef +db 0x74, 0xCD ; 065D jz 0x62c +db 0xBA, 0x0E, 0x0A ; 065F mov dx,0xa0e +db 0xB4, 0x09 ; 0662 mov ah,0x9 +db 0xCD, 0x21 ; 0664 int 0x21 +db 0xC3 ; 0666 ret +db 0xA1, 0x8C, 0x0A ; 0667 mov ax,[0xa8c] +db 0xA3, 0x92, 0x0A ; 066A mov [0xa92],ax +db 0xA1, 0x8A, 0x0A ; 066D mov ax,[0xa8a] +db 0xA3, 0x90, 0x0A ; 0670 mov [0xa90],ax +db 0xC3 ; 0673 ret +db 0xF6, 0x06, 0x7D, 0x0A, 0xFF ; 0674 test byte [0xa7d],0xff +db 0x74, 0xF8 ; 0679 jz 0x673 +db 0xBA, 0x1A, 0x0A ; 067B mov dx,0xa1a +db 0xB4, 0x09 ; 067E mov ah,0x9 +db 0xCD, 0x21 ; 0680 int 0x21 +db 0xB4, 0x01 ; 0682 mov ah,0x1 +db 0xCD, 0x21 ; 0684 int 0x21 +db 0x50 ; 0686 push ax +db 0xE8, 0x93, 0x02 ; 0687 call 0x91d +db 0x58 ; 068A pop ax +db 0x3C, 0x0D ; 068B cmp al,0xd +db 0x74, 0xE4 ; 068D jz 0x673 +db 0x3C, 0x59 ; 068F cmp al,0x59 +db 0x74, 0xE0 ; 0691 jz 0x673 +db 0x3C, 0x79 ; 0693 cmp al,0x79 +db 0xC3 ; 0695 ret +db 0xBF, 0x1E, 0x0B ; 0696 mov di,0xb1e +db 0xE8, 0xA3, 0x00 ; 0699 call 0x73f +db 0x0A, 0xC0 ; 069C or al,al +db 0xE3, 0xF5 ; 069E jcxz 0x695 +db 0x89, 0x0E, 0x84, 0x0A ; 06A0 mov [0xa84],cx +db 0x33, 0xC9 ; 06A4 xor cx,cx +db 0x3C, 0x0D ; 06A6 cmp al,0xd +db 0x74, 0x06 ; 06A8 jz 0x6b0 +db 0xBF, 0x9E, 0x0B ; 06AA mov di,0xb9e +db 0xE8, 0x8F, 0x00 ; 06AD call 0x73f +db 0x89, 0x0E, 0x86, 0x0A ; 06B0 mov [0xa86],cx +db 0x8B, 0x1E, 0x80, 0x0A ; 06B4 mov bx,[0xa80] +db 0x83, 0xFB, 0x01 ; 06B8 cmp bx,byte +0x1 +db 0x83, 0xD3, 0x00 ; 06BB adc bx,byte +0x0 +db 0xE8, 0xC1, 0xFD ; 06BE call 0x482 +db 0x89, 0x3E, 0x88, 0x0A ; 06C1 mov [0xa88],di +db 0x89, 0x3E, 0x8C, 0x0A ; 06C5 mov [0xa8c],di +db 0x89, 0x16, 0x8A, 0x0A ; 06C9 mov [0xa8a],dx +db 0x8B, 0x1E, 0x82, 0x0A ; 06CD mov bx,[0xa82] +db 0x83, 0xFB, 0x01 ; 06D1 cmp bx,byte +0x1 +db 0x83, 0xDB, 0xFF ; 06D4 sbb bx,byte -0x1 +db 0xE8, 0xA8, 0xFD ; 06D7 call 0x482 +db 0x8B, 0xCF ; 06DA mov cx,di +db 0x2B, 0x0E, 0x88, 0x0A ; 06DC sub cx,[0xa88] +db 0x0C, 0xFF ; 06E0 or al,0xff +db 0xE3, 0xB1 ; 06E2 jcxz 0x695 +db 0x2B, 0x0E, 0x84, 0x0A ; 06E4 sub cx,[0xa84] +db 0x72, 0xAB ; 06E8 jc 0x695 +db 0x41 ; 06EA inc cx +db 0x89, 0x0E, 0x8E, 0x0A ; 06EB mov [0xa8e],cx +db 0xA0, 0x1E, 0x0B ; 06EF mov al,[0xb1e] +db 0x8B, 0x0E, 0x8E, 0x0A ; 06F2 mov cx,[0xa8e] +db 0x8B, 0x3E, 0x88, 0x0A ; 06F6 mov di,[0xa88] +db 0x0B, 0xFF ; 06FA or di,di +db 0xF2, 0xAE ; 06FC repne scasb +db 0x75, 0x95 ; 06FE jnz 0x695 +db 0x8B, 0xD1 ; 0700 mov dx,cx +db 0x8B, 0xDF ; 0702 mov bx,di +db 0x8B, 0x0E, 0x84, 0x0A ; 0704 mov cx,[0xa84] +db 0x49 ; 0708 dec cx +db 0xBE, 0x1F, 0x0B ; 0709 mov si,0xb1f +db 0x3A, 0xC0 ; 070C cmp al,al +db 0xF3, 0xA6 ; 070E repe cmpsb +db 0x8B, 0xCA ; 0710 mov cx,dx +db 0x8B, 0xFB ; 0712 mov di,bx +db 0x75, 0xE4 ; 0714 jnz 0x6fa +db 0x89, 0x0E, 0x8E, 0x0A ; 0716 mov [0xa8e],cx +db 0x8B, 0xCF ; 071A mov cx,di +db 0x89, 0x3E, 0x88, 0x0A ; 071C mov [0xa88],di +db 0x8B, 0x3E, 0x8C, 0x0A ; 0720 mov di,[0xa8c] +db 0x2B, 0xCF ; 0724 sub cx,di +db 0xB0, 0x0A ; 0726 mov al,0xa +db 0x8B, 0x16, 0x8A, 0x0A ; 0728 mov dx,[0xa8a] +db 0x42 ; 072C inc dx +db 0x8B, 0xDF ; 072D mov bx,di +db 0xF2, 0xAE ; 072F repne scasb +db 0x74, 0xF9 ; 0731 jz 0x72c +db 0x4A ; 0733 dec dx +db 0x89, 0x16, 0x8A, 0x0A ; 0734 mov [0xa8a],dx +db 0x89, 0x1E, 0x8C, 0x0A ; 0738 mov [0xa8c],bx +db 0x32, 0xC0 ; 073C xor al,al +db 0xC3 ; 073E ret +db 0x33, 0xC9 ; 073F xor cx,cx +db 0xAC ; 0741 lodsb +db 0x3C, 0x1A ; 0742 cmp al,0x1a +db 0x74, 0xF8 ; 0744 jz 0x73e +db 0x3C, 0x0D ; 0746 cmp al,0xd +db 0x74, 0xF4 ; 0748 jz 0x73e +db 0xAA ; 074A stosb +db 0x41 ; 074B inc cx +db 0xEB, 0xF3 ; 074C jmp short 0x741 +db 0x8B, 0x1E, 0x80, 0x0A ; 074E mov bx,[0xa80] +db 0x0B, 0xDB ; 0752 or bx,bx +db 0x75, 0x04 ; 0754 jnz 0x75a +db 0x8B, 0x1E, 0x90, 0x0A ; 0756 mov bx,[0xa90] +db 0xE8, 0x25, 0xFD ; 075A call 0x482 +db 0x75, 0xDF ; 075D jnz 0x73e +db 0x53 ; 075F push bx +db 0x57 ; 0760 push di +db 0x8B, 0x1E, 0x82, 0x0A ; 0761 mov bx,[0xa82] +db 0x0B, 0xDB ; 0765 or bx,bx +db 0x75, 0x02 ; 0767 jnz 0x76b +db 0x8B, 0xDA ; 0769 mov bx,dx +db 0x43 ; 076B inc bx +db 0xE8, 0x13, 0xFD ; 076C call 0x482 +db 0x8B, 0xD7 ; 076F mov dx,di +db 0x5F ; 0771 pop di +db 0x2B, 0xD7 ; 0772 sub dx,di +db 0x76, 0x0C ; 0774 jna 0x782 +db 0x8F, 0x06, 0x90, 0x0A ; 0776 pop word [0xa90] +db 0x89, 0x3E, 0x92, 0x0A ; 077A mov [0xa92],di +db 0x33, 0xC9 ; 077E xor cx,cx +db 0xEB, 0x55 ; 0780 jmp short 0x7d7 +db 0xE9, 0x6A, 0xFB ; 0782 jmp 0x2ef +db 0x8B, 0x1E, 0x80, 0x0A ; 0785 mov bx,[0xa80] +db 0x0B, 0xDB ; 0789 or bx,bx +db 0x75, 0x05 ; 078B jnz 0x792 +db 0x8B, 0x1E, 0x90, 0x0A ; 078D mov bx,[0xa90] +db 0x43 ; 0791 inc bx +db 0xE8, 0xED, 0xFC ; 0792 call 0x482 +db 0x8B, 0xF7 ; 0795 mov si,di +db 0x89, 0x16, 0x90, 0x0A ; 0797 mov [0xa90],dx +db 0x89, 0x36, 0x92, 0x0A ; 079B mov [0xa92],si +db 0x75, 0x9D ; 079F jnz 0x73e +db 0x3B, 0x36, 0x9A, 0x0A ; 07A1 cmp si,[0xa9a] +db 0x74, 0x97 ; 07A5 jz 0x73e +db 0xE8, 0xCA, 0xFD ; 07A7 call 0x574 +db 0x89, 0x16, 0x84, 0x0A ; 07AA mov [0xa84],dx +db 0x8B, 0x36, 0x92, 0x0A ; 07AE mov si,[0xa92] +db 0xE8, 0x82, 0xFD ; 07B2 call 0x537 +db 0xE8, 0xFA, 0xFC ; 07B5 call 0x4b2 +db 0xB4, 0x0A ; 07B8 mov ah,0xa +db 0xBA, 0x1E, 0x0C ; 07BA mov dx,0xc1e +db 0xCD, 0x21 ; 07BD int 0x21 +db 0xB0, 0x0A ; 07BF mov al,0xa +db 0xE8, 0x60, 0x01 ; 07C1 call 0x924 +db 0x8A, 0x0E, 0x1F, 0x0C ; 07C4 mov cl,[0xc1f] +db 0xB5, 0x00 ; 07C8 mov ch,0x0 +db 0xE3, 0x3F ; 07CA jcxz 0x80b +db 0x8B, 0x16, 0x84, 0x0A ; 07CC mov dx,[0xa84] +db 0xBE, 0x20, 0x0C ; 07D0 mov si,0xc20 +db 0x8B, 0x3E, 0x92, 0x0A ; 07D3 mov di,[0xa92] +db 0x3B, 0xCA ; 07D7 cmp cx,dx +db 0x74, 0x2E ; 07D9 jz 0x809 +db 0x56 ; 07DB push si +db 0x57 ; 07DC push di +db 0x51 ; 07DD push cx +db 0x8B, 0xF7 ; 07DE mov si,di +db 0x03, 0xF2 ; 07E0 add si,dx +db 0x03, 0xF9 ; 07E2 add di,cx +db 0xA1, 0x9A, 0x0A ; 07E4 mov ax,[0xa9a] +db 0x2B, 0xC2 ; 07E7 sub ax,dx +db 0x03, 0xC1 ; 07E9 add ax,cx +db 0x3B, 0x06, 0x98, 0x0A ; 07EB cmp ax,[0xa98] +db 0x73, 0x1B ; 07EF jnc 0x80c +db 0x87, 0x06, 0x9A, 0x0A ; 07F1 xchg ax,[0xa9a] +db 0x8B, 0xC8 ; 07F5 mov cx,ax +db 0x2B, 0xCE ; 07F7 sub cx,si +db 0x3B, 0xF7 ; 07F9 cmp si,di +db 0x77, 0x05 ; 07FB ja 0x802 +db 0x03, 0xF1 ; 07FD add si,cx +db 0x03, 0xF9 ; 07FF add di,cx +db 0xFD ; 0801 std +db 0x41 ; 0802 inc cx +db 0xF3, 0xA4 ; 0803 rep movsb +db 0xFC ; 0805 cld +db 0x59 ; 0806 pop cx +db 0x5F ; 0807 pop di +db 0x5E ; 0808 pop si +db 0xF3, 0xA4 ; 0809 rep movsb +db 0xC3 ; 080B ret +db 0xBA, 0xDD, 0x09 ; 080C mov dx,0x9dd +db 0xB4, 0x09 ; 080F mov ah,0x9 +db 0xCD, 0x21 ; 0811 int 0x21 +db 0xE9, 0x5D, 0xFA ; 0813 jmp 0x273 +db 0xB8, 0x23, 0x25 ; 0816 mov ax,0x2523 +db 0xBA, 0x7D, 0x08 ; 0819 mov dx,0x87d +db 0xCD, 0x21 ; 081C int 0x21 +db 0x8B, 0x1E, 0x80, 0x0A ; 081E mov bx,[0xa80] +db 0x0B, 0xDB ; 0822 or bx,bx +db 0x75, 0x04 ; 0824 jnz 0x82a +db 0x8B, 0x1E, 0x90, 0x0A ; 0826 mov bx,[0xa90] +db 0xE8, 0x55, 0xFC ; 082A call 0x482 +db 0x8B, 0x0E, 0x9A, 0x0A ; 082D mov cx,[0xa9a] +db 0x8B, 0xF1 ; 0831 mov si,cx +db 0x2B, 0xCF ; 0833 sub cx,di +db 0x41 ; 0835 inc cx +db 0x8B, 0x3E, 0x98, 0x0A ; 0836 mov di,[0xa98] +db 0xFD ; 083A std +db 0xF3, 0xA4 ; 083B rep movsb +db 0x87, 0xFE ; 083D xchg di,si +db 0xFC ; 083F cld +db 0x47 ; 0840 inc di +db 0x8B, 0xEE ; 0841 mov bp,si +db 0x8B, 0xDA ; 0843 mov bx,dx +db 0x89, 0x3E, 0x92, 0x0A ; 0845 mov [0xa92],di +db 0x89, 0x1E, 0x90, 0x0A ; 0849 mov [0xa90],bx +db 0x89, 0x2E, 0x9A, 0x0A ; 084D mov [0xa9a],bp +db 0xE8, 0x5E, 0xFC ; 0851 call 0x4b2 +db 0xBA, 0x1E, 0x0C ; 0854 mov dx,0xc1e +db 0xB4, 0x0A ; 0857 mov ah,0xa +db 0xCD, 0x21 ; 0859 int 0x21 +db 0xE8, 0xC4, 0x00 ; 085B call 0x922 +db 0xBE, 0x20, 0x0C ; 085E mov si,0xc20 +db 0x82 ; 0861 db 0x82 +db 0x3C, 0x1A ; 0862 cmp al,0x1a +db 0x74, 0x25 ; 0864 jz 0x88b +db 0x8A, 0x4C, 0xFF ; 0866 mov cl,[si-0x1] +db 0xB5, 0x00 ; 0869 mov ch,0x0 +db 0x8B, 0xD6 ; 086B mov dx,si +db 0x03, 0xD1 ; 086D add dx,cx +db 0x42 ; 086F inc dx +db 0x3B, 0xD5 ; 0870 cmp dx,bp +db 0x73, 0x98 ; 0872 jnc 0x80c +db 0xF3, 0xA4 ; 0874 rep movsb +db 0xA4 ; 0876 movsb +db 0xB0, 0x0A ; 0877 mov al,0xa +db 0xAA ; 0879 stosb +db 0x43 ; 087A inc bx +db 0xEB, 0xC8 ; 087B jmp short 0x845 +db 0x8C, 0xC8 ; 087D mov ax,cs +db 0x8E, 0xD8 ; 087F mov ds,ax +db 0x8E, 0xC0 ; 0881 mov es,ax +db 0x8E, 0xD0 ; 0883 mov ss,ax +db 0xBC, 0x48, 0x0D ; 0885 mov sp,0xd48 +db 0xE8, 0x92, 0x00 ; 0888 call 0x91d +db 0x8B, 0x2E, 0x9A, 0x0A ; 088B mov bp,[0xa9a] +db 0x8B, 0x3E, 0x92, 0x0A ; 088F mov di,[0xa92] +db 0x8B, 0xF5 ; 0893 mov si,bp +db 0x46 ; 0895 inc si +db 0x8B, 0x0E, 0x98, 0x0A ; 0896 mov cx,[0xa98] +db 0x2B, 0xCD ; 089A sub cx,bp +db 0xF3, 0xA4 ; 089C rep movsb +db 0x4F ; 089E dec di +db 0x89, 0x3E, 0x9A, 0x0A ; 089F mov [0xa9a],di +db 0xE9, 0xCD, 0xF9 ; 08A3 jmp 0x273 +db 0xBA, 0x45, 0x0A ; 08A6 mov dx,0xa45 +db 0xB4, 0x09 ; 08A9 mov ah,0x9 +db 0xCD, 0x21 ; 08AB int 0x21 +db 0xB4, 0x01 ; 08AD mov ah,0x1 +db 0xCD, 0x21 ; 08AF int 0x21 +db 0x24, 0x5F ; 08B1 and al,0x5f +db 0x3C, 0x59 ; 08B3 cmp al,0x59 +db 0x75, 0x66 ; 08B5 jnz 0x91d +db 0xBA, 0x58, 0x0A ; 08B7 mov dx,0xa58 +db 0xB4, 0x10 ; 08BA mov ah,0x10 +db 0xCD, 0x21 ; 08BC int 0x21 +db 0xB4, 0x13 ; 08BE mov ah,0x13 +db 0xCD, 0x21 ; 08C0 int 0x21 +db 0xCD, 0x20 ; 08C2 int 0x20 +db 0xC7, 0x06, 0x80, 0x0A, 0xFF, 0xFF ; 08C4 mov word [0xa80],0xffff +db 0xE8, 0xA3, 0xFA ; 08CA call 0x370 +db 0xC6, 0x06, 0x7F, 0x0A, 0x01 ; 08CD mov byte [0xa7f],0x1 +db 0xBB, 0xFF, 0xFF ; 08D2 mov bx,0xffff +db 0xE8, 0x63, 0xFB ; 08D5 call 0x43b +db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 08D8 test byte [0xa7e],0xff +db 0x74, 0xE5 ; 08DD jz 0x8c4 +db 0x8B, 0x16, 0x9A, 0x0A ; 08DF mov dx,[0xa9a] +db 0xB4, 0x1A ; 08E3 mov ah,0x1a +db 0xCD, 0x21 ; 08E5 int 0x21 +db 0xB9, 0x01, 0x00 ; 08E7 mov cx,0x1 +db 0xBA, 0x58, 0x0A ; 08EA mov dx,0xa58 +db 0xB4, 0x28 ; 08ED mov ah,0x28 +db 0xCD, 0x21 ; 08EF int 0x21 +db 0xB4, 0x10 ; 08F1 mov ah,0x10 +db 0xCD, 0x21 ; 08F3 int 0x21 +db 0xBE, 0x5C, 0x00 ; 08F5 mov si,0x5c +db 0x8D, 0x7C, 0x10 ; 08F8 lea di,[si+0x10] +db 0x8B, 0xD6 ; 08FB mov dx,si +db 0xB9, 0x09, 0x00 ; 08FD mov cx,0x9 +db 0xF3, 0xA4 ; 0900 rep movsb +db 0xBE, 0x3E, 0x09 ; 0902 mov si,0x93e +db 0xA5 ; 0905 movsw +db 0xA4 ; 0906 movsb +db 0xB4, 0x17 ; 0907 mov ah,0x17 +db 0xCD, 0x21 ; 0909 int 0x21 +db 0xBE, 0x5C, 0x00 ; 090B mov si,0x5c +db 0xBF, 0x68, 0x0A ; 090E mov di,0xa68 +db 0xB9, 0x06, 0x00 ; 0911 mov cx,0x6 +db 0xF3, 0xA5 ; 0914 rep movsw +db 0xBA, 0x58, 0x0A ; 0916 mov dx,0xa58 +db 0xCD, 0x21 ; 0919 int 0x21 +db 0xCD, 0x20 ; 091B int 0x20 +db 0xB0, 0x0D ; 091D mov al,0xd +db 0xE8, 0x02, 0x00 ; 091F call 0x924 +db 0xB0, 0x0A ; 0922 mov al,0xa +db 0x52 ; 0924 push dx +db 0x92 ; 0925 xchg ax,dx +db 0xB4, 0x02 ; 0926 mov ah,0x2 +db 0xCD, 0x21 ; 0928 int 0x21 +db 0x92 ; 092A xchg ax,dx +db 0x5A ; 092B pop dx +db 0xC3 ; 092C ret +db 0x8C, 0xC8 ; 092D mov ax,cs +db 0x8E, 0xD8 ; 092F mov ds,ax +db 0x8E, 0xC0 ; 0931 mov es,ax +db 0x8E, 0xD0 ; 0933 mov ss,ax +db 0xBC, 0x48, 0x0D ; 0935 mov sp,0xd48 +db 0xE8, 0xE2, 0xFF ; 0938 call 0x91d +db 0xE9, 0x35, 0xF9 ; 093B jmp 0x273 +db 0x42 ; 093E inc dx +db 0x41 ; 093F inc cx +db 0x4B ; 0940 dec bx +db 0x49 ; 0941 dec cx +db 0x6E ; 0942 outsb +db 0x76, 0x61 ; 0943 jna 0x9a6 +db 0x6C ; 0945 insb +db 0x69, 0x64, 0x20, 0x64, 0x72 ; 0946 imul sp,[si+0x20],word 0x7264 +db 0x69, 0x76, 0x65, 0x20, 0x6F ; 094B imul si,[bp+0x65],word 0x6f20 +db 0x72, 0x20 ; 0950 jc 0x972 +db 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x61, 0x6D ; 0952 imul ebp,[si+0x65],dword 0x6d616e20 +db 0x65, 0x24, 0x46 ; 095A gs and al,0x46 +db 0x69, 0x6C, 0x65, 0x20, 0x6E ; 095D imul bp,[si+0x65],word 0x6e20 +db 0x61 ; 0962 popa +db 0x6D ; 0963 insw +db 0x65, 0x20, 0x6D, 0x75 ; 0964 and [gs:di+0x75],ch +db 0x73, 0x74 ; 0968 jnc 0x9de +db 0x20, 0x62, 0x65 ; 096A and [bp+si+0x65],ah +db 0x20, 0x73, 0x70 ; 096D and [bp+di+0x70],dh +db 0x65, 0x63, 0x69, 0x66 ; 0970 arpl [gs:bx+di+0x66],bp +db 0x69, 0x65, 0x64, 0x24, 0x43 ; 0974 imul sp,[di+0x64],word 0x4324 +db 0x61 ; 0979 popa +db 0x6E ; 097A outsb +db 0x6E ; 097B outsb +db 0x6F ; 097C outsw +db 0x74, 0x20 ; 097D jz 0x99f +db 0x65, 0x64, 0x69, 0x74, 0x20, 0x2E, 0x42 ; 097F imul si,[fs:si+0x20],word 0x422e +db 0x41 ; 0986 inc cx +db 0x4B ; 0987 dec bx +db 0x20, 0x66, 0x69 ; 0988 and [bp+0x69],ah +db 0x6C ; 098B insb +db 0x65, 0x2D, 0x2D, 0x72 ; 098C gs sub ax,0x722d +db 0x65, 0x6E ; 0990 gs outsb +db 0x61 ; 0992 popa +db 0x6D ; 0993 insw +db 0x65, 0x20, 0x66, 0x69 ; 0994 and [gs:bp+0x69],ah +db 0x6C ; 0998 insb +db 0x65, 0x24, 0x4E ; 0999 gs and al,0x4e +db 0x6F ; 099C outsw +db 0x20, 0x72, 0x6F ; 099D and [bp+si+0x6f],dh +db 0x6F ; 09A0 outsw +db 0x6D ; 09A1 insw +db 0x20, 0x69, 0x6E ; 09A2 and [bx+di+0x6e],ch +db 0x20, 0x64, 0x69 ; 09A5 and [si+0x69],ah +db 0x72, 0x65 ; 09A8 jc 0xa0f +db 0x63, 0x74, 0x6F ; 09AA arpl [si+0x6f],si +db 0x72, 0x79 ; 09AD jc 0xa28 +db 0x20, 0x66, 0x6F ; 09AF and [bp+0x6f],ah +db 0x72, 0x20 ; 09B2 jc 0x9d4 +db 0x66, 0x69, 0x6C, 0x65, 0x24, 0x44, 0x69, 0x73 ; 09B4 imul ebp,[si+0x65],dword 0x73694424 +db 0x6B, 0x20, 0x66 ; 09BC imul sp,[bx+si],byte +0x66 +db 0x75, 0x6C ; 09BF jnz 0xa2d +db 0x6C ; 09C1 insb +db 0x2D, 0x2D, 0x66 ; 09C2 sub ax,0x662d +db 0x69, 0x6C, 0x65, 0x20, 0x77 ; 09C5 imul bp,[si+0x65],word 0x7720 +db 0x72, 0x69 ; 09CA jc 0xa35 +db 0x74, 0x65 ; 09CC jz 0xa33 +db 0x20, 0x6E, 0x6F ; 09CE and [bp+0x6f],ch +db 0x74, 0x20 ; 09D1 jz 0x9f3 +db 0x63, 0x6F, 0x6D ; 09D3 arpl [bx+0x6d],bp +db 0x70, 0x6C ; 09D6 jo 0xa44 +db 0x65, 0x74, 0x65 ; 09D8 gs jz 0xa40 +db 0x64, 0x24, 0x0D ; 09DB fs and al,0xd +db 0x0A, 0x49, 0x6E ; 09DE or cl,[bx+di+0x6e] +db 0x73, 0x75 ; 09E1 jnc 0xa58 +db 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6E, 0x74 ; 09E3 imul esp,[bp+di+0x69],dword 0x20746e65 +db 0x20 +db 0x6D ; 09EC insw +db 0x65, 0x6D ; 09ED gs insw +db 0x6F ; 09EF outsw +db 0x72, 0x79 ; 09F0 jc 0xa6b +db 0x0D, 0x0A, 0x24 ; 09F2 or ax,0x240a +db 0x45 ; 09F5 inc bp +db 0x6E ; 09F6 outsb +db 0x74, 0x72 ; 09F7 jz 0xa6b +db 0x79, 0x20 ; 09F9 jns 0xa1b +db 0x65, 0x72, 0x72 ; 09FB gs jc 0xa70 +db 0x6F ; 09FE outsw +db 0x72, 0x0D ; 09FF jc 0xa0e +db 0x0A, 0x24 ; 0A01 or ah,[si] +db 0x4E ; 0A03 dec si +db 0x65, 0x77, 0x20 ; 0A04 gs ja 0xa27 +db 0x66, 0x69, 0x6C, 0x65, 0x0D, 0x0A, 0x24, 0x4E ; 0A07 imul ebp,[si+0x65],dword 0x4e240a0d +db 0x6F ; 0A0F outsw +db 0x74, 0x20 ; 0A10 jz 0xa32 +db 0x66, 0x6F ; 0A12 outsd +db 0x75, 0x6E ; 0A14 jnz 0xa84 +db 0x64, 0x0D, 0x0A, 0x24 ; 0A16 fs or ax,0x240a +db 0x4F ; 0A1A dec di +db 0x2E, 0x4B ; 0A1B cs dec bx +db 0x2E, 0x3F ; 0A1D cs aas +db 0x20, 0x24 ; 0A1F and [si],ah +db 0x4C ; 0A21 dec sp +db 0x69, 0x6E, 0x65, 0x20, 0x74 ; 0A22 imul bp,[bp+0x65],word 0x7420 +db 0x6F ; 0A27 outsw +db 0x6F ; 0A28 outsw +db 0x20, 0x6C, 0x6F ; 0A29 and [si+0x6f],ch +db 0x6E ; 0A2C outsb +db 0x67, 0x0D, 0x0A, 0x24 ; 0A2D or ax,0x240a +db 0x45 ; 0A31 inc bp +db 0x6E ; 0A32 outsb +db 0x64, 0x20, 0x6F, 0x66 ; 0A33 and [fs:bx+0x66],ch +db 0x20, 0x69, 0x6E ; 0A37 and [bx+di+0x6e],ch +db 0x70, 0x75 ; 0A3A jo 0xab1 +db 0x74, 0x20 ; 0A3C jz 0xa5e +db 0x66, 0x69, 0x6C, 0x65, 0x0D, 0x0A, 0x24, 0x41 ; 0A3E imul ebp,[si+0x65],dword 0x41240a0d +db 0x62, 0x6F, 0x72 ; 0A46 bound bp,[bx+0x72] +db 0x74, 0x20 ; 0A49 jz 0xa6b +db 0x65, 0x64, 0x69, 0x74, 0x20, 0x28, 0x59 ; 0A4B imul si,[fs:si+0x20],word 0x5928 +db 0x2F ; 0A52 das +db 0x4E ; 0A53 dec si +db 0x29, 0x3F ; 0A54 sub [bx],di +db 0x20, 0x24 ; 0A56 and [si],ah diff --git a/edlin.original b/edlin.original new file mode 100644 index 0000000000000000000000000000000000000000..5ed51488e2bbede19eb8ab2cd4e078047bf608bc GIT binary patch literal 2392 zcmYjT3v5%@89w$+F68(D8^UPWWNy?j9&WO*sI(=PAu*3SP{N}H(g9hT+<@D}j;`-b z#4`;Tp^ z%94GK&;R|;@Bh!4IBvqP91#Uq(aXY4QSx~`<<)}ITT`pZq9knICHLVYasub{O0~k;7hhOw!r9y16{5!{Rthhdg90}w%Mo@;-osLP z4g0MXCHbh}tztO!Kt^mHeE($3 zWs1hgiamvJje81eu!_x2o3TL819foFH*&ogP4*~O^0)Ji*f1dT z1z=WM6dl*zE9PPWt=lfhvtjjN21{P-ryBiIv**gs*`JZ0R}s31?0J&a{$hRR$(i4L z$M?lW-LrXQG&&X?<35XywR1PRC;r(OM{=LxrhF+(EG@V@tUl4Y!@Kqs?%BO*yKA%Q z7YiZ_Eep-*I~KI1ujFgFWoZ`{?%Ng2oa`a-(%;)g&Xt8@&8ajzB9^nb$#DWBg)e}N z`tCoiK|8h$%g0g~hKlc^s-~n5LP>P_H;MHGHr!E`k|FML0pEt}48+lf$yM9PB^{!- z(F>b3**IT9poo(_TelX^l@6t6BHPF*C=eH4?Px$v*5e2jj4EcP5rx&Y2`+_`#d+`u zxTq-)Vh_2LrSB0aJpr^WUN?GDbD8Qs&%eoRy@@8$oKP1s0{j7w|H2pq1PrZWw1X;4 z_XAfPt(cere7$h0vxKoENr-T0F$ni2DiIM_G6_f)jLQG6HyiHASk)mw!~RwRJrV@o zj}K4w6oKQ@;XOftR;SS=D7c8KmbWGxv!tcMHWEV4=raV_X77wdgc%pz- zBPE|%PB?`$x*o|krjnSOaS+(1EcL_A?>K|~@Q=m^Fl|M0L^US~cK!_RXvOCPxT6IF z+ZwPYKUOmnXCYlAYbX7cem|t`zP(hwXFnS5w;E^%f~r6Co8Q9u*WifnKWCutAU}l2 zs?;>AYx)e)%ky8GwSaTh#>BxLjs9_-jMyMTqc(og20Ela6*9;EV1*<#1K&<#g9cu| zOQPg1fpb^ia>M$8sS9M7%qsVpC>dd@2}EQA1`<$TMD9-Z$nj!7to_zA_=f}G{A=Cz zO!+bR_rI>fiK!HSfJZHuu9#Qu?%BtDf}YirQ72t8Pi~jlZr2&#fx*bSBmdgOtFbp` zQ?PUfbJ8#8$h04t!oRK+E59pPcNWX<(cyVND;)eq8|UfFTnMXHV`6CjSQjuaH-3!9 zH?Y$73C2V-4a>QE_w6Fn+$0x24=s3wO^kNz`|c_JESnhD3#RMSxd&W)9(r@GwCvDS zXITA5ayTBGVe`3RA>0Ycfs>5q)j39a^1wDyNF42Weya1-lew+rzhsn!;s@XTxo0sw zGzXrsflfa~;7udsXGLJU_Aw&2xM)$qUw!RUot;74<(#;B=4$g7%>&Ih;6?zp5I{5E z$-^ydg4rUep%IJ3)y-d1CA-XCs#LL214AUVB$5>o*af3$v}1j#9(lD{_^LG$*phPp39Oq>Ji+_qp1%QS7}5DnqWi(@$S};K9be?TKJp( zj%l&y;zfnqT%Nk}YImhjDY@%J!7B+>?rKr+l-G#aTb{0j8pS6IuZx1OR;+MWxy8zC zXSv7Yl?AcVEepAzCIQRIkwk_}Y_fNF1YSW}#d^stgI&;B0k4;8Q3fL>?DF`Osw#JdTlC06jaUOJ;E}S~BZDeYlDrb^c8K)} zgKP=#DzDow%iQ@JZLCoq literal 0 HcmV?d00001 diff --git a/process-disasm.sed b/process-disasm.sed new file mode 100755 index 0000000..f31b4fe --- /dev/null +++ b/process-disasm.sed @@ -0,0 +1,21 @@ +#!/bin/sed -Ef +/^[0-9A-F]{8}/ { + # address hexdump disasm + h + # Extract address and code into a comment + s/^0*(([0-9A-F]{4})+) +[0-9A-F]+ +(.*)$/; \1 \3/ + x + # Extract hexdump + s/^[0-9A-F]+ +([0-9A-F]+) +.*$/\1/ + # Combine + G + s/^([0-9A-F]+)./\1 / +} +# -hexdump +s/^ +-// + +: separate +s/^((0x[0-9A-F]{2}, )*)([0-9A-F]{2})/\10x\3, / +t separate + +s/^((0x[0-9A-F]{2}, )*0x[0-9A-F]{2}), /db \1/