Initial commit: client source

This commit is contained in:
Andreas Lierschaft
2026-08-17 20:03:02 +02:00
commit 9ae37cd0ea
869 changed files with 227899 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1c_decompress_asm
_lzo1c_decompress_asm:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
nop
L3: xor eax,eax
mov al,[esi]
inc esi
cmp al,20H
jae L6
or al,al
je L7
mov ecx,eax
L4: repe movsb
L5: mov al,[esi]
inc esi
cmp al,20H
jb L9
L6: cmp al,40H
jb L10
mov ecx,eax
and al,1fH
lea edx,-1H[edi]
shr ecx,05H
sub edx,eax
mov al,[esi]
inc esi
shl eax,05H
sub edx,eax
inc ecx
xchg esi,edx
repe movsb
mov esi,edx
jmp L3
lea esi,+0H[esi]
L7: mov al,[esi]
inc esi
lea ecx,+20H[eax]
cmp al,0f8H
jb L4
mov ecx,00000118H
sub al,0f8H
je L8
xchg eax,ecx
xor al,al
shl eax,cl
xchg eax,ecx
L8: repe movsb
jmp L3
lea esi,+0H[esi]
L9: lea edx,-1H[edi]
sub edx,eax
mov al,[esi]
inc esi
shl eax,05H
sub edx,eax
xchg esi,edx
movsb
movsb
movsb
mov esi,edx
movsb
xor eax,eax
jmp L5
L10: and al,1fH
mov ecx,eax
jne L13
mov cl,1fH
L11: mov al,[esi]
inc esi
or al,al
jne L12
add ecx,000000ffH
jmp L11
L12: add ecx,eax
L13: mov al,[esi]
inc esi
mov ebx,eax
and al,3fH
mov edx,edi
sub edx,eax
mov al,[esi]
inc esi
shl eax,06H
sub edx,eax
cmp edx,edi
je L14
xchg edx,esi
lea ecx,+3H[ecx]
repe movsb
mov esi,edx
xor eax,eax
shr ebx,06H
mov ecx,ebx
jne L4
jmp L3
L14: cmp ecx,00000001H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L17
jb L16
L15: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L15
L16: mov eax,00000008H
jmp L15
L17: mov eax,00000004H
jmp L15
nop
end
+181
View File
@@ -0,0 +1,181 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1c_decompress_asm_safe
_lzo1c_decompress_asm_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
lea esi,+0H[esi]
L3: xor eax,eax
mov al,[esi]
inc esi
cmp al,20H
jae L6
or al,al
je L7
mov ecx,eax
L4: lea ebx,[edi+ecx]
cmp [esp],ebx
jb L18
lea ebx,[esi+ecx]
cmp +4H[esp],ebx
jb L17
repe movsb
L5: mov al,[esi]
inc esi
cmp al,20H
jb L9
L6: cmp al,40H
jb L10
mov ecx,eax
and al,1fH
lea edx,-1H[edi]
shr ecx,05H
sub edx,eax
mov al,[esi]
inc esi
shl eax,05H
sub edx,eax
inc ecx
xchg esi,edx
cmp esi,+30H[esp]
jb L19
lea ebx,[edi+ecx]
cmp [esp],ebx
jb L18
repe movsb
mov esi,edx
jmp L3
lea esi,+0H[esi]
L7: mov al,[esi]
inc esi
lea ecx,+20H[eax]
cmp al,0f8H
jb L4
mov ecx,00000118H
sub al,0f8H
je L8
xchg eax,ecx
xor al,al
shl eax,cl
xchg eax,ecx
L8: lea ebx,[edi+ecx]
cmp [esp],ebx
jb L18
lea ebx,[esi+ecx]
cmp +4H[esp],ebx
jb L17
repe movsb
jmp L3
lea esi,+0H[esi]
L9: lea edx,-1H[edi]
sub edx,eax
mov al,[esi]
inc esi
shl eax,05H
sub edx,eax
xchg esi,edx
cmp esi,+30H[esp]
jb L19
lea ebx,+4H[edi]
cmp [esp],ebx
jb L18
movsb
movsb
movsb
mov esi,edx
movsb
xor eax,eax
jmp L5
L10: and al,1fH
mov ecx,eax
jne L13
mov cl,1fH
L11: mov al,[esi]
inc esi
or al,al
jne L12
add ecx,000000ffH
jmp L11
lea esi,+0H[esi]
L12: add ecx,eax
L13: mov al,[esi]
inc esi
mov ebx,eax
and al,3fH
mov edx,edi
sub edx,eax
mov al,[esi]
inc esi
shl eax,06H
sub edx,eax
cmp edx,edi
je L14
xchg edx,esi
lea ecx,+3H[ecx]
cmp esi,+30H[esp]
jb L19
lea eax,[edi+ecx]
cmp [esp],eax
jb L18
repe movsb
mov esi,edx
xor eax,eax
shr ebx,06H
mov ecx,ebx
jne L4
jmp L3
L14: cmp ecx,00000001H
setne al
cmp edi,[esp]
ja L18
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L17
jb L16
L15: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L15
L16: mov eax,00000008H
jmp L15
L17: mov eax,00000004H
jmp L15
L18: mov eax,00000005H
jmp L15
L19: mov eax,00000006H
jmp L15
end
+142
View File
@@ -0,0 +1,142 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1f_decompress_asm_fast
_lzo1f_decompress_asm_fast:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
nop
L3: xor eax,eax
mov al,[esi]
inc esi
cmp al,1fH
ja L9
or al,al
mov ecx,eax
jne L6
L4: mov al,[esi]
inc esi
or al,al
jne L5
add ecx,000000ffH
jmp L4
L5: lea ecx,+1fH[eax+ecx]
L6: mov al,cl
shr ecx,02H
repe movsd
and al,03H
je L7
mov ebx,[esi]
add esi,eax
mov [edi],ebx
add edi,eax
L7: mov al,[esi]
inc esi
L8: cmp al,1fH
jbe L13
L9: cmp al,0dfH
ja L16
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and al,07H
shr ecx,05H
mov ebx,eax
mov al,[esi]
lea eax,[ebx+eax*8]
inc esi
L10: sub edx,eax
add ecx,00000002H
xchg edx,esi
cmp ecx,00000006H
jb L11
cmp eax,00000004H
jb L11
mov al,cl
shr ecx,02H
repe movsd
and al,03H
mov cl,al
L11: repe movsb
mov esi,edx
L12: mov cl,-2H[esi]
and ecx,00000003H
je L3
mov eax,[esi]
add esi,ecx
mov [edi],eax
add edi,ecx
xor eax,eax
mov al,[esi]
inc esi
jmp L8
L13: shr eax,02H
lea edx,-801H[edi]
mov ecx,eax
mov al,[esi]
inc esi
lea eax,[ecx+eax*8]
sub edx,eax
mov eax,[edx]
mov [edi],eax
add edi,00000003H
jmp L12
L14: mov al,[esi]
inc esi
or al,al
jne L15
add ecx,000000ffH
jmp L14
L15: lea ecx,+1fH[eax+ecx]
jmp L17
lea esi,+0H[esi]
L16: and al,1fH
mov ecx,eax
je L14
L17: mov edx,edi
mov ax,[esi]
add esi,00000002H
shr eax,02H
jne L10
cmp ecx,00000001H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L20
jb L19
L18: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L18
L19: mov eax,00000008H
jmp L18
L20: mov eax,00000004H
jmp L18
mov esi,esi
end
+171
View File
@@ -0,0 +1,171 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1f_decompress_asm_fast_safe
_lzo1f_decompress_asm_fast_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
lea esi,+0H[esi]
L3: xor eax,eax
mov al,[esi]
inc esi
cmp al,1fH
ja L9
or al,al
mov ecx,eax
jne L6
L4: mov al,[esi]
inc esi
or al,al
jne L5
add ecx,000000ffH
jmp L4
L5: lea ecx,+1fH[eax+ecx]
L6: lea ebx,[edi+ecx]
cmp [esp],ebx
jb L21
lea ebx,[esi+ecx]
cmp +4H[esp],ebx
jb L20
mov al,cl
shr ecx,02H
repe movsd
and al,03H
je L7
mov ebx,[esi]
add esi,eax
mov [edi],ebx
add edi,eax
L7: mov al,[esi]
inc esi
L8: cmp al,1fH
jbe L13
L9: cmp al,0dfH
ja L16
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and al,07H
shr ecx,05H
mov ebx,eax
mov al,[esi]
lea eax,[ebx+eax*8]
inc esi
L10: sub edx,eax
add ecx,00000002H
xchg edx,esi
cmp esi,+30H[esp]
jb L22
lea ebx,[edi+ecx]
cmp [esp],ebx
jb L21
cmp ecx,00000006H
jb L11
cmp eax,00000004H
jb L11
mov al,cl
shr ecx,02H
repe movsd
and al,03H
mov cl,al
L11: repe movsb
mov esi,edx
L12: mov cl,-2H[esi]
and ecx,00000003H
je L3
mov eax,[esi]
add esi,ecx
mov [edi],eax
add edi,ecx
xor eax,eax
mov al,[esi]
inc esi
jmp L8
L13: lea edx,+3H[edi]
cmp [esp],edx
jb L21
shr eax,02H
lea edx,-801H[edi]
mov ecx,eax
mov al,[esi]
inc esi
lea eax,[ecx+eax*8]
sub edx,eax
cmp edx,+30H[esp]
jb L22
mov eax,[edx]
mov [edi],eax
add edi,00000003H
jmp L12
L14: mov al,[esi]
inc esi
or al,al
jne L15
add ecx,000000ffH
jmp L14
L15: lea ecx,+1fH[eax+ecx]
jmp L17
lea esi,+0H[esi]
L16: and al,1fH
mov ecx,eax
je L14
L17: mov edx,edi
mov ax,[esi]
add esi,00000002H
shr eax,02H
jne L10
cmp ecx,00000001H
setne al
cmp edi,[esp]
ja L21
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L20
jb L19
L18: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L18
L19: mov eax,00000008H
jmp L18
L20: mov eax,00000004H
jmp L18
L21: mov eax,00000005H
jmp L18
L22: mov eax,00000006H
jmp L18
lea esi,+0H[esi]
end
+195
View File
@@ -0,0 +1,195 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1x_decompress_asm_fast
_lzo1x_decompress_asm_fast:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,0eH
jmp L7
L3: add eax,000000ffH
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+15H[eax+ebx]
jmp L7
mov esi,esi
L5: mov al,[esi]
inc esi
L6: cmp al,10H
jae L9
or al,al
je L4
add eax,00000006H
L7: mov ecx,eax
xor eax,ebp
shr ecx,02H
and eax,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec ecx
jne L8
sub esi,eax
sub edi,eax
mov al,[esi]
inc esi
cmp al,10H
jae L9
shr eax,02H
mov bl,[esi]
lea edx,-801H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov ecx,[edx]
mov [edi],ecx
add edi,ebp
jmp L16
L9: cmp al,40H
jb L12
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,00000007H
mov bl,[esi]
shr ecx,05H
lea eax,[eax+ebx*8]
inc esi
sub edx,eax
add ecx,00000004H
cmp eax,ebp
jae L14
jmp L17
L10: add eax,000000ffH
L11: mov bl,[esi]
inc esi
or bl,bl
je L10
lea ecx,+24H[eax+ebx]
xor eax,eax
jmp L13
nop
L12: cmp al,20H
jb L20
and eax,0000001fH
je L11
lea ecx,+5H[eax]
L13: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L17
L14: lea eax,-3H[edi+ecx]
shr ecx,02H
L15: mov ebx,[edx]
add edx,00000004H
mov [edi],ebx
add edi,00000004H
dec ecx
jne L15
mov edi,eax
xor ebx,ebx
L16: mov al,-2H[esi]
and eax,ebp
je L5
mov edx,[esi]
add esi,eax
mov [edi],edx
add edi,eax
mov al,[esi]
inc esi
jmp L9
lea esi,+0H[esi]
L17: xchg edx,esi
sub ecx,ebp
repe movsb
mov esi,edx
jmp L16
L18: add ecx,000000ffH
L19: mov bl,[esi]
inc esi
or bl,bl
je L18
lea ecx,+0cH[ebx+ecx]
jmp L21
lea esi,+0H[esi]
L20: cmp al,10H
jb L22
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L19
add ecx,00000005H
L21: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L23
sub edx,eax
jmp L14
lea esi,+0H[esi]
L22: shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L16
L23: cmp ecx,00000006H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L26
jb L25
L24: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L24
L25: mov eax,00000008H
jmp L24
L26: mov eax,00000004H
jmp L24
nop
end
+250
View File
@@ -0,0 +1,250 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1x_decompress_asm_fast_safe
_lzo1x_decompress_asm_fast_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,0eH
jmp L7
L3: add eax,000000ffH
lea edx,+12H[esi+eax]
cmp +4H[esp],edx
jb L26
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+15H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: cmp +4H[esp],esi
jb L26
mov al,[esi]
inc esi
L6: cmp al,10H
jae L9
or al,al
je L4
add eax,00000006H
L7: lea edx,-3H[edi+eax]
cmp [esp],edx
jb L27
lea edx,-3H[esi+eax]
cmp +4H[esp],edx
jb L26
mov ecx,eax
xor eax,ebp
shr ecx,02H
and eax,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec ecx
jne L8
sub esi,eax
sub edi,eax
mov al,[esi]
inc esi
cmp al,10H
jae L9
lea edx,+3H[edi]
cmp [esp],edx
jb L27
shr eax,02H
mov bl,[esi]
lea edx,-801H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L28
mov ecx,[edx]
mov [edi],ecx
add edi,ebp
jmp L16
mov esi,esi
L9: cmp al,40H
jb L12
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,00000007H
mov bl,[esi]
shr ecx,05H
lea eax,[eax+ebx*8]
inc esi
sub edx,eax
add ecx,00000004H
cmp eax,ebp
jae L14
jmp L17
L10: add eax,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L26
L11: mov bl,[esi]
inc esi
or bl,bl
je L10
lea ecx,+24H[eax+ebx]
xor eax,eax
jmp L13
nop
L12: cmp al,20H
jb L20
and eax,0000001fH
je L11
lea ecx,+5H[eax]
L13: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L17
L14: cmp edx,+30H[esp]
jb L28
lea eax,-3H[edi+ecx]
shr ecx,02H
cmp [esp],eax
jb L27
L15: mov ebx,[edx]
add edx,00000004H
mov [edi],ebx
add edi,00000004H
dec ecx
jne L15
mov edi,eax
xor ebx,ebx
L16: mov al,-2H[esi]
and eax,ebp
je L5
lea edx,[edi+eax]
cmp [esp],edx
jb L27
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L26
mov edx,[esi]
add esi,eax
mov [edi],edx
add edi,eax
mov al,[esi]
inc esi
jmp L9
lea esi,+0H[esi]
L17: cmp edx,+30H[esp]
jb L28
lea eax,-3H[edi+ecx]
cmp [esp],eax
jb L27
xchg edx,esi
sub ecx,ebp
repe movsb
mov esi,edx
jmp L16
L18: add ecx,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L26
L19: mov bl,[esi]
inc esi
or bl,bl
je L18
lea ecx,+0cH[ebx+ecx]
jmp L21
lea esi,+0H[esi]
L20: cmp al,10H
jb L22
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L19
add ecx,00000005H
L21: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L23
sub edx,eax
jmp L14
lea esi,+0H[esi]
L22: lea edx,+2H[edi]
cmp [esp],edx
jb L27
shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L28
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L16
L23: cmp ecx,00000006H
setne al
cmp edi,[esp]
ja L27
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L26
jb L25
L24: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L24
L25: mov eax,00000008H
jmp L24
L26: mov eax,00000004H
jmp L24
L27: mov eax,00000005H
jmp L24
L28: mov eax,00000006H
jmp L24
end
+210
View File
@@ -0,0 +1,210 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1x_decompress_asm
_lzo1x_decompress_asm:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,11H
cmp al,04H
jae L7
mov ecx,eax
jmp L9
L3: add eax,000000ffH
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+12H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: mov al,[esi]
inc esi
L6: cmp al,10H
jae L10
or al,al
je L4
add eax,00000003H
L7: mov ecx,eax
shr eax,02H
and ecx,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec eax
jne L8
L9: repe movsb
mov al,[esi]
inc esi
cmp al,10H
jae L10
shr eax,02H
mov bl,[esi]
lea edx,-801H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov al,+1H[edx]
mov +1H[edi],al
mov al,+2H[edx]
mov +2H[edi],al
add edi,ebp
jmp L18
L10: cmp al,40H
jb L13
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,00000007H
mov bl,[esi]
shr ecx,05H
lea eax,[eax+ebx*8]
inc esi
sub edx,eax
inc ecx
cmp eax,ebp
jae L15
jmp L20
L11: add eax,000000ffH
L12: mov bl,[esi]
inc esi
or bl,bl
je L11
lea ecx,+21H[eax+ebx]
xor eax,eax
jmp L14
lea esi,+0H[esi]
L13: cmp al,20H
jb L23
and eax,0000001fH
je L12
lea ecx,+2H[eax]
L14: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L20
L15: mov ebx,ecx
shr ebx,02H
je L17
L16: mov eax,[edx]
add edx,00000004H
mov [edi],eax
add edi,00000004H
dec ebx
jne L16
and ecx,ebp
je L18
L17: mov al,[edx]
inc edx
mov [edi],al
inc edi
dec ecx
jne L17
L18: mov al,-2H[esi]
and eax,ebp
je L5
L19: mov cl,[esi]
inc esi
mov [edi],cl
inc edi
dec eax
jne L19
mov al,[esi]
inc esi
jmp L10
nop
lea esi,+0H[esi]
L20: xchg edx,esi
repe movsb
mov esi,edx
jmp L18
L21: add ecx,000000ffH
L22: mov bl,[esi]
inc esi
or bl,bl
je L21
lea ecx,+9H[ebx+ecx]
jmp L24
nop
lea esi,+0H[esi]
L23: cmp al,10H
jb L25
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L22
add ecx,00000002H
L24: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L26
sub edx,eax
jmp L15
lea esi,+0H[esi]
L25: shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L18
L26: cmp ecx,00000003H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L29
jb L28
L27: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L27
L28: mov eax,00000008H
jmp L27
L29: mov eax,00000004H
jmp L27
nop
end
+270
View File
@@ -0,0 +1,270 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1x_decompress_asm_safe
_lzo1x_decompress_asm_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,11H
cmp al,04H
jae L7
lea edx,[edi+eax]
cmp [esp],edx
jb L30
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L29
mov ecx,eax
jmp L9
L3: add eax,000000ffH
lea edx,+12H[esi+eax]
cmp +4H[esp],edx
jb L29
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+12H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: cmp +4H[esp],esi
jb L29
mov al,[esi]
inc esi
L6: cmp al,10H
jae L10
or al,al
je L4
add eax,00000003H
L7: lea edx,+0H[edi+eax]
cmp [esp],edx
jb L30
lea edx,+0H[esi+eax]
cmp +4H[esp],edx
jb L29
mov ecx,eax
shr eax,02H
and ecx,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec eax
jne L8
L9: repe movsb
mov al,[esi]
inc esi
cmp al,10H
jae L10
lea edx,+3H[edi]
cmp [esp],edx
jb L30
shr eax,02H
mov bl,[esi]
lea edx,-801H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L31
mov al,[edx]
mov [edi],al
mov al,+1H[edx]
mov +1H[edi],al
mov al,+2H[edx]
mov +2H[edi],al
add edi,ebp
jmp L18
mov esi,esi
L10: cmp al,40H
jb L13
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,00000007H
mov bl,[esi]
shr ecx,05H
lea eax,[eax+ebx*8]
inc esi
sub edx,eax
inc ecx
cmp eax,ebp
jae L15
jmp L20
L11: add eax,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L29
L12: mov bl,[esi]
inc esi
or bl,bl
je L11
lea ecx,+21H[eax+ebx]
xor eax,eax
jmp L14
lea esi,+0H[esi]
L13: cmp al,20H
jb L23
and eax,0000001fH
je L12
lea ecx,+2H[eax]
L14: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L20
L15: cmp edx,+30H[esp]
jb L31
lea eax,[edi+ecx]
cmp [esp],eax
jb L30
mov ebx,ecx
shr ebx,02H
je L17
L16: mov eax,[edx]
add edx,00000004H
mov [edi],eax
add edi,00000004H
dec ebx
jne L16
and ecx,ebp
je L18
L17: mov al,[edx]
inc edx
mov [edi],al
inc edi
dec ecx
jne L17
L18: mov al,-2H[esi]
and eax,ebp
je L5
lea edx,[edi+eax]
cmp [esp],edx
jb L30
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L29
L19: mov cl,[esi]
inc esi
mov [edi],cl
inc edi
dec eax
jne L19
mov al,[esi]
inc esi
jmp L10
mov esi,esi
L20: cmp edx,+30H[esp]
jb L31
lea eax,+0H[edi+ecx]
cmp [esp],eax
jb L30
xchg edx,esi
repe movsb
mov esi,edx
jmp L18
L21: add ecx,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L29
L22: mov bl,[esi]
inc esi
or bl,bl
je L21
lea ecx,+9H[ebx+ecx]
jmp L24
nop
L23: cmp al,10H
jb L25
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L22
add ecx,00000002H
L24: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L26
sub edx,eax
jmp L15
lea esi,+0H[esi]
L25: lea edx,+2H[edi]
cmp [esp],edx
jb L30
shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L31
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L18
L26: cmp ecx,00000003H
setne al
cmp edi,[esp]
ja L30
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L29
jb L28
L27: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L27
L28: mov eax,00000008H
jmp L27
L29: mov eax,00000004H
jmp L27
L30: mov eax,00000005H
jmp L27
L31: mov eax,00000006H
jmp L27
end
+195
View File
@@ -0,0 +1,195 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1y_decompress_asm_fast
_lzo1y_decompress_asm_fast:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,0eH
jmp L7
L3: add eax,000000ffH
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+15H[eax+ebx]
jmp L7
mov esi,esi
L5: mov al,[esi]
inc esi
L6: cmp al,10H
jae L9
or al,al
je L4
add eax,00000006H
L7: mov ecx,eax
xor eax,ebp
shr ecx,02H
and eax,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec ecx
jne L8
sub esi,eax
sub edi,eax
mov al,[esi]
inc esi
cmp al,10H
jae L9
shr eax,02H
mov bl,[esi]
lea edx,-401H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov ecx,[edx]
mov [edi],ecx
add edi,ebp
jmp L16
L9: cmp al,40H
jb L12
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,ebp
mov bl,[esi]
shr ecx,04H
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
add ecx,00000002H
cmp eax,ebp
jae L14
jmp L17
L10: add eax,000000ffH
L11: mov bl,[esi]
inc esi
or bl,bl
je L10
lea ecx,+24H[eax+ebx]
xor eax,eax
jmp L13
mov esi,esi
L12: cmp al,20H
jb L20
and eax,0000001fH
je L11
lea ecx,+5H[eax]
L13: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L17
L14: lea eax,-3H[edi+ecx]
shr ecx,02H
L15: mov ebx,[edx]
add edx,00000004H
mov [edi],ebx
add edi,00000004H
dec ecx
jne L15
mov edi,eax
xor ebx,ebx
L16: mov al,-2H[esi]
and eax,ebp
je L5
mov edx,[esi]
add esi,eax
mov [edi],edx
add edi,eax
mov al,[esi]
inc esi
jmp L9
lea esi,+0H[esi]
L17: xchg edx,esi
sub ecx,ebp
repe movsb
mov esi,edx
jmp L16
L18: add ecx,000000ffH
L19: mov bl,[esi]
inc esi
or bl,bl
je L18
lea ecx,+0cH[ebx+ecx]
jmp L21
lea esi,+0H[esi]
L20: cmp al,10H
jb L22
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L19
add ecx,00000005H
L21: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L23
sub edx,eax
jmp L14
lea esi,+0H[esi]
L22: shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L16
L23: cmp ecx,00000006H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L26
jb L25
L24: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L24
L25: mov eax,00000008H
jmp L24
L26: mov eax,00000004H
jmp L24
nop
end
+250
View File
@@ -0,0 +1,250 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1y_decompress_asm_fast_safe
_lzo1y_decompress_asm_fast_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,0eH
jmp L7
L3: add eax,000000ffH
lea edx,+12H[esi+eax]
cmp +4H[esp],edx
jb L26
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+15H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: cmp +4H[esp],esi
jb L26
mov al,[esi]
inc esi
L6: cmp al,10H
jae L9
or al,al
je L4
add eax,00000006H
L7: lea edx,-3H[edi+eax]
cmp [esp],edx
jb L27
lea edx,-3H[esi+eax]
cmp +4H[esp],edx
jb L26
mov ecx,eax
xor eax,ebp
shr ecx,02H
and eax,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec ecx
jne L8
sub esi,eax
sub edi,eax
mov al,[esi]
inc esi
cmp al,10H
jae L9
lea edx,+3H[edi]
cmp [esp],edx
jb L27
shr eax,02H
mov bl,[esi]
lea edx,-401H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L28
mov ecx,[edx]
mov [edi],ecx
add edi,ebp
jmp L16
mov esi,esi
L9: cmp al,40H
jb L12
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,ebp
mov bl,[esi]
shr ecx,04H
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
add ecx,00000002H
cmp eax,ebp
jae L14
jmp L17
L10: add eax,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L26
L11: mov bl,[esi]
inc esi
or bl,bl
je L10
lea ecx,+24H[eax+ebx]
xor eax,eax
jmp L13
mov esi,esi
L12: cmp al,20H
jb L20
and eax,0000001fH
je L11
lea ecx,+5H[eax]
L13: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L17
L14: cmp edx,+30H[esp]
jb L28
lea eax,-3H[edi+ecx]
shr ecx,02H
cmp [esp],eax
jb L27
L15: mov ebx,[edx]
add edx,00000004H
mov [edi],ebx
add edi,00000004H
dec ecx
jne L15
mov edi,eax
xor ebx,ebx
L16: mov al,-2H[esi]
and eax,ebp
je L5
lea edx,[edi+eax]
cmp [esp],edx
jb L27
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L26
mov edx,[esi]
add esi,eax
mov [edi],edx
add edi,eax
mov al,[esi]
inc esi
jmp L9
lea esi,+0H[esi]
L17: cmp edx,+30H[esp]
jb L28
lea eax,-3H[edi+ecx]
cmp [esp],eax
jb L27
xchg edx,esi
sub ecx,ebp
repe movsb
mov esi,edx
jmp L16
L18: add ecx,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L26
L19: mov bl,[esi]
inc esi
or bl,bl
je L18
lea ecx,+0cH[ebx+ecx]
jmp L21
lea esi,+0H[esi]
L20: cmp al,10H
jb L22
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L19
add ecx,00000005H
L21: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L23
sub edx,eax
jmp L14
lea esi,+0H[esi]
L22: lea edx,+2H[edi]
cmp [esp],edx
jb L27
shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L28
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L16
L23: cmp ecx,00000006H
setne al
cmp edi,[esp]
ja L27
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L26
jb L25
L24: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L24
L25: mov eax,00000008H
jmp L24
L26: mov eax,00000004H
jmp L24
L27: mov eax,00000005H
jmp L24
L28: mov eax,00000006H
jmp L24
end
+210
View File
@@ -0,0 +1,210 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1y_decompress_asm
_lzo1y_decompress_asm:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,11H
cmp al,04H
jae L7
mov ecx,eax
jmp L9
L3: add eax,000000ffH
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+12H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: mov al,[esi]
inc esi
L6: cmp al,10H
jae L10
or al,al
je L4
add eax,00000003H
L7: mov ecx,eax
shr eax,02H
and ecx,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec eax
jne L8
L9: repe movsb
mov al,[esi]
inc esi
cmp al,10H
jae L10
shr eax,02H
mov bl,[esi]
lea edx,-401H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov al,+1H[edx]
mov +1H[edi],al
mov al,+2H[edx]
mov +2H[edi],al
add edi,ebp
jmp L18
L10: cmp al,40H
jb L13
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,ebp
mov bl,[esi]
shr ecx,04H
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
dec ecx
cmp eax,ebp
jae L15
jmp L20
L11: add eax,000000ffH
L12: mov bl,[esi]
inc esi
or bl,bl
je L11
lea ecx,+21H[eax+ebx]
xor eax,eax
jmp L14
lea esi,+0H[esi]
L13: cmp al,20H
jb L23
and eax,0000001fH
je L12
lea ecx,+2H[eax]
L14: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L20
L15: mov ebx,ecx
shr ebx,02H
je L17
L16: mov eax,[edx]
add edx,00000004H
mov [edi],eax
add edi,00000004H
dec ebx
jne L16
and ecx,ebp
je L18
L17: mov al,[edx]
inc edx
mov [edi],al
inc edi
dec ecx
jne L17
L18: mov al,-2H[esi]
and eax,ebp
je L5
L19: mov cl,[esi]
inc esi
mov [edi],cl
inc edi
dec eax
jne L19
mov al,[esi]
inc esi
jmp L10
nop
lea esi,+0H[esi]
L20: xchg edx,esi
repe movsb
mov esi,edx
jmp L18
L21: add ecx,000000ffH
L22: mov bl,[esi]
inc esi
or bl,bl
je L21
lea ecx,+9H[ebx+ecx]
jmp L24
nop
lea esi,+0H[esi]
L23: cmp al,10H
jb L25
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L22
add ecx,00000002H
L24: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L26
sub edx,eax
jmp L15
lea esi,+0H[esi]
L25: shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L18
L26: cmp ecx,00000003H
setne al
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L29
jb L28
L27: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L27
L28: mov eax,00000008H
jmp L27
L29: mov eax,00000004H
jmp L27
nop
end
+270
View File
@@ -0,0 +1,270 @@
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
.386p
.model flat
.code
public _lzo1y_decompress_asm_safe
_lzo1y_decompress_asm_safe:
push ebp
push edi
push esi
push ebx
push ecx
push edx
sub esp,0000000cH
cld
mov esi,+28H[esp]
mov edi,+30H[esp]
mov ebp,00000003H
lea eax,-3H[esi]
add eax,+2cH[esp]
mov +4H[esp],eax
mov eax,edi
mov edx,+34H[esp]
add eax,[edx]
mov [esp],eax
xor eax,eax
xor ebx,ebx
lodsb
cmp al,11H
jbe L6
sub al,11H
cmp al,04H
jae L7
lea edx,[edi+eax]
cmp [esp],edx
jb L30
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L29
mov ecx,eax
jmp L9
L3: add eax,000000ffH
lea edx,+12H[esi+eax]
cmp +4H[esp],edx
jb L29
L4: mov bl,[esi]
inc esi
or bl,bl
je L3
lea eax,+12H[eax+ebx]
jmp L7
lea esi,+0H[esi]
L5: cmp +4H[esp],esi
jb L29
mov al,[esi]
inc esi
L6: cmp al,10H
jae L10
or al,al
je L4
add eax,00000003H
L7: lea edx,+0H[edi+eax]
cmp [esp],edx
jb L30
lea edx,+0H[esi+eax]
cmp +4H[esp],edx
jb L29
mov ecx,eax
shr eax,02H
and ecx,ebp
L8: mov edx,[esi]
add esi,00000004H
mov [edi],edx
add edi,00000004H
dec eax
jne L8
L9: repe movsb
mov al,[esi]
inc esi
cmp al,10H
jae L10
lea edx,+3H[edi]
cmp [esp],edx
jb L30
shr eax,02H
mov bl,[esi]
lea edx,-401H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L31
mov al,[edx]
mov [edi],al
mov al,+1H[edx]
mov +1H[edi],al
mov al,+2H[edx]
mov +2H[edi],al
add edi,ebp
jmp L18
mov esi,esi
L10: cmp al,40H
jb L13
mov ecx,eax
shr eax,02H
lea edx,-1H[edi]
and eax,ebp
mov bl,[esi]
shr ecx,04H
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
dec ecx
cmp eax,ebp
jae L15
jmp L20
L11: add eax,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L29
L12: mov bl,[esi]
inc esi
or bl,bl
je L11
lea ecx,+21H[eax+ebx]
xor eax,eax
jmp L14
lea esi,+0H[esi]
L13: cmp al,20H
jb L23
and eax,0000001fH
je L12
lea ecx,+2H[eax]
L14: mov ax,[esi]
lea edx,-1H[edi]
shr eax,02H
add esi,00000002H
sub edx,eax
cmp eax,ebp
jb L20
L15: cmp edx,+30H[esp]
jb L31
lea eax,[edi+ecx]
cmp [esp],eax
jb L30
mov ebx,ecx
shr ebx,02H
je L17
L16: mov eax,[edx]
add edx,00000004H
mov [edi],eax
add edi,00000004H
dec ebx
jne L16
and ecx,ebp
je L18
L17: mov al,[edx]
inc edx
mov [edi],al
inc edi
dec ecx
jne L17
L18: mov al,-2H[esi]
and eax,ebp
je L5
lea edx,[edi+eax]
cmp [esp],edx
jb L30
lea edx,[esi+eax]
cmp +4H[esp],edx
jb L29
L19: mov cl,[esi]
inc esi
mov [edi],cl
inc edi
dec eax
jne L19
mov al,[esi]
inc esi
jmp L10
mov esi,esi
L20: cmp edx,+30H[esp]
jb L31
lea eax,+0H[edi+ecx]
cmp [esp],eax
jb L30
xchg edx,esi
repe movsb
mov esi,edx
jmp L18
L21: add ecx,000000ffH
lea edx,+3H[esi]
cmp +4H[esp],edx
jb L29
L22: mov bl,[esi]
inc esi
or bl,bl
je L21
lea ecx,+9H[ebx+ecx]
jmp L24
nop
L23: cmp al,10H
jb L25
mov ecx,eax
and eax,00000008H
shl eax,0dH
and ecx,00000007H
je L22
add ecx,00000002H
L24: mov ax,[esi]
add esi,00000002H
lea edx,-4000H[edi]
shr eax,02H
je L26
sub edx,eax
jmp L15
lea esi,+0H[esi]
L25: lea edx,+2H[edi]
cmp [esp],edx
jb L30
shr eax,02H
mov bl,[esi]
lea edx,-1H[edi]
lea eax,[eax+ebx*4]
inc esi
sub edx,eax
cmp edx,+30H[esp]
jb L31
mov al,[edx]
mov [edi],al
mov bl,+1H[edx]
mov +1H[edi],bl
add edi,00000002H
jmp L18
L26: cmp ecx,00000003H
setne al
cmp edi,[esp]
ja L30
mov edx,+28H[esp]
add edx,+2cH[esp]
cmp esi,edx
ja L29
jb L28
L27: sub edi,+30H[esp]
mov edx,+34H[esp]
mov [edx],edi
neg eax
add esp,0000000cH
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax,00000001H
jmp L27
L28: mov eax,00000008H
jmp L27
L29: mov eax,00000004H
jmp L27
L30: mov eax,00000005H
jmp L27
L31: mov eax,00000006H
jmp L27
end