一年前我曾写过一篇《手写PE文件,打造史上最小LZMA解压DLL》,最近因为涉及毕业设计,重新开始研究PE,同时也需要提供LZMA压缩功能。
对原来的程序观察后发现,UPX使用的LZMA代码并不是最优化的编译,原因是局部变量全部使用ESP寻址,而Intel x86对寄存器寻址有个ESP例外,需要多占用一字节的指令。于是重新翻出LZMA SDK,使用VC6编译出2409字节的代码(原来是2694字节)。
另外一个问题就是原来开头写的sub esp, 3e80是不对的。Windows分页机制规定,栈分配是逐页进行的,当当前栈位于页顶端时访问上面的页会引发栈空间分配,但跨页访问即认为访问越界。显然3e80可能会造成跨页访问导致程序崩溃。
这次最终的DLL文件是2970字节,缩小至原来的90%。
这次先贴代码,DLL文件以后再更新后发,因为看上去可以通过修改SDK使文件更精简。
-
.386
-
.model flat
-
.code
-
push ebp
-
mov ebp,esp
-
mov ecx,0fa0h
-
push 0
-
loopd $-2
-
mov eax,esp
-
push eax
-
add eax,4
-
push [ebp+0ch]
-
push [ebp+8]
-
push eax
-
add eax,4
-
push [ebp+14h]
-
push [ebp+10h]
-
push eax
-
mov dword ptr [eax],20003h
-
push eax
-
db 55h,8Bh,0ECh,83h,0ECh,40h,8Bh,45h,8,53h,56h,57h,8Ah,48h,2,6Ah
-
db 1,80h,65h,0Bh,0,5Bh,8Bh,0D3h,33h,0F6h,0D3h,0E2h,8Ah,48h,1,8Dh
-
db 78h,4,89h,7Dh,0E8h,89h,75h,0E4h,89h,75h,0F8h,89h,5Dh,0F0h,4Ah,89h
-
db 5Dh,0DCh,89h,55h,0C4h,8Bh,0D3h,0D3h,0E2h,8Bh,4Dh,14h,89h,5Dh,0E0h,89h
-
db 5Dh,0D4h,4Ah,89h,55h,0C0h,0Fh,0BEh,10h,89h,31h,8Bh,4Dh,20h,89h,55h
-
db 0C8h,89h,31h,8Ah,48h,1,3,0CAh,0B8h,0,3,0,0,0D3h,0E0h,5
-
db 36h,7,0,0,74h,10h,8Bh,0C8h,0B8h,0,4,0,4,0D1h,0E9h,0F3h
-
db 0ABh,13h,0C9h,66h,0F3h,0ABh,8Bh,45h,0Ch,8Bh,4Dh,10h,89h,45h,0FCh,3
-
db 0C1h,89h,45h,0F4h,8Bh,45h,0FCh,83h,0CAh,0FFh,89h,75h,10h,33h,0C9h,3Bh
-
db 45h,0F4h,0Fh,84h,0B0h,8,0,0,8Bh,7Dh,10h,0Fh,0B6h,18h,0C1h,0E7h
-
db 8,0Bh,0FBh,40h,41h,89h,7Dh,10h,83h,0F9h,5,89h,45h,0FCh,7Ch,0DFh
-
db 39h,75h,1Ch,0Fh,86h,97h,8,0,0,8Bh,7Dh,0C4h,8Bh,45h,0F8h,23h
-
db 7Dh,0E4h,8Bh,4Dh,0E8h,0C1h,0E0h,4,3,0C7h,81h,0FAh,0,0,0,1
-
db 8Dh,0Ch,41h,73h,21h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,67h,8,0
-
db 0,8Bh,75h,10h,0Fh,0B6h,18h,0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F3h,40h
-
db 89h,75h,10h,89h,45h,0FCh,66h,8Bh,1,8Bh,0F2h,0Fh,0B7h,0D8h,0C1h,0EEh
-
db 0Bh,0Fh,0AFh,0F3h,39h,75h,10h,0Fh,83h,0ADh,1,0,0,8Bh,0D6h,0BFh
-
db 0,8,0,0,0Fh,0B7h,0F0h,2Bh,0FEh,8Bh,75h,0C0h,0C1h,0FFh,5,3
-
db 0F8h,23h,75h,0E4h,0Fh,0B6h,45h,0Bh,66h,89h,39h,0B1h,8,2Ah,4Dh,0C8h
-
db 6Ah,1,5Bh,0D3h,0E8h,8Bh,4Dh,0C8h,0D3h,0E6h,8Bh,4Dh,0E8h,3,0C6h,8Dh
-
db 4,40h,0C1h,0E0h,9,83h,7Dh,0F8h,7,8Dh,84h,8,6Ch,0Eh,0,0
-
db 89h,45h,8,0Fh,8Ch,0B5h,0,0,0,8Bh,45h,0E4h,8Bh,4Dh,18h,2Bh
-
db 45h,0F0h,0Fh,0B6h,4,8,89h,45h,0D8h,0D1h,65h,0D8h,8Bh,45h,0D8h,8Bh
-
db 4Dh,8,25h,0,1,0,0,89h,45h,0CCh,3,0C3h,81h,0FAh,0,0
-
db 0,1,8Dh,8Ch,41h,0,2,0,0,73h,21h,8Bh,45h,0FCh,3Bh,45h
-
db 0F4h,0Fh,84h,0B1h,7,0,0,8Bh,75h,10h,0Fh,0B6h,38h,0C1h,0E6h,8
-
db 0C1h,0E2h,8,0Bh,0F7h,40h,89h,75h,10h,89h,45h,0FCh,66h,8Bh,1,8Bh
-
db 0F2h,0Fh,0B7h,0F8h,0C1h,0EEh,0Bh,0Fh,0AFh,0F7h,39h,75h,10h,73h,1Bh,8Bh
-
db 0D6h,0BEh,0,8,0,0,2Bh,0F7h,0C1h,0FEh,5,3,0F0h,0D1h,0E3h,83h
-
db 7Dh,0CCh,0,66h,89h,31h,75h,2Eh,0EBh,1Bh,29h,75h,10h,2Bh,0D6h,66h
-
db 8Bh,0F0h,8Dh,5Ch,1Bh,1,66h,0C1h,0EEh,5,2Bh,0C6h,83h,7Dh,0CCh,0
-
db 66h,89h,1,74h,11h,81h,0FBh,0,1,0,0,0Fh,8Dh,82h,0,0
-
db 0,0E9h,63h,0FFh,0FFh,0FFh,81h,0FBh,0,1,0,0,7Dh,75h,8Bh,45h
-
db 8,8Dh,3Ch,1Bh,89h,7Dh,0CCh,3,0F8h,81h,0FAh,0,0,0,1,73h
-
db 21h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,1Bh,7,0,0,8Bh,4Dh,10h
-
db 0Fh,0B6h,30h,0C1h,0E1h,8,0C1h,0E2h,8,0Bh,0CEh,40h,89h,4Dh,10h,89h
-
db 45h,0FCh,66h,8Bh,7,8Bh,0CAh,0Fh,0B7h,0F0h,0C1h,0E9h,0Bh,0Fh,0AFh,0CEh
-
db 39h,4Dh,10h,73h,15h,8Bh,0D1h,0B9h,0,8,0,0,2Bh,0CEh,0C1h,0F9h
-
db 5,3,0C8h,66h,89h,0Fh,0D1h,0E3h,0EBh,9Ch,29h,4Dh,10h,2Bh,0D1h,66h
-
db 8Bh,0C8h,66h,0C1h,0E9h,5,2Bh,0C1h,66h,89h,7,8Bh,45h,0CCh,8Dh,58h
-
db 1,0EBh,83h,8Bh,45h,18h,8Bh,75h,0E4h,88h,5Dh,0Bh,88h,1Ch,6,46h
-
db 83h,7Dh,0F8h,4,89h,75h,0E4h,7Dh,9,83h,65h,0F8h,0,0E9h,8Dh,6
-
db 0,0,83h,7Dh,0F8h,0Ah,7Dh,9,83h,6Dh,0F8h,3,0E9h,7Eh,6,0
-
db 0,83h,6Dh,0F8h,6,0E9h,75h,6,0,0,29h,75h,10h,2Bh,0D6h,66h
-
db 8Bh,0F0h,66h,0C1h,0EEh,5,2Bh,0C6h,81h,0FAh,0,0,0,1,66h,89h
-
db 1,8Bh,45h,0E8h,8Bh,4Dh,0F8h,8Dh,8Ch,48h,80h,1,0,0,73h,21h
-
db 8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,5Ch,6,0,0,8Bh,75h,10h,0Fh
-
db 0B6h,18h,0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F3h,40h,89h,75h,10h,89h,45h
-
db 0FCh,66h,8Bh,1,8Bh,0F2h,0Fh,0B7h,0D8h,0C1h,0EEh,0Bh,0Fh,0AFh,0F3h,39h
-
db 75h,10h,73h,42h,8Bh,0D6h,0BEh,0,8,0,0,2Bh,0F3h,0C1h,0FEh,5
-
db 3,0F0h,8Bh,45h,0E0h,89h,45h,0D4h,8Bh,45h,0DCh,89h,45h,0E0h,8Bh,45h
-
db 0F0h,89h,45h,0DCh,33h,0C0h,83h,7Dh,0F8h,7,66h,89h,31h,0Fh,9Dh,0C0h
-
db 48h,24h,0FDh,83h,0C0h,3,89h,45h,0F8h,8Bh,45h,0E8h,5,64h,6,0
-
db 0,0E9h,48h,2,0,0,29h,75h,10h,2Bh,0D6h,66h,8Bh,0F0h,66h,0C1h
-
db 0EEh,5,2Bh,0C6h,81h,0FAh,0,0,0,1,66h,89h,1,8Bh,45h,0F8h
-
db 8Bh,4Dh,0E8h,8Dh,0B4h,41h,98h,1,0,0,89h,75h,8,73h,21h,8Bh
-
db 45h,0FCh,3Bh,45h,0F4h,0Fh,84h,0BDh,5,0,0,8Bh,4Dh,10h,0Fh,0B6h
-
db 18h,0C1h,0E1h,8,0C1h,0E2h,8,0Bh,0CBh,40h,89h,4Dh,10h,89h,45h,0FCh
-
db 66h,8Bh,6,8Bh,0CAh,0Fh,0B7h,0D8h,0C1h,0E9h,0Bh,0Fh,0AFh,0CBh,39h,4Dh
-
db 10h,0Fh,83h,0C1h,0,0,0,0BEh,0,8,0,0,8Bh,0D1h,2Bh,0F3h
-
db 0C1h,0FEh,5,3,0F0h,8Bh,45h,8,66h,89h,30h,8Bh,45h,0F8h,8Bh,75h
-
db 0E8h,83h,0C0h,0Fh,0C1h,0E0h,4,3,0C7h,81h,0F9h,0,0,0,1,8Dh
-
db 4,46h,73h,23h,8Bh,75h,0FCh,3Bh,75h,0F4h,0Fh,84h,58h,5,0,0
-
db 0Fh,0B6h,1Eh,0C1h,0E1h,8,8Bh,0D1h,8Bh,4Dh,10h,0C1h,0E1h,8,0Bh,0CBh
-
db 46h,89h,4Dh,10h,89h,75h,0FCh,66h,8Bh,8,8Bh,0F2h,0Fh,0B7h,0D9h,0C1h
-
db 0EEh,0Bh,0Fh,0AFh,0F3h,39h,75h,10h,73h,48h,8Bh,0D6h,0BEh,0,8,0
-
db 0,2Bh,0F3h,0C1h,0FEh,5,3,0F1h,66h,89h,30h,8Bh,75h,0E4h,85h,0F6h
-
db 0Fh,84h,12h,5,0,0,33h,0C0h,83h,7Dh,0F8h,7,8Bh,0CEh,0Fh,9Dh
-
db 0C0h,2Bh,4Dh,0F0h,48h,24h,0FEh,83h,0C0h,0Bh,89h,45h,0F8h,8Bh,45h,18h
-
db 8Ah,0Ch,1,88h,0Ch,6,46h,88h,4Dh,0Bh,89h,75h,0E4h,0E9h,0CDh,4
-
db 0,0,29h,75h,10h,2Bh,0D6h,66h,8Bh,0F1h,66h,0C1h,0EEh,5,2Bh,0CEh
-
db 66h,89h,8,0E9h,0Ch,1,0,0,29h,4Dh,10h,2Bh,0D1h,66h,8Bh,0C8h
-
db 66h,0C1h,0E9h,5,2Bh,0C1h,8Bh,4Dh,0F8h,66h,89h,6,8Bh,45h,0E8h,81h
-
db 0FAh,0,0,0,1,8Dh,8Ch,48h,0B0h,1,0,0,73h,21h,8Bh,45h
-
db 0FCh,3Bh,45h,0F4h,0Fh,84h,9Eh,4,0,0,8Bh,75h,10h,0Fh,0B6h,18h
-
db 0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F3h,40h,89h,75h,10h,89h,45h,0FCh,66h
-
db 8Bh,1,8Bh,0F2h,0Fh,0B7h,0D8h,0C1h,0EEh,0Bh,0Fh,0AFh,0F3h,39h,75h,10h
-
db 73h,19h,8Bh,0D6h,0BEh,0,8,0,0,2Bh,0F3h,0C1h,0FEh,5,3,0F0h
-
db 8Bh,45h,0DCh,66h,89h,31h,0E9h,90h,0,0,0,29h,75h,10h,2Bh,0D6h
-
db 66h,8Bh,0F0h,66h,0C1h,0EEh,5,2Bh,0C6h,81h,0FAh,0,0,0,1,66h
-
db 89h,1,8Bh,45h,0F8h,8Bh,4Dh,0E8h,8Dh,8Ch,41h,0C8h,1,0,0,73h
-
db 21h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,2Bh,4,0,0,8Bh,75h,10h
-
db 0Fh,0B6h,18h,0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F3h,40h,89h,75h,10h,89h
-
db 45h,0FCh,66h,8Bh,1,8Bh,0F2h,0Fh,0B7h,0D8h,0C1h,0EEh,0Bh,0Fh,0AFh,0F3h
-
db 39h,75h,10h,73h,16h,8Bh,0D6h,0BEh,0,8,0,0,2Bh,0F3h,0C1h,0FEh
-
db 5,3,0F0h,8Bh,45h,0E0h,66h,89h,31h,0EBh,1Ah,29h,75h,10h,2Bh,0D6h
-
db 66h,8Bh,0F0h,66h,0C1h,0EEh,5,2Bh,0C6h,66h,89h,1,8Bh,4Dh,0E0h,8Bh
-
db 45h,0D4h,89h,4Dh,0D4h,8Bh,4Dh,0DCh,89h,4Dh,0E0h,8Bh,4Dh,0F0h,89h,45h
-
db 0F0h,89h,4Dh,0DCh,33h,0C0h,83h,7Dh,0F8h,7,0Fh,9Dh,0C0h,48h,24h,0FDh
-
db 83h,0C0h,0Bh,89h,45h,0F8h,8Bh,45h,0E8h,5,68h,0Ah,0,0,81h,0FAh
-
db 0,0,0,1,73h,21h,8Bh,4Dh,0FCh,3Bh,4Dh,0F4h,0Fh,84h,96h,3
-
db 0,0,8Bh,75h,10h,0Fh,0B6h,19h,0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F3h
-
db 41h,89h,75h,10h,89h,4Dh,0FCh,66h,8Bh,8,8Bh,0F2h,0Fh,0B7h,0D9h,0C1h
-
db 0EEh,0Bh,0Fh,0AFh,0F3h,39h,75h,10h,73h,28h,8Bh,0D6h,0BEh,0,8,0
-
db 0,2Bh,0F3h,0C1h,0FEh,5,3,0F1h,0C1h,0E7h,4,83h,65h,0D8h,0,66h
-
db 89h,30h,8Dh,44h,7,4,0C7h,45h,8,3,0,0,0,0E9h,98h,0
-
db 0,0,29h,75h,10h,2Bh,0D6h,66h,8Bh,0F1h,66h,0C1h,0EEh,5,2Bh,0CEh
-
db 81h,0FAh,0,0,0,1,66h,89h,8,73h,21h,8Bh,4Dh,0FCh,3Bh,4Dh
-
db 0F4h,0Fh,84h,21h,3,0,0,8Bh,75h,10h,0Fh,0B6h,19h,0C1h,0E6h,8
-
db 0C1h,0E2h,8,0Bh,0F3h,41h,89h,75h,10h,89h,4Dh,0FCh,66h,8Bh,48h,2
-
db 8Bh,0F2h,0Fh,0B7h,0D9h,0C1h,0EEh,0Bh,0Fh,0AFh,0F3h,39h,75h,10h,73h,25h
-
db 8Bh,0D6h,0BEh,0,8,0,0,2Bh,0F3h,0C7h,45h,0D8h,8,0,0,0
-
db 0C1h,0FEh,5,3,0F1h,0C1h,0E7h,4,66h,89h,70h,2,8Dh,84h,7,4
-
db 1,0,0,0EBh,81h,29h,75h,10h,2Bh,0D6h,66h,8Bh,0F1h,0C7h,45h,0D8h
-
db 10h,0,0,0,66h,0C1h,0EEh,5,2Bh,0CEh,0C7h,45h,8,8,0,0
-
db 0,66h,89h,48h,2,5,4,2,0,0,8Bh,4Dh,8,0C7h,45h,0ECh
-
db 1,0,0,0,89h,4Dh,0CCh,8Bh,4Dh,0ECh,3,0C9h,89h,4Dh,0D0h,3
-
db 0C8h,81h,0FAh,0,0,0,1,73h,21h,8Bh,75h,0FCh,3Bh,75h,0F4h,0Fh
-
db 84h,83h,2,0,0,8Bh,7Dh,10h,0Fh,0B6h,1Eh,0C1h,0E7h,8,0C1h,0E2h
-
db 8,0Bh,0FBh,46h,89h,7Dh,10h,89h,75h,0FCh,66h,8Bh,19h,8Bh,0FAh,0Fh
-
db 0B7h,0F3h,0C1h,0EFh,0Bh,0Fh,0AFh,0FEh,39h,7Dh,10h,73h,16h,8Bh,0D7h,0BFh
-
db 0,8,0,0,2Bh,0FEh,0C1h,0FFh,5,3,0FBh,0D1h,65h,0ECh,66h,89h
-
db 39h,0EBh,18h,29h,7Dh,10h,66h,8Bh,0F3h,66h,0C1h,0EEh,5,2Bh,0DEh,2Bh
-
db 0D7h,66h,89h,19h,8Bh,4Dh,0D0h,41h,89h,4Dh,0ECh,0FFh,4Dh,0CCh,75h,87h
-
db 8Bh,4Dh,8,6Ah,1,8Bh,45h,0D8h,5Bh,8Bh,0F3h,0D3h,0E6h,2Bh,0C6h,1
-
db 45h,0ECh,83h,7Dh,0F8h,4,0Fh,8Dh,0C4h,1,0,0,83h,45h,0F8h,7
-
db 83h,7Dh,0ECh,4,7Dh,5,8Bh,45h,0ECh,0EBh,3,6Ah,3,58h,8Bh,4Dh
-
db 0E8h,0C7h,45h,0CCh,6,0,0,0,0C1h,0E0h,7,8Dh,84h,8,60h,3
-
db 0,0,89h,45h,8,8Bh,45h,8,8Dh,3Ch,1Bh,89h,7Dh,0D0h,3,0F8h
-
db 81h,0FAh,0,0,0,1,73h,21h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h
-
db 0C4h,1,0,0,8Bh,4Dh,10h,0Fh,0B6h,30h,0C1h,0E1h,8,0C1h,0E2h,8
-
db 0Bh,0CEh,40h,89h,4Dh,10h,89h,45h,0FCh,66h,8Bh,7,8Bh,0CAh,0Fh,0B7h
-
db 0F0h,0C1h,0E9h,0Bh,0Fh,0AFh,0CEh,39h,4Dh,10h,73h,15h,8Bh,0D1h,0B9h,0
-
db 8,0,0,2Bh,0CEh,0C1h,0F9h,5,3,0C8h,66h,89h,0Fh,0D1h,0E3h,0EBh
-
db 17h,29h,4Dh,10h,2Bh,0D1h,66h,8Bh,0C8h,66h,0C1h,0E9h,5,2Bh,0C1h,66h
-
db 89h,7,8Bh,45h,0D0h,8Dh,58h,1,0FFh,4Dh,0CCh,75h,88h,6Ah,4,83h
-
db 0EBh,40h,5Fh,3Bh,0DFh,0Fh,8Ch,0Dh,1,0,0,6Ah,1,8Bh,0CBh,8Bh
-
db 0F3h,58h,0D1h,0F9h,23h,0F0h,49h,83h,0CEh,2,83h,0FBh,0Eh,89h,4Dh,0CCh
-
db 7Dh,16h,0D3h,0E6h,8Bh,4Dh,0E8h,89h,75h,0F0h,2Bh,0F3h,8Dh,8Ch,71h,5Eh
-
db 5,0,0,89h,4Dh,8,0EBh,53h,2Bh,0CFh,81h,0FAh,0,0,0,1
-
db 73h,23h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,1Ah,1,0,0,8Bh,5Dh
-
db 10h,6Ah,1,0Fh,0B6h,0,0C1h,0E3h,8,0Bh,0D8h,58h,0C1h,0E2h,8,0FFh
-
db 45h,0FCh,89h,5Dh,10h,0D1h,0EAh,0D1h,0E6h,39h,55h,10h,72h,5,29h,55h
-
db 10h,0Bh,0F0h,49h,75h,0C4h,8Bh,4Dh,0E8h,89h,7Dh,0CCh,81h,0C1h,44h,6
-
db 0,0,0C1h,0E6h,4,89h,4Dh,8,89h,75h,0F0h,89h,45h,0D0h,89h,45h
-
db 0D8h,8Bh,45h,0D8h,81h,0FAh,0,0,0,1,8Dh,0Ch,0,8Bh,45h,8
-
db 8Dh,1Ch,1,73h,21h,8Bh,45h,0FCh,3Bh,45h,0F4h,0Fh,84h,0B7h,0,0
-
db 0,8Bh,75h,10h,0Fh,0B6h,38h,0C1h,0E6h,8,0C1h,0E2h,8,0Bh,0F7h,40h
-
db 89h,75h,10h,89h,45h,0FCh,66h,8Bh,3,8Bh,0FAh,0Fh,0B7h,0F0h,0C1h,0EFh
-
db 0Bh,0Fh,0AFh,0FEh,39h,7Dh,10h,73h,16h,0B9h,0,8,0,0,8Bh,0D7h
-
db 2Bh,0CEh,0C1h,0F9h,5,3,0C8h,0D1h,65h,0D8h,66h,89h,0Bh,0EBh,1Bh,29h
-
db 7Dh,10h,66h,8Bh,0F0h,66h,0C1h,0EEh,5,2Bh,0C6h,2Bh,0D7h,66h,89h,3
-
db 8Bh,45h,0D0h,41h,9,45h,0F0h,89h,4Dh,0D8h,0D1h,65h,0D0h,0FFh,4Dh,0CCh
-
db 0Fh,85h,7Bh,0FFh,0FFh,0FFh,0EBh,3,89h,5Dh,0F0h,0FFh,45h,0F0h,74h,38h
-
db 8Bh,75h,0E4h,83h,45h,0ECh,2,39h,75h,0F0h,77h,3Ch,8Bh,4Dh,18h,8Bh
-
db 0C6h,2Bh,45h,0F0h,0FFh,4Dh,0ECh,8Ah,4,8,88h,4,0Eh,46h,83h,7Dh
-
db 0ECh,0,88h,45h,0Bh,89h,75h,0E4h,74h,5,3Bh,75h,1Ch,72h,0E0h,3Bh
-
db 75h,1Ch,0Fh,82h,81h,0F7h,0FFh,0FFh,81h,0FAh,0,0,0,1,73h,10h
-
db 8Bh,45h,0FCh,3Bh,45h,0F4h,75h,5,6Ah,1,58h,0EBh,18h,0FFh,45h,0FCh
-
db 8Bh,45h,0FCh,8Bh,4Dh,14h,2Bh,45h,0Ch,89h,1,8Bh,45h,20h,8Bh,4Dh
-
db 0E4h,89h,8,33h,0C0h,5Fh,5Eh,5Bh,0C9h
-
add esp,20h
-
leave
-
retn 10h
-
end
M