diff --git a/src/stub/src/arch/i086/macros.ash b/src/stub/src/arch/i086/macros.S similarity index 100% rename from src/stub/src/arch/i086/macros.ash rename to src/stub/src/arch/i086/macros.S diff --git a/src/stub/src/arch/i086/nrv2b_d16.ash b/src/stub/src/arch/i086/nrv2b_d16.S similarity index 100% rename from src/stub/src/arch/i086/nrv2b_d16.ash rename to src/stub/src/arch/i086/nrv2b_d16.S diff --git a/src/stub/src/arch/i086/nrv2b_d8.ash b/src/stub/src/arch/i086/nrv2b_d8.S similarity index 100% rename from src/stub/src/arch/i086/nrv2b_d8.ash rename to src/stub/src/arch/i086/nrv2b_d8.S diff --git a/src/stub/src/arch/i086/nrv2d_d8.ash b/src/stub/src/arch/i086/nrv2d_d8.S similarity index 100% rename from src/stub/src/arch/i086/nrv2d_d8.ash rename to src/stub/src/arch/i086/nrv2d_d8.S diff --git a/src/stub/src/arch/i086/nrv2e_d8.ash b/src/stub/src/arch/i086/nrv2e_d8.S similarity index 100% rename from src/stub/src/arch/i086/nrv2e_d8.ash rename to src/stub/src/arch/i086/nrv2e_d8.S diff --git a/src/stub/src/arch/i386/OLD-nasm/cl1_d32.ash b/src/stub/src/arch/i386/OLD-nasm/cl1_d32.ash deleted file mode 100644 index 8765f8de..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/cl1_d32.ash +++ /dev/null @@ -1,253 +0,0 @@ -; cl1_d32.ash -- cl1_decompress_le32 in 32-bit assembly -; schema from ucl/nrv2b_d32.ash -; -; Copyright (C) 2004-2006 John Reiser -; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -; All Rights Reserved. -; -; This file is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; This file is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with the UCL library; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer John Reiser -; -; - - -; ------------- DECOMPRESSION ------------- - -; Input: -; esi - source -; edi - dest -; ebp - -1 -; cld - -; Output: -; eax - 0 -; ecx - 0 - - - %ifndef jmps - %define jmps jmp short - %endif - %ifndef jmpn - %define jmpn jmp near - %endif - - -;; One of these two is instantiated many times by buildLoader -%ifdef __CL1SMA1B__ - call edx -%else; __CL1FAS1B__ - add ebx, ebx - db 0x75,2 ;jnz cl1_no_reload - call edx - ;cl1_no_reload: -%endif; __CL1GET1B__ - -; __CL1ENTER__ - nop ; 'int3' for debugging - call start_cl1 ; pic push address of next instr -; __CL1SMA10__ -getbit_cl1: ; appears only in small version - add ebx, ebx - jz reload_cl1 - ret -; __CL1RLOAD__ -reload_cl1: ; for both small and fast version - mov ebx, [esi] - sub esi, byte -4 - adc ebx, ebx - ret -; __CL1WID01__ -widelit_cl1: - sub ecx,ecx ; back to 0 - ; getbit -; __CL1WID02__ - adc ecx,ecx - ; getbit -; __CL1WID03__ - jc lit89_cl1 - ; getbit -; __CL1WID04__ - adc ecx,ecx - ; getbit -; __CL1WID05__ - jc lit10_12_cl1 - ; getbit -; __CL1WID06__ - adc ecx,ecx ; 0..7; -1+ (width/2) of length -litwidth_cl1: ; ss22 algorithm, counted width<=8 pairs; returns eax= 2..0x15555 - ; getbit -; __CL1WID07__ - adc eax,eax - dec eax - ; getbit -; __CL1WID08__ - adc eax,eax - sub ecx, byte 1 - jnc litwidth_cl1 - lea ecx,[17 -2 + eax] ; 17: predecessors; ss22 returns 2.. - cmp eax,0xffff-(17 -2) - jb litgo_cl1 ; not maximal range of search - lea eax,[esi + ecx] ; esi after copy - push eax ; "parameter" to maxlit_cl1 - jmpn maxlit_cl1 ; can have another literal afterwards -lit13_16_cl1: - ; getbit -; __CL1WID09__ - adc ecx,ecx - ; getbit -; __CL1WID10__ - adc ecx,ecx - add ecx, byte 13 - jmps litmov_cl1 -lit10_12_cl1: - test ecx,ecx - jz lit13_16_cl1 - inc ecx ; 2,3,4 -lit89_cl1: - add ecx, byte 8 -litgo_cl1: - jmps litmov_cl1 -; __CL1START__ -start_cl1: - sub ecx,ecx ; 0 - pop edx ; edx= getbit_cl1 or reload_cl1 - sub ebx, ebx ; cause reload on first bit - -; __CL1TOP00__ -top_cl1: ; In: 0==ecx - lea eax,[1+ ecx] ; 1: the msb of offset or large width - ; getbit -; __CL1TOP01__ - jnc match_cl1 - ; getbit -; __CL1TOP02__ - jc lit1_cl1 - ; getbit -; __CL1TOP03__ - jc lit2_cl1 - ; getbit -; __CL1TOP04__ - jc lit3_cl1 - add ecx, byte 2 - ; getbit -; __CL1TOP05__ - jc lit45_cl1 - inc ecx - ; getbit -; __CL1TOP06__ - jc lit67_cl1 - jmpn widelit_cl1 -lit67_cl1: -lit45_cl1: - ; getbit -; __CL1TOP07__ - adc ecx,ecx -litmov_cl1: - db 0xD1,((3<<6)|(5<<3)|1) ;shr ecx,1 - jnc litmovb_cl1 - movsb -litmovb_cl1: - db 0xD1,((3<<6)|(5<<3)|1) ;shr ecx,1 - jnc litmovw_cl1 - movsw -litmovw_cl1: - rep - movsd - lea eax,[1+ ecx] ; 1: the msb - jmps litdone_cl1 -lit3_cl1: - movsb -lit2_cl1: - movsb -lit1_cl1: - movsb -litdone_cl1: - -match_cl1: ; In: 0==ecx; 1==eax - -offset_cl1: ; ss11 algorithm - ; getbit -; __CL1OFF01__ - adc eax,eax - ; getbit -; __CL1OFF02__ - jnc offset_cl1 - sub eax, byte 3 ; 2.. ==> -1[prev], (0,,<<8)|byte - jc prev_off_cl1 - shl eax,8 - lodsb - xor eax, byte ~0 - jz done_cl1 ; EOF - mov ebp,eax ; -offset -prev_off_cl1: ; 1st 2 bits encode (5<=len),2,3,4 - ; getbit -; __CL1OFF03__ - adc ecx,ecx - ; getbit -; __CL1OFF04__ - adc ecx,ecx - jnz wrinkle_cl1 -; __CL1LEN00__ - inc ecx ; 1: the msb -mlen_cl1: - ; getbit -; __CL1LEN01__ - adc ecx,ecx - ; getbit -; __CL1LEN02__ - jnc mlen_cl1 - add ecx, byte 2 ; 2.. ==> 4.. -; __CL1COPY0__ -wrinkle_cl1: - cmp ebp,-0xd00 - adc ecx, byte 1 -copy_cl1: - push esi - lea esi,[edi + ebp] - cmp ebp, byte -4 - ja ripple_cl1 -maxlit_cl1: ; literal copy cannot overlap; omit test for ripple - db 0xD1,((3<<6)|(5<<3)|1) ;shr ecx,1 - jnc maxlitb_cl1 - movsb -maxlitb_cl1: - db 0xD1,((3<<6)|(5<<3)|1) ;shr ecx,1 - jnc maxlitw_cl1 - movsw -maxlitw_cl1: - rep - movsd -popbot_cl1: - pop esi -bottom_cl1: - jmpn top_cl1 -ripple_cl1: - cmp ebp, byte -1 - jne ripmov_cl1 - lodsb - rep - stosb - jmps popbot_cl1 -ripmov_cl1: - rep - movsb - jmps popbot_cl1 -done_cl1: -; __CL1END__ - -; vi:ts=8:et - diff --git a/src/stub/src/arch/i386/OLD-nasm/lzma_d.ash b/src/stub/src/arch/i386/OLD-nasm/lzma_d.ash deleted file mode 100644 index 72de8604..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/lzma_d.ash +++ /dev/null @@ -1,166 +0,0 @@ -; lzma_d.ash -- 32-bit assembly -; -; This file is part of the UPX executable compressor. -; -; Copyright (C) 2006-2006 Markus Franz Xaver Johannes Oberhumer -; All Rights Reserved. -; -; UPX and the UCL library are free software; you can redistribute them -; and/or modify them under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer -; -; http://www.oberhumer.com/opensource/upx/ -; - - -; ------------- DECOMPRESSION ------------- - -; Input: -; esi - source -; edi - dest -; cld - -; Output: -; eax - 0 -; ecx - 0 - - - %ifndef jmps - %define jmps jmp short - %endif - %ifndef jmpn - %define jmpn jmp near - %endif - - CPU 386 - -; -; init -; __LZMA_DEC00__ -; - -; ebx = alloca('UPXa'); - - mov ebp, esp ; save stack - - lea ebx, [esp + 'UPXa'] - xor eax, eax -.clearstack1: - push eax - cmp esp, ebx - jnz .clearstack1 - - - inc esi ; skip 2 bytes for properties - inc esi - - push ebx ; &outSizeProcessed - push 'UPXb' ; outSize - push edi ; out - add ebx, 4 - push ebx ; &inSizeProcessed - push 'UPXc' ; inSize - push esi ; in - add ebx, 4 - push ebx ; &CLzmaDecoderState - push eax ; dummy for call - - ; hardwired LzmaDecodeProperties() - mov dword [ebx], 'UPXd' ; lc, lp, pb, dummy - - -; __LZMA_ELF00__ -; -LZMA_BASE_SIZE equ 1846 -LZMA_LIT_SIZE equ 768 - - %ifndef O_OUTS ; ELF defines them, others do not care - %define O_OUTS 0 - %define O_INS 0 - %endif - - mov ebp, esp ; save stack - mov edx,[O_INS + ebp] ; inSize - - lodsb ; first byte, replaces LzmaDecodeProperties() - dec edx - mov cl,al ; cl= ((lit_context_bits + lit_pos_bits)<<3) | pos_bits - and al,7 ; al= pos_bits - shr cl,3 ; cl= lit_context_bits + lit_pos_bits - - mov ebx, -LZMA_LIT_SIZE - shl ebx,cl -; /* inSizeProcessed, outSizeProcessed, *_bits, CLzmaDecoderState */ - lea ebx,[-(2*4 +4) + 2*(-LZMA_BASE_SIZE + ebx) + esp] - and ebx, byte (~0<<5) ; 32-byte align -.elf_clearstack1: - push byte 0 - cmp esp,ebx - jne .elf_clearstack1 - - push ebx ; &outSizeProcessed - add ebx, 4 - mov ecx,[O_OUTS + ebp] ; &outSize - push dword [ecx] ; outSize - push edi ; out - push ebx ; &inSizeProcessed - add ebx, 4 - - mov [2+ ebx],al ; store pos_bits - lodsb ; second byte, replaces LzmaDecodeProperties() - dec edx - mov cl,al ; cl= (lit_pos_bits<<4) | lit_context_bits - and al,0xf - mov [ ebx],al ; store lit_context_bits - shr cl,4 - mov [1+ ebx],cl ; store lit_pos_bits - - push edx ; inSize -2 - push esi ; in - push ebx ; &CLzmaDecoderState - push eax ; return address slot (dummy CALL) - - - -; __LZMA_DEC10__ -%include "arch/i386/lzma_d_cs.ash" - -; __LZMA_DEC20__ -%include "arch/i386/lzma_d_cf.ash" - - -; -; cleanup -; __LZMA_DEC30__ -; - - add esi, [ebx - 4] ; inSizeProcessed - add edi, [ebx - 8] ; outSizeProcessed - xor eax, eax - - lea ecx, [esp - 256] - mov esp, ebp ; restore stack -.clearstack2: - push eax - cmp esp, ecx - jnz .clearstack2 - - mov esp, ebp ; restore stack - xor ecx, ecx - - -; vi:ts=8:et - diff --git a/src/stub/src/arch/i386/OLD-nasm/lzma_d_cf.ash b/src/stub/src/arch/i386/OLD-nasm/lzma_d_cf.ash deleted file mode 100644 index 793d736a..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/lzma_d_cf.ash +++ /dev/null @@ -1,169 +0,0 @@ -db 85, 87, 86, 83,131,236,124,139,148, 36,144, 0, 0, 0,199, 68 ; 0x0000 -db 36,116, 0, 0, 0, 0,198, 68, 36,115, 0,139,172, 36,156, 0 ; 0x0010 -db 0, 0,141, 66, 4,137, 68, 36,120,184, 1, 0, 0, 0, 15,182 ; 0x0020 -db 74, 2,137,195,211,227,137,217, 73,137, 76, 36,108, 15,182, 74 ; 0x0030 -db 1,211,224, 72,137, 68, 36,104,139,132, 36,168, 0, 0, 0, 15 ; 0x0040 -db 182, 50,199, 69, 0, 0, 0, 0, 0,199, 68, 36, 96, 0, 0, 0 ; 0x0050 -db 0,199, 0, 0, 0, 0, 0,184, 0, 3, 0, 0,137,116, 36,100 ; 0x0060 -db 199, 68, 36, 92, 1, 0, 0, 0,199, 68, 36, 88, 1, 0, 0, 0 ; 0x0070 -db 199, 68, 36, 84, 1, 0, 0, 0,199, 68, 36, 80, 1, 0, 0, 0 ; 0x0080 -db 15,182, 74, 1, 1,241,211,224,141,136, 54, 7, 0, 0, 57, 76 ; 0x0090 -db 36,116,115, 14,139, 68, 36,120,102,199, 0, 0, 4,131,192, 2 ; 0x00a0 -db 226,246,139,156, 36,148, 0, 0, 0, 49,255,199, 68, 36, 72,255 ; 0x00b0 -db 255,255,255,137,218, 3,148, 36,152, 0, 0, 0,137, 84, 36, 76 ; 0x00c0 -db 49,210, 59, 92, 36, 76, 15,132,124, 9, 0, 0, 15,182, 3,193 ; 0x00d0 -db 231, 8, 66, 67, 9,199,131,250, 4,126,231,139,140, 36,164, 0 ; 0x00e0 -db 0, 0, 57, 76, 36,116, 15,131,100, 9, 0, 0,139,116, 36,116 ; 0x00f0 -db 35,116, 36,108,139, 68, 36, 96,139, 84, 36,120,193,224, 4,137 ; 0x0100 -db 116, 36, 68, 1,240,129,124, 36, 72,255,255,255, 0,141, 44, 66 ; 0x0110 -db 119, 24, 59, 92, 36, 76, 15,132, 44, 9, 0, 0,193,100, 36, 72 ; 0x0120 -db 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139 ; 0x0130 -db 85, 0,193,232, 11, 15,183,202, 15,175,193, 57,199, 15,131,221 ; 0x0140 -db 1, 0, 0,137, 68, 36, 72,184, 0, 8, 0, 0, 41,200,138, 76 ; 0x0150 -db 36,100,193,248, 5,190, 1, 0, 0, 0,141, 4, 2, 15,182, 84 ; 0x0160 -db 36,115,102,137, 69, 0,139, 68, 36,116, 35, 68, 36,104,139,108 ; 0x0170 -db 36,120,211,224,185, 8, 0, 0, 0, 43, 76, 36,100,211,250, 1 ; 0x0180 -db 208,105,192, 0, 6, 0, 0,131,124, 36, 96, 6,141,132, 5,108 ; 0x0190 -db 14, 0, 0,137, 68, 36, 20, 15,142,202, 0, 0, 0,139, 68, 36 ; 0x01a0 -db 116, 43, 68, 36, 92,139,148, 36,160, 0, 0, 0, 15,182, 4, 2 ; 0x01b0 -db 137, 68, 36, 64,209,100, 36, 64,139, 76, 36, 64,141, 20, 54,139 ; 0x01c0 -db 108, 36, 20,129,225, 0, 1, 0, 0,129,124, 36, 72,255,255,255 ; 0x01d0 -db 0,141, 68, 77, 0,137, 76, 36, 60,141, 44, 16,119, 24, 59, 92 ; 0x01e0 -db 36, 76, 15,132, 96, 8, 0, 0,193,100, 36, 72, 8, 15,182, 3 ; 0x01f0 -db 193,231, 8, 67, 9,199,139, 68, 36, 72,102,139,141, 0, 2, 0 ; 0x0200 -db 0,193,232, 11, 15,183,241, 15,175,198, 57,199,115, 35,137, 68 ; 0x0210 -db 36, 72,184, 0, 8, 0, 0, 41,240,137,214,193,248, 5,131,124 ; 0x0220 -db 36, 60, 0,141, 4, 1,102,137,133, 0, 2, 0, 0,116, 34,235 ; 0x0230 -db 46, 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193,232, 5 ; 0x0240 -db 102, 41,193,131,124, 36, 60, 0,102,137,141, 0, 2, 0, 0,116 ; 0x0250 -db 14,129,254,255, 0, 0, 0, 15,142, 87,255,255,255,235,121,129 ; 0x0260 -db 254,255, 0, 0, 0,127,113,141, 20, 54,139,108, 36, 20, 1,213 ; 0x0270 -db 129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132 ; 0x0280 -db 196, 7, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67 ; 0x0290 -db 9,199,139, 68, 36, 72,102,139, 77, 0,193,232, 11, 15,183,241 ; 0x02a0 -db 15,175,198, 57,199,115, 25,137, 68, 36, 72,184, 0, 8, 0, 0 ; 0x02b0 -db 41,240,137,214,193,248, 5,141, 4, 1,102,137, 69, 0,235,159 ; 0x02c0 -db 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193,232, 5,102 ; 0x02d0 -db 41,193,102,137, 77, 0,235,135,139, 84, 36,116,137,240,139,140 ; 0x02e0 -db 36,160, 0, 0, 0,136, 68, 36,115,136, 4, 10, 66,131,124, 36 ; 0x02f0 -db 96, 3,137, 84, 36,116,127, 13,199, 68, 36, 96, 0, 0, 0, 0 ; 0x0300 -db 233, 27, 7, 0, 0,131,124, 36, 96, 9,127, 10,131,108, 36, 96 ; 0x0310 -db 3,233, 10, 7, 0, 0,131,108, 36, 96, 6,233, 0, 7, 0, 0 ; 0x0320 -db 139, 76, 36, 72, 41,199,139,116, 36, 96, 41,193,137,208,102,193 ; 0x0330 -db 232, 5,102, 41,194,129,249,255,255,255, 0,102,137, 85, 0,139 ; 0x0340 -db 108, 36,120,141,116,117, 0,137,116, 36, 56,119, 22, 59, 92, 36 ; 0x0350 -db 76, 15,132,241, 6, 0, 0, 15,182, 3,193,231, 8,193,225, 8 ; 0x0360 -db 67, 9,199,139,108, 36, 56,137,200,193,232, 11,102,139,149,128 ; 0x0370 -db 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 82,137,198,184 ; 0x0380 -db 0, 8, 0, 0, 41,232,139,108, 36, 88,193,248, 5,139, 76, 36 ; 0x0390 -db 84,141, 4, 2,139, 84, 36, 56,137, 76, 36, 80,139, 76, 36,120 ; 0x03a0 -db 102,137,130,128, 1, 0, 0,139, 68, 36, 92,137,108, 36, 84,137 ; 0x03b0 -db 68, 36, 88, 49,192,131,124, 36, 96, 6, 15,159,192,129,193,100 ; 0x03c0 -db 6, 0, 0,141, 4, 64,137, 68, 36, 96,233,116, 2, 0, 0,137 ; 0x03d0 -db 206, 41,199, 41,198,137,208,102,193,232, 5,139, 76, 36, 56,102 ; 0x03e0 -db 41,194,129,254,255,255,255, 0,102,137,145,128, 1, 0, 0,119 ; 0x03f0 -db 22, 59, 92, 36, 76, 15,132, 77, 6, 0, 0, 15,182, 3,193,231 ; 0x0400 -db 8,193,230, 8, 67, 9,199,139,108, 36, 56,137,242,193,234, 11 ; 0x0410 -db 102,139,141,152, 1, 0, 0, 15,183,193, 15,175,208, 57,215, 15 ; 0x0420 -db 131,227, 0, 0, 0,189, 0, 8, 0, 0,137,214, 41,197,199, 68 ; 0x0430 -db 36, 52, 0, 8, 0, 0,137,232,193,248, 5,141, 4, 1,139, 76 ; 0x0440 -db 36, 56,102,137,129,152, 1, 0, 0,139, 68, 36, 96,139, 76, 36 ; 0x0450 -db 68,193,224, 5, 3, 68, 36,120,129,250,255,255,255, 0,141, 44 ; 0x0460 -db 72,119, 22, 59, 92, 36, 76, 15,132,219, 5, 0, 0, 15,182, 3 ; 0x0470 -db 193,231, 8,193,230, 8, 67, 9,199,102,139,149,224, 1, 0, 0 ; 0x0480 -db 137,240,193,232, 11, 15,183,202, 15,175,193, 57,199,115, 96, 41 ; 0x0490 -db 76, 36, 52,193,124, 36, 52, 5,139,116, 36, 52,137, 68, 36, 72 ; 0x04a0 -db 131,124, 36,116, 0,141, 4, 50,102,137,133,224, 1, 0, 0, 15 ; 0x04b0 -db 132,147, 5, 0, 0, 49,192,131,124, 36, 96, 6,139,172, 36,160 ; 0x04c0 -db 0, 0, 0,139, 84, 36,116, 15,159,192,141, 68, 0, 9,137, 68 ; 0x04d0 -db 36, 96,139, 68, 36,116, 43, 68, 36, 92,138, 68, 5, 0,136, 68 ; 0x04e0 -db 36,115,136, 4, 42, 66,137, 84, 36,116,233, 49, 5, 0, 0, 41 ; 0x04f0 -db 198, 41,199,137,208,102,193,232, 5,102, 41,194,102,137,149,224 ; 0x0500 -db 1, 0, 0,233, 31, 1, 0, 0,137,200, 41,214,102,193,232, 5 ; 0x0510 -db 139,108, 36, 56,102, 41,193, 41,215,129,254,255,255,255, 0,102 ; 0x0520 -db 137,141,152, 1, 0, 0,119, 22, 59, 92, 36, 76, 15,132, 22, 5 ; 0x0530 -db 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199,139, 76 ; 0x0540 -db 36, 56,137,240,193,232, 11,102,139,145,176, 1, 0, 0, 15,183 ; 0x0550 -db 202, 15,175,193, 57,199,115, 35,137,198,184, 0, 8, 0, 0, 41 ; 0x0560 -db 200,139,108, 36, 56,193,248, 5,141, 4, 2,102,137,133,176, 1 ; 0x0570 -db 0, 0,139, 68, 36, 88,233,160, 0, 0, 0,137,241, 41,199, 41 ; 0x0580 -db 193,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 56,129,249 ; 0x0590 -db 255,255,255, 0,102,137,144,176, 1, 0, 0,119, 22, 59, 92, 36 ; 0x05a0 -db 76, 15,132,161, 4, 0, 0, 15,182, 3,193,231, 8,193,225, 8 ; 0x05b0 -db 67, 9,199,139,116, 36, 56,137,200,193,232, 11,102,139,150,200 ; 0x05c0 -db 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 32,137,198,184 ; 0x05d0 -db 0, 8, 0, 0, 41,232,139,108, 36, 56,193,248, 5,141, 4, 2 ; 0x05e0 -db 102,137,133,200, 1, 0, 0,139, 68, 36, 84,235, 38,137,206, 41 ; 0x05f0 -db 199, 41,198,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 56 ; 0x0600 -db 102,137,144,200, 1, 0, 0,139, 84, 36, 84,139, 68, 36, 80,137 ; 0x0610 -db 84, 36, 80,139, 76, 36, 88,137, 76, 36, 84,139,108, 36, 92,137 ; 0x0620 -db 68, 36, 92,137,108, 36, 88, 49,192,131,124, 36, 96, 6,139, 76 ; 0x0630 -db 36,120, 15,159,192,129,193,104, 10, 0, 0,141, 68, 64, 8,137 ; 0x0640 -db 68, 36, 96,129,254,255,255,255, 0,119, 22, 59, 92, 36, 76, 15 ; 0x0650 -db 132,243, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9 ; 0x0660 -db 199,102,139, 17,137,240,193,232, 11, 15,183,234, 15,175,197, 57 ; 0x0670 -db 199,115, 47,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100 ; 0x0680 -db 36, 68, 4,193,248, 5,199, 68, 36, 44, 0, 0, 0, 0,141, 4 ; 0x0690 -db 2,102,137, 1,139, 68, 36, 68,141, 76, 1, 4,137, 76, 36, 16 ; 0x06a0 -db 235,114, 41,198, 41,199,137,208,102,193,232, 5,102, 41,194,129 ; 0x06b0 -db 254,255,255,255, 0,102,137, 17,119, 22, 59, 92, 36, 76, 15,132 ; 0x06c0 -db 132, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199 ; 0x06d0 -db 102,139, 81, 2,137,240,193,232, 11, 15,183,234, 15,175,197, 57 ; 0x06e0 -db 199,115, 59,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100 ; 0x06f0 -db 36, 68, 4,193,248, 5,199, 68, 36, 44, 8, 0, 0, 0,141, 4 ; 0x0700 -db 2,139, 84, 36, 68,102,137, 65, 2,141,140, 17, 4, 1, 0, 0 ; 0x0710 -db 137, 76, 36, 16,199, 68, 36, 48, 3, 0, 0, 0,235, 47, 41,198 ; 0x0720 -db 41,199,137,208,137,116, 36, 72,102,193,232, 5,199, 68, 36, 44 ; 0x0730 -db 16, 0, 0, 0,102, 41,194,199, 68, 36, 48, 8, 0, 0, 0,102 ; 0x0740 -db 137, 81, 2,129,193, 4, 2, 0, 0,137, 76, 36, 16,139, 76, 36 ; 0x0750 -db 48,186, 1, 0, 0, 0,137, 76, 36, 40,141, 44, 18,139,116, 36 ; 0x0760 -db 16, 1,238,129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36 ; 0x0770 -db 76, 15,132,209, 2, 0, 0,193,100, 36, 72, 8, 15,182, 3,193 ; 0x0780 -db 231, 8, 67, 9,199,139, 68, 36, 72,102,139, 22,193,232, 11, 15 ; 0x0790 -db 183,202, 15,175,193, 57,199,115, 24,137, 68, 36, 72,184, 0, 8 ; 0x07a0 -db 0, 0, 41,200,193,248, 5,141, 4, 2,137,234,102,137, 6,235 ; 0x07b0 -db 21, 41, 68, 36, 72, 41,199,137,208,102,193,232, 5,102, 41,194 ; 0x07c0 -db 102,137, 22,141, 85, 1,139,116, 36, 40, 78,137,116, 36, 40,117 ; 0x07d0 -db 137,138, 76, 36, 48,184, 1, 0, 0, 0,211,224, 41,194, 3, 84 ; 0x07e0 -db 36, 44,131,124, 36, 96, 3,137, 84, 36, 12, 15,143,231, 1, 0 ; 0x07f0 -db 0,131, 68, 36, 96, 7,131,250, 3,137,208,126, 5,184, 3, 0 ; 0x0800 -db 0, 0,139,116, 36,120,193,224, 7,199, 68, 36, 36, 6, 0, 0 ; 0x0810 -db 0,141,132, 6, 96, 3, 0, 0,137, 68, 36, 8,184, 1, 0, 0 ; 0x0820 -db 0,141, 44, 0,139,116, 36, 8, 1,238,129,124, 36, 72,255,255 ; 0x0830 -db 255, 0,119, 24, 59, 92, 36, 76, 15,132, 10, 2, 0, 0,193,100 ; 0x0840 -db 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72 ; 0x0850 -db 102,139, 22,193,232, 11, 15,183,202, 15,175,193, 57,199,115, 24 ; 0x0860 -db 137, 68, 36, 72,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4 ; 0x0870 -db 2,102,137, 6,137,232,235, 21, 41, 68, 36, 72, 41,199,137,208 ; 0x0880 -db 102,193,232, 5,102, 41,194,141, 69, 1,102,137, 22,139,108, 36 ; 0x0890 -db 36, 77,137,108, 36, 36,117,137,141, 80,192,131,250, 3,137, 20 ; 0x08a0 -db 36, 15,142, 39, 1, 0, 0,137,208,137,214,209,248,131,230, 1 ; 0x08b0 -db 141, 72,255,131,206, 2,131,250, 13,137, 76, 36, 32,127, 28,139 ; 0x08c0 -db 108, 36,120,211,230, 1,210,137, 52, 36,141, 68,117, 0, 41,208 ; 0x08d0 -db 5, 94, 5, 0, 0,137, 68, 36, 4,235, 86,141, 80,251,129,124 ; 0x08e0 -db 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132, 86, 1 ; 0x08f0 -db 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199 ; 0x0900 -db 209,108, 36, 72, 1,246, 59,124, 36, 72,114, 7, 43,124, 36, 72 ; 0x0910 -db 131,206, 1, 74,117,200,139, 68, 36,120,193,230, 4,137, 52, 36 ; 0x0920 -db 5, 68, 6, 0, 0,199, 68, 36, 32, 4, 0, 0, 0,137, 68, 36 ; 0x0930 -db 4,199, 68, 36, 28, 1, 0, 0, 0,184, 1, 0, 0, 0,139,108 ; 0x0940 -db 36, 4, 1,192,137, 68, 36, 24, 1,197,129,124, 36, 72,255,255 ; 0x0950 -db 255, 0,119, 24, 59, 92, 36, 76, 15,132,234, 0, 0, 0,193,100 ; 0x0960 -db 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72 ; 0x0970 -db 102,139, 85, 0,193,232, 11, 15,183,242, 15,175,198, 57,199,115 ; 0x0980 -db 27,137, 68, 36, 72,184, 0, 8, 0, 0, 41,240,193,248, 5,141 ; 0x0990 -db 4, 2,102,137, 69, 0,139, 68, 36, 24,235, 31, 41, 68, 36, 72 ; 0x09a0 -db 41,199,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 24,102 ; 0x09b0 -db 137, 85, 0,139, 84, 36, 28, 64, 9, 20, 36,139, 76, 36, 32,209 ; 0x09c0 -db 100, 36, 28, 73,137, 76, 36, 32, 15,133,112,255,255,255,139, 52 ; 0x09d0 -db 36, 70,137,116, 36, 92,116, 89,139, 76, 36, 12,139,108, 36,116 ; 0x09e0 -db 131,193, 2, 57,108, 36, 92,119, 95,139,132, 36,160, 0, 0, 0 ; 0x09f0 -db 137,234, 43, 68, 36, 92, 3,148, 36,160, 0, 0, 0,141, 52, 40 ; 0x0a00 -db 138, 6, 70,136, 68, 36,115,136, 2, 66,255, 68, 36,116, 73,116 ; 0x0a10 -db 15,139,172, 36,164, 0, 0, 0, 57,108, 36,116,114,226,235, 17 ; 0x0a20 -db 139,132, 36,164, 0, 0, 0, 57, 68, 36,116, 15,130,187,246,255 ; 0x0a30 -db 255,129,124, 36, 72,255,255,255, 0,119, 21, 59, 92, 36, 76,184 ; 0x0a40 -db 1, 0, 0, 0,116, 41,235, 7,184, 1, 0, 0, 0,235, 32, 67 ; 0x0a50 -db 43,156, 36,148, 0, 0, 0, 49,192,139,148, 36,156, 0, 0, 0 ; 0x0a60 -db 139, 76, 36,116,137, 26,139,156, 36,168, 0, 0, 0,137, 11,131 ; 0x0a70 -db 196,124, 91, 94, 95, 93 ; 0x0a80 diff --git a/src/stub/src/arch/i386/OLD-nasm/lzma_d_cs.ash b/src/stub/src/arch/i386/OLD-nasm/lzma_d_cs.ash deleted file mode 100644 index 793d736a..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/lzma_d_cs.ash +++ /dev/null @@ -1,169 +0,0 @@ -db 85, 87, 86, 83,131,236,124,139,148, 36,144, 0, 0, 0,199, 68 ; 0x0000 -db 36,116, 0, 0, 0, 0,198, 68, 36,115, 0,139,172, 36,156, 0 ; 0x0010 -db 0, 0,141, 66, 4,137, 68, 36,120,184, 1, 0, 0, 0, 15,182 ; 0x0020 -db 74, 2,137,195,211,227,137,217, 73,137, 76, 36,108, 15,182, 74 ; 0x0030 -db 1,211,224, 72,137, 68, 36,104,139,132, 36,168, 0, 0, 0, 15 ; 0x0040 -db 182, 50,199, 69, 0, 0, 0, 0, 0,199, 68, 36, 96, 0, 0, 0 ; 0x0050 -db 0,199, 0, 0, 0, 0, 0,184, 0, 3, 0, 0,137,116, 36,100 ; 0x0060 -db 199, 68, 36, 92, 1, 0, 0, 0,199, 68, 36, 88, 1, 0, 0, 0 ; 0x0070 -db 199, 68, 36, 84, 1, 0, 0, 0,199, 68, 36, 80, 1, 0, 0, 0 ; 0x0080 -db 15,182, 74, 1, 1,241,211,224,141,136, 54, 7, 0, 0, 57, 76 ; 0x0090 -db 36,116,115, 14,139, 68, 36,120,102,199, 0, 0, 4,131,192, 2 ; 0x00a0 -db 226,246,139,156, 36,148, 0, 0, 0, 49,255,199, 68, 36, 72,255 ; 0x00b0 -db 255,255,255,137,218, 3,148, 36,152, 0, 0, 0,137, 84, 36, 76 ; 0x00c0 -db 49,210, 59, 92, 36, 76, 15,132,124, 9, 0, 0, 15,182, 3,193 ; 0x00d0 -db 231, 8, 66, 67, 9,199,131,250, 4,126,231,139,140, 36,164, 0 ; 0x00e0 -db 0, 0, 57, 76, 36,116, 15,131,100, 9, 0, 0,139,116, 36,116 ; 0x00f0 -db 35,116, 36,108,139, 68, 36, 96,139, 84, 36,120,193,224, 4,137 ; 0x0100 -db 116, 36, 68, 1,240,129,124, 36, 72,255,255,255, 0,141, 44, 66 ; 0x0110 -db 119, 24, 59, 92, 36, 76, 15,132, 44, 9, 0, 0,193,100, 36, 72 ; 0x0120 -db 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139 ; 0x0130 -db 85, 0,193,232, 11, 15,183,202, 15,175,193, 57,199, 15,131,221 ; 0x0140 -db 1, 0, 0,137, 68, 36, 72,184, 0, 8, 0, 0, 41,200,138, 76 ; 0x0150 -db 36,100,193,248, 5,190, 1, 0, 0, 0,141, 4, 2, 15,182, 84 ; 0x0160 -db 36,115,102,137, 69, 0,139, 68, 36,116, 35, 68, 36,104,139,108 ; 0x0170 -db 36,120,211,224,185, 8, 0, 0, 0, 43, 76, 36,100,211,250, 1 ; 0x0180 -db 208,105,192, 0, 6, 0, 0,131,124, 36, 96, 6,141,132, 5,108 ; 0x0190 -db 14, 0, 0,137, 68, 36, 20, 15,142,202, 0, 0, 0,139, 68, 36 ; 0x01a0 -db 116, 43, 68, 36, 92,139,148, 36,160, 0, 0, 0, 15,182, 4, 2 ; 0x01b0 -db 137, 68, 36, 64,209,100, 36, 64,139, 76, 36, 64,141, 20, 54,139 ; 0x01c0 -db 108, 36, 20,129,225, 0, 1, 0, 0,129,124, 36, 72,255,255,255 ; 0x01d0 -db 0,141, 68, 77, 0,137, 76, 36, 60,141, 44, 16,119, 24, 59, 92 ; 0x01e0 -db 36, 76, 15,132, 96, 8, 0, 0,193,100, 36, 72, 8, 15,182, 3 ; 0x01f0 -db 193,231, 8, 67, 9,199,139, 68, 36, 72,102,139,141, 0, 2, 0 ; 0x0200 -db 0,193,232, 11, 15,183,241, 15,175,198, 57,199,115, 35,137, 68 ; 0x0210 -db 36, 72,184, 0, 8, 0, 0, 41,240,137,214,193,248, 5,131,124 ; 0x0220 -db 36, 60, 0,141, 4, 1,102,137,133, 0, 2, 0, 0,116, 34,235 ; 0x0230 -db 46, 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193,232, 5 ; 0x0240 -db 102, 41,193,131,124, 36, 60, 0,102,137,141, 0, 2, 0, 0,116 ; 0x0250 -db 14,129,254,255, 0, 0, 0, 15,142, 87,255,255,255,235,121,129 ; 0x0260 -db 254,255, 0, 0, 0,127,113,141, 20, 54,139,108, 36, 20, 1,213 ; 0x0270 -db 129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132 ; 0x0280 -db 196, 7, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67 ; 0x0290 -db 9,199,139, 68, 36, 72,102,139, 77, 0,193,232, 11, 15,183,241 ; 0x02a0 -db 15,175,198, 57,199,115, 25,137, 68, 36, 72,184, 0, 8, 0, 0 ; 0x02b0 -db 41,240,137,214,193,248, 5,141, 4, 1,102,137, 69, 0,235,159 ; 0x02c0 -db 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193,232, 5,102 ; 0x02d0 -db 41,193,102,137, 77, 0,235,135,139, 84, 36,116,137,240,139,140 ; 0x02e0 -db 36,160, 0, 0, 0,136, 68, 36,115,136, 4, 10, 66,131,124, 36 ; 0x02f0 -db 96, 3,137, 84, 36,116,127, 13,199, 68, 36, 96, 0, 0, 0, 0 ; 0x0300 -db 233, 27, 7, 0, 0,131,124, 36, 96, 9,127, 10,131,108, 36, 96 ; 0x0310 -db 3,233, 10, 7, 0, 0,131,108, 36, 96, 6,233, 0, 7, 0, 0 ; 0x0320 -db 139, 76, 36, 72, 41,199,139,116, 36, 96, 41,193,137,208,102,193 ; 0x0330 -db 232, 5,102, 41,194,129,249,255,255,255, 0,102,137, 85, 0,139 ; 0x0340 -db 108, 36,120,141,116,117, 0,137,116, 36, 56,119, 22, 59, 92, 36 ; 0x0350 -db 76, 15,132,241, 6, 0, 0, 15,182, 3,193,231, 8,193,225, 8 ; 0x0360 -db 67, 9,199,139,108, 36, 56,137,200,193,232, 11,102,139,149,128 ; 0x0370 -db 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 82,137,198,184 ; 0x0380 -db 0, 8, 0, 0, 41,232,139,108, 36, 88,193,248, 5,139, 76, 36 ; 0x0390 -db 84,141, 4, 2,139, 84, 36, 56,137, 76, 36, 80,139, 76, 36,120 ; 0x03a0 -db 102,137,130,128, 1, 0, 0,139, 68, 36, 92,137,108, 36, 84,137 ; 0x03b0 -db 68, 36, 88, 49,192,131,124, 36, 96, 6, 15,159,192,129,193,100 ; 0x03c0 -db 6, 0, 0,141, 4, 64,137, 68, 36, 96,233,116, 2, 0, 0,137 ; 0x03d0 -db 206, 41,199, 41,198,137,208,102,193,232, 5,139, 76, 36, 56,102 ; 0x03e0 -db 41,194,129,254,255,255,255, 0,102,137,145,128, 1, 0, 0,119 ; 0x03f0 -db 22, 59, 92, 36, 76, 15,132, 77, 6, 0, 0, 15,182, 3,193,231 ; 0x0400 -db 8,193,230, 8, 67, 9,199,139,108, 36, 56,137,242,193,234, 11 ; 0x0410 -db 102,139,141,152, 1, 0, 0, 15,183,193, 15,175,208, 57,215, 15 ; 0x0420 -db 131,227, 0, 0, 0,189, 0, 8, 0, 0,137,214, 41,197,199, 68 ; 0x0430 -db 36, 52, 0, 8, 0, 0,137,232,193,248, 5,141, 4, 1,139, 76 ; 0x0440 -db 36, 56,102,137,129,152, 1, 0, 0,139, 68, 36, 96,139, 76, 36 ; 0x0450 -db 68,193,224, 5, 3, 68, 36,120,129,250,255,255,255, 0,141, 44 ; 0x0460 -db 72,119, 22, 59, 92, 36, 76, 15,132,219, 5, 0, 0, 15,182, 3 ; 0x0470 -db 193,231, 8,193,230, 8, 67, 9,199,102,139,149,224, 1, 0, 0 ; 0x0480 -db 137,240,193,232, 11, 15,183,202, 15,175,193, 57,199,115, 96, 41 ; 0x0490 -db 76, 36, 52,193,124, 36, 52, 5,139,116, 36, 52,137, 68, 36, 72 ; 0x04a0 -db 131,124, 36,116, 0,141, 4, 50,102,137,133,224, 1, 0, 0, 15 ; 0x04b0 -db 132,147, 5, 0, 0, 49,192,131,124, 36, 96, 6,139,172, 36,160 ; 0x04c0 -db 0, 0, 0,139, 84, 36,116, 15,159,192,141, 68, 0, 9,137, 68 ; 0x04d0 -db 36, 96,139, 68, 36,116, 43, 68, 36, 92,138, 68, 5, 0,136, 68 ; 0x04e0 -db 36,115,136, 4, 42, 66,137, 84, 36,116,233, 49, 5, 0, 0, 41 ; 0x04f0 -db 198, 41,199,137,208,102,193,232, 5,102, 41,194,102,137,149,224 ; 0x0500 -db 1, 0, 0,233, 31, 1, 0, 0,137,200, 41,214,102,193,232, 5 ; 0x0510 -db 139,108, 36, 56,102, 41,193, 41,215,129,254,255,255,255, 0,102 ; 0x0520 -db 137,141,152, 1, 0, 0,119, 22, 59, 92, 36, 76, 15,132, 22, 5 ; 0x0530 -db 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199,139, 76 ; 0x0540 -db 36, 56,137,240,193,232, 11,102,139,145,176, 1, 0, 0, 15,183 ; 0x0550 -db 202, 15,175,193, 57,199,115, 35,137,198,184, 0, 8, 0, 0, 41 ; 0x0560 -db 200,139,108, 36, 56,193,248, 5,141, 4, 2,102,137,133,176, 1 ; 0x0570 -db 0, 0,139, 68, 36, 88,233,160, 0, 0, 0,137,241, 41,199, 41 ; 0x0580 -db 193,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 56,129,249 ; 0x0590 -db 255,255,255, 0,102,137,144,176, 1, 0, 0,119, 22, 59, 92, 36 ; 0x05a0 -db 76, 15,132,161, 4, 0, 0, 15,182, 3,193,231, 8,193,225, 8 ; 0x05b0 -db 67, 9,199,139,116, 36, 56,137,200,193,232, 11,102,139,150,200 ; 0x05c0 -db 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 32,137,198,184 ; 0x05d0 -db 0, 8, 0, 0, 41,232,139,108, 36, 56,193,248, 5,141, 4, 2 ; 0x05e0 -db 102,137,133,200, 1, 0, 0,139, 68, 36, 84,235, 38,137,206, 41 ; 0x05f0 -db 199, 41,198,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 56 ; 0x0600 -db 102,137,144,200, 1, 0, 0,139, 84, 36, 84,139, 68, 36, 80,137 ; 0x0610 -db 84, 36, 80,139, 76, 36, 88,137, 76, 36, 84,139,108, 36, 92,137 ; 0x0620 -db 68, 36, 92,137,108, 36, 88, 49,192,131,124, 36, 96, 6,139, 76 ; 0x0630 -db 36,120, 15,159,192,129,193,104, 10, 0, 0,141, 68, 64, 8,137 ; 0x0640 -db 68, 36, 96,129,254,255,255,255, 0,119, 22, 59, 92, 36, 76, 15 ; 0x0650 -db 132,243, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9 ; 0x0660 -db 199,102,139, 17,137,240,193,232, 11, 15,183,234, 15,175,197, 57 ; 0x0670 -db 199,115, 47,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100 ; 0x0680 -db 36, 68, 4,193,248, 5,199, 68, 36, 44, 0, 0, 0, 0,141, 4 ; 0x0690 -db 2,102,137, 1,139, 68, 36, 68,141, 76, 1, 4,137, 76, 36, 16 ; 0x06a0 -db 235,114, 41,198, 41,199,137,208,102,193,232, 5,102, 41,194,129 ; 0x06b0 -db 254,255,255,255, 0,102,137, 17,119, 22, 59, 92, 36, 76, 15,132 ; 0x06c0 -db 132, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199 ; 0x06d0 -db 102,139, 81, 2,137,240,193,232, 11, 15,183,234, 15,175,197, 57 ; 0x06e0 -db 199,115, 59,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100 ; 0x06f0 -db 36, 68, 4,193,248, 5,199, 68, 36, 44, 8, 0, 0, 0,141, 4 ; 0x0700 -db 2,139, 84, 36, 68,102,137, 65, 2,141,140, 17, 4, 1, 0, 0 ; 0x0710 -db 137, 76, 36, 16,199, 68, 36, 48, 3, 0, 0, 0,235, 47, 41,198 ; 0x0720 -db 41,199,137,208,137,116, 36, 72,102,193,232, 5,199, 68, 36, 44 ; 0x0730 -db 16, 0, 0, 0,102, 41,194,199, 68, 36, 48, 8, 0, 0, 0,102 ; 0x0740 -db 137, 81, 2,129,193, 4, 2, 0, 0,137, 76, 36, 16,139, 76, 36 ; 0x0750 -db 48,186, 1, 0, 0, 0,137, 76, 36, 40,141, 44, 18,139,116, 36 ; 0x0760 -db 16, 1,238,129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36 ; 0x0770 -db 76, 15,132,209, 2, 0, 0,193,100, 36, 72, 8, 15,182, 3,193 ; 0x0780 -db 231, 8, 67, 9,199,139, 68, 36, 72,102,139, 22,193,232, 11, 15 ; 0x0790 -db 183,202, 15,175,193, 57,199,115, 24,137, 68, 36, 72,184, 0, 8 ; 0x07a0 -db 0, 0, 41,200,193,248, 5,141, 4, 2,137,234,102,137, 6,235 ; 0x07b0 -db 21, 41, 68, 36, 72, 41,199,137,208,102,193,232, 5,102, 41,194 ; 0x07c0 -db 102,137, 22,141, 85, 1,139,116, 36, 40, 78,137,116, 36, 40,117 ; 0x07d0 -db 137,138, 76, 36, 48,184, 1, 0, 0, 0,211,224, 41,194, 3, 84 ; 0x07e0 -db 36, 44,131,124, 36, 96, 3,137, 84, 36, 12, 15,143,231, 1, 0 ; 0x07f0 -db 0,131, 68, 36, 96, 7,131,250, 3,137,208,126, 5,184, 3, 0 ; 0x0800 -db 0, 0,139,116, 36,120,193,224, 7,199, 68, 36, 36, 6, 0, 0 ; 0x0810 -db 0,141,132, 6, 96, 3, 0, 0,137, 68, 36, 8,184, 1, 0, 0 ; 0x0820 -db 0,141, 44, 0,139,116, 36, 8, 1,238,129,124, 36, 72,255,255 ; 0x0830 -db 255, 0,119, 24, 59, 92, 36, 76, 15,132, 10, 2, 0, 0,193,100 ; 0x0840 -db 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72 ; 0x0850 -db 102,139, 22,193,232, 11, 15,183,202, 15,175,193, 57,199,115, 24 ; 0x0860 -db 137, 68, 36, 72,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4 ; 0x0870 -db 2,102,137, 6,137,232,235, 21, 41, 68, 36, 72, 41,199,137,208 ; 0x0880 -db 102,193,232, 5,102, 41,194,141, 69, 1,102,137, 22,139,108, 36 ; 0x0890 -db 36, 77,137,108, 36, 36,117,137,141, 80,192,131,250, 3,137, 20 ; 0x08a0 -db 36, 15,142, 39, 1, 0, 0,137,208,137,214,209,248,131,230, 1 ; 0x08b0 -db 141, 72,255,131,206, 2,131,250, 13,137, 76, 36, 32,127, 28,139 ; 0x08c0 -db 108, 36,120,211,230, 1,210,137, 52, 36,141, 68,117, 0, 41,208 ; 0x08d0 -db 5, 94, 5, 0, 0,137, 68, 36, 4,235, 86,141, 80,251,129,124 ; 0x08e0 -db 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132, 86, 1 ; 0x08f0 -db 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199 ; 0x0900 -db 209,108, 36, 72, 1,246, 59,124, 36, 72,114, 7, 43,124, 36, 72 ; 0x0910 -db 131,206, 1, 74,117,200,139, 68, 36,120,193,230, 4,137, 52, 36 ; 0x0920 -db 5, 68, 6, 0, 0,199, 68, 36, 32, 4, 0, 0, 0,137, 68, 36 ; 0x0930 -db 4,199, 68, 36, 28, 1, 0, 0, 0,184, 1, 0, 0, 0,139,108 ; 0x0940 -db 36, 4, 1,192,137, 68, 36, 24, 1,197,129,124, 36, 72,255,255 ; 0x0950 -db 255, 0,119, 24, 59, 92, 36, 76, 15,132,234, 0, 0, 0,193,100 ; 0x0960 -db 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72 ; 0x0970 -db 102,139, 85, 0,193,232, 11, 15,183,242, 15,175,198, 57,199,115 ; 0x0980 -db 27,137, 68, 36, 72,184, 0, 8, 0, 0, 41,240,193,248, 5,141 ; 0x0990 -db 4, 2,102,137, 69, 0,139, 68, 36, 24,235, 31, 41, 68, 36, 72 ; 0x09a0 -db 41,199,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 24,102 ; 0x09b0 -db 137, 85, 0,139, 84, 36, 28, 64, 9, 20, 36,139, 76, 36, 32,209 ; 0x09c0 -db 100, 36, 28, 73,137, 76, 36, 32, 15,133,112,255,255,255,139, 52 ; 0x09d0 -db 36, 70,137,116, 36, 92,116, 89,139, 76, 36, 12,139,108, 36,116 ; 0x09e0 -db 131,193, 2, 57,108, 36, 92,119, 95,139,132, 36,160, 0, 0, 0 ; 0x09f0 -db 137,234, 43, 68, 36, 92, 3,148, 36,160, 0, 0, 0,141, 52, 40 ; 0x0a00 -db 138, 6, 70,136, 68, 36,115,136, 2, 66,255, 68, 36,116, 73,116 ; 0x0a10 -db 15,139,172, 36,164, 0, 0, 0, 57,108, 36,116,114,226,235, 17 ; 0x0a20 -db 139,132, 36,164, 0, 0, 0, 57, 68, 36,116, 15,130,187,246,255 ; 0x0a30 -db 255,129,124, 36, 72,255,255,255, 0,119, 21, 59, 92, 36, 76,184 ; 0x0a40 -db 1, 0, 0, 0,116, 41,235, 7,184, 1, 0, 0, 0,235, 32, 67 ; 0x0a50 -db 43,156, 36,148, 0, 0, 0, 49,192,139,148, 36,156, 0, 0, 0 ; 0x0a60 -db 139, 76, 36,116,137, 26,139,156, 36,168, 0, 0, 0,137, 11,131 ; 0x0a70 -db 196,124, 91, 94, 95, 93 ; 0x0a80 diff --git a/src/stub/src/arch/i386/OLD-nasm/macros.ash b/src/stub/src/arch/i386/OLD-nasm/macros.ash deleted file mode 100644 index 584f0368..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/macros.ash +++ /dev/null @@ -1,520 +0,0 @@ -; macros.ash -- -; -; This file is part of the UPX executable compressor. -; -; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -; Copyright (C) 1996-2006 Laszlo Molnar -; All Rights Reserved. -; -; UPX and the UCL library are free software; you can redistribute them -; and/or modify them under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer Laszlo Molnar -; -; - - -;; ============= -;; ============= 32-BIT CALLTRICK & JUMPTRICK -;; ============= - -;; call & jump trick : 2 in 1 -%macro cjt32 1 -%ifdef __CALLTR00__ - mov ecx, 'TEXL' -calltrickloop: - mov al, [edi] - inc edi - sub al, 0xE8 -ct1: - cmp al, 1 - ja calltrickloop -%ifdef __CTCLEVE1__ - cmp byte [edi], '?' - jnz calltrickloop -%endif; __CALLTR01__ - mov eax, [edi] - mov bl, [edi + 4] -%ifdef __CTDUMMY1__ -%ifdef __CTBSHR01__ - shr ax, 8 -%else; __CTBROR01__ - xchg al, ah -%endif; __CTBSWA01__ - rol eax, 16 - xchg al, ah -%endif; __CALLTR02__ - sub eax, edi - sub bl, 0xE8 - %ifnidn %1,0 - add eax, %1 - %endif - mov [edi], eax - add edi, byte 5 - mov al, bl - loop ct1 -%else; __CALLTR10__ -;; 32-bit call XOR jump trick - mov ecx, 'TEXL' -ctloop1: -%ifdef __CALLTRE8__ - mov al,0xE8 -%else; __CALLTRE9__ - mov al,0xE9 -%endif; __CALLTR11__ -ctloop2: - repnz - scasb - jnz ctend -%ifdef __CTCLEVE2__ - cmp byte [edi], '?' - jnz ctloop2 -%endif; __CALLTR12__ - mov eax, [edi] -%ifdef __CTDUMMY2__ -%ifdef __CTBSHR11__ - shr ax, 8 -%else; __CTBROR11__ - xchg al, ah -%endif; __CTBSWA11__ - rol eax, 16 - xchg al, ah -%endif; __CALLTR13__ - sub eax, edi - %ifnidn %1,0 - add eax, %1 - %endif - stosd - jmps ctloop1 -ctend: -%endif; __CTTHEEND__ -%endmacro - - -;; call/jump/jcc trick; also used more than once (and/or optionally), so -;; ecx has byte count (not count of applied instances), and -;; edi points to buffer. -%macro ckt32 2 -; 1st param: effective addvalue (typically 0 or edi; any rvalue) -; 2nd param: where is cto8 (dl, bl, or literal) - -;__CKLLTR00__ - %ifnidn %1,0 - mov esi, %1 - %endif - jmps ckstart -ckloop3: - mov al, [edi] - add edi, byte 1 -;__CKLLTR10__ Jcc only - cmp al, 0x80 ; lo of 6-byte Jcc - jb ckloop2 - cmp al, 0x8f ; hi of 6-byte Jcc - ja ckloop2 - cmp byte [edi -2], 0x0F ; prefix of 6-byte Jcc - je ckmark -ckloop2: -;__CKLLTR20__ - sub al, 0xE8 - cmp al, 0xE9 - 0xE8 - ja ckcount -ckmark: - cmp byte [edi], %2 ; cto8 - jnz ckcount - mov eax, [edi] - - shr ax, 8 - rol eax, 16 - xchg al, ah -; above 3 instr are equivalent to the following 2 instr: -; mov al, 0 ; clear cto8 [setup partial-write stall] -; bswap eax ; not on 386: need 486 and up - - sub eax, edi - %ifnidn %1,0 - add eax, esi - %endif - mov [edi], eax - add edi, byte 4 -ckstart: - sub ecx, byte 4 -;__CKLLTR30__ Jcc only - mov al, [edi] - add edi, byte 1 - loop ckloop2 ; prefix cannot overlap previous displacement -;__CKLLTR40__ -ckcount: - sub ecx, byte 1 - jg ckloop3 -ckend: -%endmacro - -;; ============= -;; ============= 32-BIT RELOCATIONS -;; ============= - -%macro reloc32 3 -; __RELOC320__ -reloc_main: - xor eax, eax - mov al, [%1] - inc %1 - or eax, eax - jz reloc_endx - cmp al, 0xEF - ja reloc_fx -reloc_add: - add %2, eax - %if 1 - mov eax, [%2] - xchg al, ah - rol eax, 16 - xchg al, ah - add eax, %3 - mov [%2], eax - %else - add [%2], %3 - %endif - jmps reloc_main -reloc_fx: - and al, 0x0F - shl eax, 16 - mov ax, [%1] - add %1, byte 2 -%ifdef __REL32BIG__ - or eax, eax - jnz reloc_add - mov eax, [%1] - add %1, byte 4 -%endif; __RELOC32J__ - jmps reloc_add -reloc_endx: -; __REL32END__ -%endmacro - - -;; ============= -;; ============= 32-BIT CALL TRICK UNFILTER WITH MostRecentlyUsed BUFFER -;; ============= - -;;;; names of pseudo-sections for addLoader: -;; LXUNFnnn Linux unfilter -;; LXMRUnnn MostRecentlyUsed recoding of destinations -;; MRUARBnn arbitrary number of entries in wheel -;; MRUBITSn power of 2 entries in wheel (smaller code) -;; MRUBYTEn 256 entries in wheel (smallest code) - -%macro ctojr32 0 -%push ctojr32 - -;; I got confused by the syntactic sugar of the fake %ifdefs. -;; I can read the section name more easily when it is at the left margin. -;; Also, some of the logic to select the sections is not that simple, -;; and any mismatch between the logic and the %ifdefs is very confusing. -;; Instead, I use comments after the section name, and blank lines for grouping. - -;__LXUNF000__ enter at +0 for decompression; +2 for unfiltering - jmps decompr0 -;__LXUNF002__ - ;; 2+ address of decompress subroutine - ;; unfilter(upx_byte *, length, cto8) -lxunfilter: - pop edx ; return address - pop eax ; upx_byte *, same as addvalue - pop ecx ; length - xchg eax, edi ; edi= pointer; eax= saved_edi - pusha ; save C-convention ebx, ebp, esi, edi; also eax, edx - -; at most one of the next 2 -;__MRUBYTE0__ 256==n_mru - xor ebx, ebx ; zero -;__LXMRU005__ 0!=n_mru - mov ebx, 'NMRU' ; modified N_MRU or N_MRU -1 - -;__LXMRU006__ 0!=n_mru - push byte 0x0f ; prefix of 6-byte Jcc - pop eax - mov ah, [esp + 8*4] ; cto8 -;__LXMRU007__ 0==n_mru - push byte 0x0f ; prefix of 6-byte Jcc - pop ebx - mov bh, [esp + 8*4] ; cto8 - -;__LXUNF008__ - mov dl, [esp + 8*4] ; cto8 - -;__LXUNF010__ - jmpn lxunf0 -decompr0: - -;; These %define are only if 0!=n_mru; -;; else 0x0F==bl && cto8==bh==dh && 0xE8==dl && addvalue==esi . -%define %$n_mru [esi] -%define %$n_mru1 [esi] -%define %$tail [esi + 4*1] -%define %$cto8_e8e9 [esi + 4*2] -%define %$cto8_0f [esi + 4*3] -%define %$addvalue [esi + 4*4] -%define %$tmp ebp -%define %$hand ebx -%define %$hand_l bl -%define %$kh edx -%define %$kh_l dl - -;__LXJCC010__ -lxunf2: ; have seen 0x80..0x8f of possible recoded 6-byte Jcc - movzx ebp, word [edi] ; 2 bytes, zero-extended - -;__LXMRU045__ 0!=n_mru - sub ebp, %$cto8_0f -;__LXMRU046__ 0==n_mru - sub ebp, ebx - -;__LXJCC020__ 0==n_mru, or Jcc excluded ('sub' of equals clears Carry) - jne unfcount -;__LXJCC021__ 0!=n_mru and Jcc participates; must set Carry - sub ebp, byte 1 ; set Carry iff in range - jnb unfcount - -;__LXJCC023__ found Jcc; re-swap 0x8Y opcode and 0x0f prefix - mov byte [edi -1], bl ; 0x0f prefix - dec ecx ; preserve Carry - mov byte [edi], al ; Jcc opcode - inc edi ; preserve Carry - -;__LXUNF037__ -%define %$jc eax - -lxunf: ; in: Carry set iff we should apply mru and 0!=n_mru - mov eax, [edi] ; BE32 displacement with cto8 in low 8 bits - -;__LXUNF386__ 0!=n_mru && 386 - pushf -;__LXUNF387__ ==386 - shr ax, 8 - rol eax, 16 - xchg al, ah -;__LXUNF388__ 0!=n_mru && 386 - popf - jnc unf_store ; do not apply mru - -;__LXUNF486__ >=486 - mov al, byte 0 - CPU 486 - bswap eax ; preserve Carry (2-byte instruction) - CPU 386 -;__LXUNF487__ 0!=n_mru && >=486 - jnc unf_store ; do not apply mru - -;__LXMRU065__ 0!=n_mru - shr %$jc, 1 ; eax= jc, or mru index - jnc mru4 ; not 1st time for this jc -;__MRUBYTE3__ - dec %$hand_l -;__MRUARB30__ - dec %$hand -;__MRUBITS3__ - and %$hand, %$n_mru1 -;__MRUARB40__ - jge mru3 - add %$hand, %$n_mru -mru3: -;__LXMRU070__ - - mov [esp + 4*%$hand], %$jc ; 1st time: mru[hand] = jc - jmps unf_store - -mru4: ; not 1st time for this jc - lea %$kh, [%$jc + %$hand] ; kh = jc + hand -;__MRUBYTE4__ - movzx %$kh, %$kh_l -;__MRUBITS4__ - and %$kh, %$n_mru1 -;__MRUARB50__ - cmp %$kh, %$n_mru - jb mru5 - sub %$kh, %$n_mru -mru5: -;__LXMRU080__ - mov %$jc, [esp + 4*%$kh] ; jc = mru[kh] -;__MRUBYTE5__ - dec %$hand_l -;__MRUARB60__ - dec %$hand -;__MRUBITS5__ - and %$hand, %$n_mru1 -;__MRUARB70__ - jge mru6 - add %$hand, %$n_mru -mru6: -;__LXMRU090__ - - mov %$tmp, [esp + 4*%$hand] ; tmp = mru[hand] - test %$tmp,%$tmp - jnz mru8 - - push %$jc ; ran out of registers - mov eax, %$tail - -;__MRUBYTE6__ - dec al -;__MRUARB80__ - dec eax -;__MRUBITS6__ - and eax, %$n_mru1 -;__MRUARB90__ - jge mru7 - add eax, %$n_mru -mru7: -;__LXMRU100__ - - xor %$tmp,%$tmp - mov %$tail, eax - xchg [4+ esp + 4*eax], %$tmp ; tmp = mru[tail]; mru[tail] = 0 - pop %$jc -mru8: - mov [esp + 4*%$kh ], %$tmp ; mru[kh] = tmp - mov [esp + 4*%$hand], %$jc ; mru[hand] = jc -;__LXUNF040__ -unf_store: - sub eax, edi - sub ecx, byte 4 - -; one of the next2 -;__LXMRU110__ 0!=n_mru - add eax, %$addvalue -;__LXMRU111__ 0==n_mru - add eax, esi ; addvalue (same as initial pointer) - -;__LXUNF041__ - mov [edi], eax - add edi, byte 4 - jmps unfcount -;__LXUNF042__ -lxunf0: ;; continuation of entry prolog for unfilter -;__LEXEC016__ bug in APP: jmp and label must be in same .asx/.asy - jmp lxunf0 ; this instr does not really go here! - -;__LXMRU010__ 0!=n_mru - push eax ; cto8_0f -;__LXJMPA00__ only JMP, and not CALL, is filtered - mov al, 0xE9 -;__LXCALLB0__ only CALL, or both CALL and JMP are filtered - mov al, 0xE8 -;__LXUNF021__ common tail - push eax ; cto8_e8e9 - push byte 0 ; tail - push ebx ; n_mru or n_mru1 - mov esi, esp ; flat model "[esi]" saves a byte over "[ebp]" - -;__LXMRU022__ 0==n_mru - pop esi ; addvalue - mov edx, ebx ; dh= cto8 -;__LXJMPA01__ only JMP, and not CALL, is filtered - mov dl, 0xE9 -;__LXCALLB1__ only CALL, or both CALL and JMP are filtered - mov dl, 0xE8 - - -;__MRUBITS1__ - inc %$hand ; n_mru1 ==> n_mru -;__LXMRU030__ -lxunf1: ; allocate and clear mru[] - push byte 0 - -; one of the next 2, if n_mru -;__MRUBYTE1__ - dec %$hand_l -;__MRUARB10__ - dec %$hand - -;__LXMRU040__ 0!=n_mru - jnz lxunf1 ; leaves 0=='hand' - -;__LXUNF030__ -lxctloop: - movzx eax, word [edi] ; 2 bytes, zero extended - add edi, byte 1 -;__LXJCC000__ - cmp al, 0x80 ; lo of Jcc - jb lxct1 - cmp al, 0x8f ; hi of Jcc - jbe lxunf2 -lxct1: - -;__LXCJ0MRU__ 0==n_mru - sub eax, edx -;__LXCJ1MRU__ 0!=n_mru - sub eax, %$cto8_e8e9 - -; both CALL and JMP are filtered -;__LXCALJMP__ - sub eax, byte 1+ (0xE9 - 0xE8) ; set Carry iff in range (result: -2, -1) - -; only CALL, or only JMP, is filtered -;__LXCALL00__ 0==n_mru - je lxunf -;__LXCALL01__ 0!=n_rmu - sub eax, byte 1 ; set Carry iff in range - -;__LXCJ2MRU__ 0==n_mru, or apply mru to all that are filtered here - jb lxunf ; only Carry (Borrow) matters -;__LXCJ4MRU__ 0!=n_mru, but apply mru only to subset of filtered here - jnb unfcount ; was not filtered anyway: do not unfilter - -;we will unfilter, and 0!=n_mru, but should we apply mru? -;__LXCJ6MRU__ apply mru to JMP only (0xFF==al) - jpe lxct3 ; jump if even number of 1 bits in al -;__LXCJ7MRU__ apply mru to CALL only (0xFE==al) - jpo lxct3 ; jump if odd number of 1 bits in al -;__LXCJ8MRU__ do not apply mru to one or both - clc -lxct3: - jmps lxunf - -;__LXUNF034__ -unfcount: - sub ecx, byte 1 - jg lxctloop - -;__LXMRU055__ - mov edi, esp ; clear mru[] portion of stack -;__MRUBYTE2__ - mov ecx, 4+ 256 ; unused, tail, cto8_e8e9, cto8_0f -;__MRUBITS2__ - mov ecx, %$n_mru1 - add ecx, byte 1+ 4 ; n_mru1, tail, cto8_e8e9, cto8_0f -;__MRUARB20__ - mov ecx, %$n_mru - add ecx, byte 4 ; n_mru, tail, cto8_e8e9, cto8_0f -;__LXMRU057__ - xor eax, eax - rep - stosd - mov esp, edi - -;__LXMRU058__ 0==n_mru - push esi -;__LXUNF035__ - popa - xchg eax, edi - push ecx - push eax - push edx - ret -%pop -%endmacro - -; vi:ts=8:et:nowrap diff --git a/src/stub/src/arch/i386/OLD-nasm/nrv2b_d32.ash b/src/stub/src/arch/i386/OLD-nasm/nrv2b_d32.ash deleted file mode 100644 index af49cbd3..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/nrv2b_d32.ash +++ /dev/null @@ -1,198 +0,0 @@ -; n2b_d32.ash -- ucl_nrv2b_decompress_le32 in 32-bit assembly -; -; This file is part of the UCL data compression library. -; -; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -; All Rights Reserved. -; -; The UCL library is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; The UCL library is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with the UCL library; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer -; -; http://www.oberhumer.com/opensource/ucl/ -; - - -; ------------- DECOMPRESSION ------------- - -; Input: -; esi - source -; edi - dest -; ebp - -1 -; cld - -; Output: -; eax - 0 -; ecx - 0 - - - %ifndef jmps - %define jmps jmp short - %endif - %ifndef jmpn - %define jmpn jmp near - %endif - - CPU 386 - - -%macro getbit_n2b 1 - %if %1==1 - add ebx, ebx - jnz %%gotbit - %endif - mov ebx, [esi] - sub esi, byte -4 - adc ebx, ebx -%%gotbit: -%endmacro -%undef getbit -%define getbit getbit_n2b - - -%ifdef __N2BSMA10__ - jmps dcl1_n2b -decompr_literals_n2b: - movsb -%else; __N2BFAS10__ - jmps dcl1_n2b - align 8 -; __N2BFAS11__ -decompr_literalb_n2b: - mov al, [esi] - inc esi - mov [edi], al - inc edi -%endif; __N2BDEC10__ - - -decompr_loop_n2b: - add ebx, ebx - jnz dcl2_n2b -dcl1_n2b: - getbit 32 -dcl2_n2b: -%ifdef __N2BSMA20__ - jc decompr_literals_n2b - xor eax, eax - inc eax -%else; __N2BFAS20__ - %ifndef UPX102 - mov al, [edi] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jc decompr_literalb_n2b - mov eax, 1 -%endif; __N2BDEC20__ -loop1_n2b: - getbit 1 - adc eax, eax -%ifdef __N2BSMA30__ - getbit 1 - jnc loop1_n2b -%else; __N2BFAS30__ - add ebx, ebx - jnc loop1_n2b - jnz loopend1_n2b - getbit 32 - jnc loop1_n2b -loopend1_n2b: -%endif; __N2BDEC30__ - xor ecx, ecx - sub eax, byte 3 - jb decompr_ebpeax_n2b - shl eax, 8 - mov al, [esi] - inc esi - xor eax, byte -1 - jz decompr_end_n2b - mov ebp, eax -decompr_ebpeax_n2b: - getbit 1 - adc ecx, ecx - getbit 1 - adc ecx, ecx - jnz decompr_got_mlen_n2b - inc ecx -loop2_n2b: - getbit 1 - adc ecx, ecx -%ifdef __N2BSMA40__ - getbit 1 - jnc loop2_n2b -%else; __N2BFAS40__ - add ebx, ebx - jnc loop2_n2b - jnz loopend2_n2b - getbit 32 - jnc loop2_n2b -loopend2_n2b: -%endif; __N2BDUMM1__ -%ifdef __N2BSMA50__ - inc ecx - inc ecx -%else; __N2BFAS50__ - add ecx, byte 2 -%endif; __N2BDEC50__ -decompr_got_mlen_n2b: - cmp ebp, -0xd00 - adc ecx, byte 1 -%ifdef __N2BSMA60__ - %ifndef UPX102 - push esi - %else - mov edx, esi - %endif - lea esi, [edi+ebp] - rep - movsb - %ifndef UPX102 - pop esi - %else - mov esi, edx - %endif - jmpn decompr_loop_n2b -%else; __N2BFAS60__ - lea edx, [edi+ebp] - cmp ebp, byte -4 - %ifndef UPX102 - mov al, [edi+ecx] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jbe decompr_copy4_n2b -loop3_n2b: - mov al, [edx] - inc edx - mov [edi], al - inc edi - dec ecx - jnz loop3_n2b - jmpn decompr_loop_n2b -; __N2BFAS61__ - align 4 -decompr_copy4_n2b: - mov eax, [edx] - add edx, byte 4 - mov [edi], eax - add edi, byte 4 - sub ecx, byte 4 - ja decompr_copy4_n2b - add edi, ecx - jmpn decompr_loop_n2b -%endif; __N2BDEC60__ -decompr_end_n2b: -; __NRV2BEND__ - -; vi:ts=8:et - diff --git a/src/stub/src/arch/i386/OLD-nasm/nrv2d_d32.ash b/src/stub/src/arch/i386/OLD-nasm/nrv2d_d32.ash deleted file mode 100644 index d18d6cde..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/nrv2d_d32.ash +++ /dev/null @@ -1,206 +0,0 @@ -; n2d_d32.ash -- ucl_nrv2d_decompress_le32 in 32-bit assembly -; -; This file is part of the UCL data compression library. -; -; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -; All Rights Reserved. -; -; The UCL library is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; The UCL library is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with the UCL library; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer -; -; http://www.oberhumer.com/opensource/ucl/ -; - - -; ------------- DECOMPRESSION ------------- - -; Input: -; esi - source -; edi - dest -; ebp - -1 -; cld - -; Output: -; eax - 0 -; ecx - 0 - - - %ifndef jmps - %define jmps jmp short - %endif - %ifndef jmpn - %define jmpn jmp near - %endif - - CPU 386 - - -%macro getbit_n2d 1 - %if %1==1 - add ebx, ebx - jnz %%gotbit - %endif - mov ebx, [esi] - sub esi, byte -4 - adc ebx, ebx -%%gotbit: -%endmacro -%undef getbit -%define getbit getbit_n2d - - -%ifdef __N2DSMA10__ - jmps dcl1_n2d -decompr_literals_n2d: - movsb -%else; __N2DFAS10__ - jmps dcl1_n2d - align 8 -; __N2DFAS11__ -decompr_literalb_n2d: - mov al, [esi] - inc esi - mov [edi], al - inc edi -%endif; __N2DDEC10__ - - -decompr_loop_n2d: - add ebx, ebx - jnz dcl2_n2d -dcl1_n2d: - getbit 32 -dcl2_n2d: -%ifdef __N2DSMA20__ - jc decompr_literals_n2d - xor eax, eax - inc eax -%else; __N2DFAS20__ - %ifndef UPX102 - mov al, [edi] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jc decompr_literalb_n2d - mov eax, 1 -%endif; __N2DDEC20__ -loop1_n2d: - getbit 1 - adc eax, eax -%ifdef __N2DSMA30__ - getbit 1 - jc loopend1_n2d -%else; __N2DFAS30__ - add ebx, ebx - jnc loopcontinue1_n2d - jnz loopend1_n2d - getbit 32 - jc loopend1_n2d -loopcontinue1_n2d: -%endif; __N2DDEC30__ - dec eax - getbit 1 - adc eax, eax - jmps loop1_n2d -loopend1_n2d: - xor ecx, ecx - sub eax, byte 3 - jb decompr_prev_dist_n2d - shl eax, 8 - mov al, [esi] - inc esi - xor eax, byte -1 - jz decompr_end_n2d - sar eax, 1 ; shift low-bit into carry - mov ebp, eax - jmps decompr_ebpeax_n2d -decompr_prev_dist_n2d: - getbit 1 -decompr_ebpeax_n2d: - adc ecx, ecx - getbit 1 - adc ecx, ecx - jnz decompr_got_mlen_n2d - inc ecx -loop2_n2d: - getbit 1 - adc ecx, ecx -%ifdef __N2DSMA40__ - getbit 1 - jnc loop2_n2d -%else; __N2DFAS40__ - add ebx, ebx - jnc loop2_n2d - jnz loopend2_n2d - getbit 32 - jnc loop2_n2d -loopend2_n2d: -%endif; __N2DDUMM1__ -%ifdef __N2DSMA50__ - inc ecx - inc ecx -%else; __N2DFAS50__ - add ecx, byte 2 -%endif; __N2DDEC50__ -decompr_got_mlen_n2d: - cmp ebp, -0x500 - adc ecx, byte 1 -%ifdef __N2DSMA60__ - %ifndef UPX102 - push esi - %else - mov edx, esi - %endif - lea esi, [edi+ebp] - rep - movsb - %ifndef UPX102 - pop esi - %else - mov esi, edx - %endif - jmpn decompr_loop_n2d -%else; __N2DFAS60__ - lea edx, [edi+ebp] - cmp ebp, byte -4 - %ifndef UPX102 - mov al, [edi+ecx] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jbe decompr_copy4_n2d -loop3_n2d: - mov al, [edx] - inc edx - mov [edi], al - inc edi - dec ecx - jnz loop3_n2d - jmpn decompr_loop_n2d -; __N2DFAS61__ - align 4 -decompr_copy4_n2d: - mov eax, [edx] - add edx, byte 4 - mov [edi], eax - add edi, byte 4 - sub ecx, byte 4 - ja decompr_copy4_n2d - add edi, ecx - jmpn decompr_loop_n2d -%endif; __N2DDEC60__ -decompr_end_n2d: -; __NRV2DEND__ - -; vi:ts=8:et - diff --git a/src/stub/src/arch/i386/OLD-nasm/nrv2e_d32.ash b/src/stub/src/arch/i386/OLD-nasm/nrv2e_d32.ash deleted file mode 100644 index 652cbf54..00000000 --- a/src/stub/src/arch/i386/OLD-nasm/nrv2e_d32.ash +++ /dev/null @@ -1,211 +0,0 @@ -; n2e_d32.ash -- ucl_nrv2e_decompress_le32 in 32-bit assembly -; -; This file is part of the UCL data compression library. -; -; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -; All Rights Reserved. -; -; The UCL library is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License as -; published by the Free Software Foundation; either version 2 of -; the License, or (at your option) any later version. -; -; The UCL library is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with the UCL library; see the file COPYING. -; If not, write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -; -; Markus F.X.J. Oberhumer -; -; http://www.oberhumer.com/opensource/ucl/ -; - - -; ------------- DECOMPRESSION ------------- - -; Input: -; esi - source -; edi - dest -; ebp - -1 -; cld - -; Output: -; eax - 0 -; ecx - 0 - - - %ifndef jmps - %define jmps jmp short - %endif - %ifndef jmpn - %define jmpn jmp near - %endif - - CPU 386 - - -%macro getbit_n2e 1 - %if %1==1 - add ebx, ebx - jnz %%gotbit - %endif - mov ebx, [esi] - sub esi, byte -4 - adc ebx, ebx -%%gotbit: -%endmacro -%undef getbit -%define getbit getbit_n2e - - -%ifdef __N2ESMA10__ - jmps dcl1_n2e -decompr_literals_n2e: - movsb -%else; __N2EFAS10__ - jmps dcl1_n2e - align 8 -; __N2EFAS11__ -decompr_literalb_n2e: - mov al, [esi] - inc esi - mov [edi], al - inc edi -%endif; __N2EDEC10__ - - -decompr_loop_n2e: - add ebx, ebx - jnz dcl2_n2e -dcl1_n2e: - getbit 32 -dcl2_n2e: -%ifdef __N2ESMA20__ - jc decompr_literals_n2e - xor eax, eax - inc eax -%else; __N2EFAS20__ - %ifndef UPX102 - mov al, [edi] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jc decompr_literalb_n2e - mov eax, 1 -%endif; __N2EDEC20__ -loop1_n2e: - getbit 1 - adc eax, eax -%ifdef __N2ESMA30__ - getbit 1 - jc loopend1_n2e -%else; __N2EFAS30__ - add ebx, ebx - jnc loopcontinue1_n2e - jnz loopend1_n2e - getbit 32 - jc loopend1_n2e -loopcontinue1_n2e: -%endif; __N2EDEC30__ - dec eax - getbit 1 - adc eax, eax - jmps loop1_n2e - -decompr_mlen1_n2e: - getbit 1 - adc ecx, ecx - jmps decompr_got_mlen_n2e - -loopend1_n2e: - xor ecx, ecx - sub eax, byte 3 - jb decompr_prev_dist_n2e - shl eax, 8 - mov al, [esi] - inc esi - xor eax, byte -1 - jz decompr_end_n2e - sar eax, 1 ; shift low-bit into carry - mov ebp, eax - jmps decompr_ebpeax_n2e -decompr_prev_dist_n2e: - getbit 1 -decompr_ebpeax_n2e: - jc decompr_mlen1_n2e - inc ecx - getbit 1 - jc decompr_mlen1_n2e -loop2_n2e: - getbit 1 - adc ecx, ecx -%ifdef __N2ESMA40__ - getbit 1 - jnc loop2_n2e -%else; __N2EFAS40__ - add ebx, ebx - jnc loop2_n2e - jnz loopend2_n2e - getbit 32 - jnc loop2_n2e -loopend2_n2e: -%endif; __N2EDUMM1__ -%ifdef __N2ESMA50__ - inc ecx - inc ecx -%else; __N2EFAS50__ - add ecx, byte 2 -%endif; __N2EDEC50__ -decompr_got_mlen_n2e: - cmp ebp, -0x500 - adc ecx, byte 2 -%ifdef __N2ESMA60__ - %ifndef UPX102 - push esi - %else - mov edx, esi - %endif - lea esi, [edi+ebp] - rep - movsb - %ifndef UPX102 - pop esi - %else - mov esi, edx - %endif - jmpn decompr_loop_n2e -%else; __N2EFAS60__ - lea edx, [edi+ebp] - cmp ebp, byte -4 - %ifndef UPX102 - mov al, [edi+ecx] ;; force data cache allocate (PentiumPlain or MMX) - %endif - jbe decompr_copy4_n2e -loop3_n2e: - mov al, [edx] - inc edx - mov [edi], al - inc edi - dec ecx - jnz loop3_n2e - jmpn decompr_loop_n2e -; __N2EFAS61__ - align 4 -decompr_copy4_n2e: - mov eax, [edx] - add edx, byte 4 - mov [edi], eax - add edi, byte 4 - sub ecx, byte 4 - ja decompr_copy4_n2e - add edi, ecx - jmpn decompr_loop_n2e -%endif; __N2EDEC60__ -decompr_end_n2e: -; __NRV2EEND__ - -; vi:ts=8:et - diff --git a/src/stub/src/arch/m68k/bits.ash b/src/stub/src/arch/m68k/bits.ash index e9f15a5d..8d725b0b 100644 --- a/src/stub/src/arch/m68k/bits.ash +++ b/src/stub/src/arch/m68k/bits.ash @@ -27,13 +27,14 @@ ; */ + // ------------- ADDBITS ------------- macro(ADDBITS) #if (NRV_BB == 8) - add.b d0,d0 // sets Z, C and X // 4 + add.b d0,d0 // sets Z, C and X // 4 #elif (NRV_BB == 32) - add.l d0,d0 // sets Z, C and X // 6 + add.l d0,d0 // sets Z, C and X // 6 #endif endm @@ -41,9 +42,9 @@ macro(ADDBITS) #if 0 macro(ADDXBITS) #if (NRV_BB == 8) - addx.b d0,d0 // sets C and X // 4 + addx.b d0,d0 // sets C and X // 4 #elif (NRV_BB == 32) - addx.l d0,d0 // sets C and X // 8 + addx.l d0,d0 // sets C and X // 8 #endif endm #endif @@ -55,7 +56,7 @@ macro(ADDXBITS) macro(FILLBYTES_8) // note: we shift the X flag through -> must init d0.b with $80 move.b (a0)+,d0 // 8 - addx.b d0,d0 // sets C and X // 4 + addx.b d0,d0 // sets C and X // 4 endm @@ -70,8 +71,8 @@ macro(FILLBYTES_LE32) ror.l #8,d0 // 24 move.b (a0)+,d0 // 8 ror.l #8,d0 // 24 - add.l d0,d0 // sets C and X // 6 - bset #0,d0 // only changes Z // 12 + add.l d0,d0 // sets C and X // 6 + bset #0,d0 // only changes Z // 12 // ----- // 146 #elif 1 @@ -82,9 +83,9 @@ macro(FILLBYTES_LE32) move.b 1(a0),d0 // 12 lsl.w #8,d0 // 22 move.b (a0),d0 // 8 - addq.l #4,a0 // does not affect flags // 8 - add.l d0,d0 // sets C and X // 6 - bset #0,d0 // only changes Z // 12 + addq.l #4,a0 // does not affect flags// 8 + add.l d0,d0 // sets C and X // 6 + bset #0,d0 // only changes Z // 12 // ----- // 118 #elif 1 @@ -97,8 +98,8 @@ macro(FILLBYTES_LE32) move.b 1(a0),d0 // 12 ror.w #8,d0 // 22 move.b (a0),d0 // 8 - addq.l #4,a0 // does not affect flags // 8 - addx.l d0,d0 // sets C and X // 8 + addq.l #4,a0 // does not affect flags// 8 + addx.l d0,d0 // sets C and X // 8 // ----- // 108 #else @@ -107,13 +108,13 @@ macro(FILLBYTES_LE32) // note: we shift the X flag through -> must init d0.l with $80000000 // note: must use dc.l because of a bug in the pasm assembler // note: may access past the end of the input// this is ok for UPX - dc.l $01080003 // movep.w 3(a0),d0 // 16 + dc.l $01080003 // movep.w 3(a0),d0 // 16 move.b 2(a0),d0 // 12 swap d0 // 4 - dc.l $01080001 // movep.w 1(a0),d0 // 16 + dc.l $01080001 // movep.w 1(a0),d0 // 16 move.b (a0),d0 // 8 - addq.l #4,a0 // does not affect flags // 8 - addx.l d0,d0 // sets C and X // 8 + addq.l #4,a0 // does not affect flags// 8 + addx.l d0,d0 // sets C and X // 8 // ----- // 72 #endif diff --git a/src/stub/src/arch/m68k/nrv2b_d.ash b/src/stub/src/arch/m68k/nrv2b_d.ash index 533b0a32..257962e2 100644 --- a/src/stub/src/arch/m68k/nrv2b_d.ash +++ b/src/stub/src/arch/m68k/nrv2b_d.ash @@ -198,7 +198,7 @@ decompr_got_mlen: sub.l d6,d1 addx.w d7,d2 -// TODO: partly unroll this loop// could use some magic with d7 for address +// TODO: partly unroll this loop; could use some magic with d7 for address // computations, then compute a nice `jmp yyy(pc,dx.w)' #if 1 diff --git a/src/stub/src/arch/m68k/nrv2d_d.ash b/src/stub/src/arch/m68k/nrv2d_d.ash index d9bea080..a0313856 100644 --- a/src/stub/src/arch/m68k/nrv2d_d.ash +++ b/src/stub/src/arch/m68k/nrv2d_d.ash @@ -206,7 +206,7 @@ decompr_got_mlen: sub.l d6,d1 addx.w d7,d2 -// TODO: partly unroll this loop// could use some magic with d7 for address +// TODO: partly unroll this loop; could use some magic with d7 for address // computations, then compute a nice `jmp yyy(pc,dx.w)' #if 1 diff --git a/src/stub/src/arch/m68k/nrv2e_d.ash b/src/stub/src/arch/m68k/nrv2e_d.ash index 86c913aa..e6138a80 100644 --- a/src/stub/src/arch/m68k/nrv2e_d.ash +++ b/src/stub/src/arch/m68k/nrv2e_d.ash @@ -205,7 +205,7 @@ decompr_got_mlen: sub.l d6,d1 addx.w d7,d2 -// TODO: partly unroll this loop// could use some magic with d7 for address +// TODO: partly unroll this loop; could use some magic with d7 for address // computations, then compute a nice `jmp yyy(pc,dx.w)' #if 1 diff --git a/src/stub/src/arch/mips/mipsel.r3000/macros.ash b/src/stub/src/arch/mips/mipsel.r3000/macros.ash index c3a88965..39227cbc 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/macros.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/macros.ash @@ -71,17 +71,12 @@ #define ELSE .else #define ENDIF .endif -#define DW .word -#define DB .byte - .macro subiu reg, p1, p2 - .ifnb p2 addiu \reg, p1, -p2 .else addiu \reg, -p1 .endif - .endm #ifndef DEBUG diff --git a/src/stub/src/i086-dos16.com.S b/src/stub/src/i086-dos16.com.S index 55718974..10fb0806 100644 --- a/src/stub/src/i086-dos16.com.S +++ b/src/stub/src/i086-dos16.com.S @@ -29,7 +29,7 @@ #define COM 1 #define CJT16 1 -#include "arch/i086/macros.ash" +#include "arch/i086/macros.S" CPU 8086 @@ -69,7 +69,7 @@ section COMMAIN2 section COMCUTPO -#include "arch/i086/nrv2b_d16.ash" /* decompressor & calltrick */ +#include "arch/i086/nrv2b_d16.S" /* decompressor & calltrick */ section CORETURN ret diff --git a/src/stub/src/i086-dos16.exe.S b/src/stub/src/i086-dos16.exe.S index 998f4d9c..61b8c04e 100644 --- a/src/stub/src/i086-dos16.exe.S +++ b/src/stub/src/i086-dos16.exe.S @@ -27,8 +27,8 @@ ; */ -#define EXE -#include "arch/i086/macros.ash" +#define EXE 1 +#include "arch/i086/macros.S" CPU 8086 @@ -116,9 +116,9 @@ section EXEMAIN4 section EXECUTPO -#include "arch/i086/nrv2b_d8.ash" -#include "arch/i086/nrv2d_d8.ash" -#include "arch/i086/nrv2e_d8.ash" +#include "arch/i086/nrv2b_d8.S" +#include "arch/i086/nrv2d_d8.S" +#include "arch/i086/nrv2e_d8.S" section EXEMAIN5 pop bp diff --git a/src/stub/src/i086-dos16.sys.S b/src/stub/src/i086-dos16.sys.S index d46bcb6f..ee52f5e3 100644 --- a/src/stub/src/i086-dos16.sys.S +++ b/src/stub/src/i086-dos16.sys.S @@ -27,11 +27,10 @@ ; */ - #define SYS 1 #define COM 0 #define CJT16 1 -#include "arch/i086/macros.ash" +#include "arch/i086/macros.S" CPU 8086 @@ -90,7 +89,7 @@ section SYSMAIN3 section SYSCUTPO -#include "arch/i086/nrv2b_d16.ash" +#include "arch/i086/nrv2b_d16.S" section SYSMAIN5 pop es diff --git a/src/stub/src/include/header.S b/src/stub/src/include/header.S index 79043581..71a41974 100644 --- a/src/stub/src/include/header.S +++ b/src/stub/src/include/header.S @@ -1,5 +1,5 @@ /* -; header.ash -- +; header.S -- ; ; This file is part of the UPX executable compressor. ; @@ -27,38 +27,34 @@ ; */ -#define db .byte -#define dw .short -#define dd .long - section UPX1HEAD - db 85,80,88,33 // 0 UPX_MAGIC_LE32 - db 161,216,208,213 // UPX_MAGIC2_LE32 - dd 0 // 8 uncompressed adler32 - dd 0 // 12 compressed adler32 + .byte 85,80,88,33 // 0 UPX_MAGIC_LE32 + .byte 161,216,208,213 // UPX_MAGIC2_LE32 + .long 0 // 8 uncompressed adler32 + .long 0 // 12 compressed adler32 #ifdef COM - dw 0 // 16 uncompressed len - dw 0 // 18 compressed len - db 0 // 20 filter - db 45 // 21 header checksum + .short 0 // 16 uncompressed len + .short 0 // 18 compressed len + .byte 0 // 20 filter + .byte 45 // 21 header checksum #elif defined(EXE) - db 0,0,0 // 16 uncompressed len - db 0,0,0 // 19 compressed len - db 0,0,0 // 22 original file size - db 0 // 25 filter - db 45 // 26 header checksum + .byte 0,0,0 // 16 uncompressed len + .byte 0,0,0 // 19 compressed len + .byte 0,0,0 // 22 original file size + .byte 0 // 25 filter + .byte 45 // 26 header checksum #else - dd 0 // 16 uncompressed len - dd 0 // 20 compressed len - dd 0 // 24 original file size - db 0 // 28 filter id - db 0 // 29 filter cto - db 0 // unused - db 45 // 31 header checksum + .long 0 // 16 uncompressed len + .long 0 // 20 compressed len + .long 0 // 24 original file size + .byte 0 // 28 filter id + .byte 0 // 29 filter cto + .byte 0 // unused + .byte 45 // 31 header checksum #endif -/* vi:ts=8:et:nowrap */ +// vi:ts=8:et:nowrap