; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.3077 

	TITLE	minilzo.c
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBC
INCLUDELIB OLDNAMES

PUBLIC	___lzo_init_done
PUBLIC	___lzo_copyright
_BSS	SEGMENT
___lzo_init_done DD 01H DUP (?)
_BSS	ENDS
CONST	SEGMENT
___lzo_copyright DB '2.03', 00H
CONST	ENDS
_DATA	SEGMENT
$SG1083	DB	'2.03', 00H
	ORG $+3
$SG1086	DB	'Apr 30 2008', 00H
$SG1089	DB	'2.03', 00H
	ORG $+3
$SG1092	DB	'Apr 30 2008', 00H
_DATA	ENDS
PUBLIC	___lzo_ptr_linear
; Function compile flags: /Ogty
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
___lzo_ptr_linear PROC NEAR
; File c:\worktemp\_kaze_kazuya_r17++_lasse-ariya-oberhumer-okumura_(on_osho)_32_bit_64_bit\kazuya17++\minilzo.c
; Line 2197
	mov	eax, DWORD PTR _ptr$[esp-4]
; Line 2198
	ret	0
___lzo_ptr_linear ENDP
_TEXT	ENDS
PUBLIC	___lzo_align_gap
; Function compile flags: /Ogty
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
_size$ = 12						; size = 4
___lzo_align_gap PROC NEAR
; Line 2215
	mov	ecx, DWORD PTR _size$[esp-4]
	push	esi
	mov	esi, DWORD PTR _ptr$[esp]
	lea	eax, DWORD PTR [esi+ecx-1]
	xor	edx, edx
	div	ecx
	imul	eax, ecx
	sub	eax, esi
	pop	esi
; Line 2216
	ret	0
___lzo_align_gap ENDP
_TEXT	ENDS
PUBLIC	_lzo_copyright
; Function compile flags: /Ogty
_TEXT	SEGMENT
_lzo_copyright PROC NEAR
; Line 2244
	mov	eax, OFFSET FLAT:___lzo_copyright
; Line 2246
	ret	0
_lzo_copyright ENDP
_TEXT	ENDS
PUBLIC	_lzo_version
; Function compile flags: /Ogty
_TEXT	SEGMENT
_lzo_version PROC NEAR
; Line 2251
	mov	eax, 8240				; 00002030H
; Line 2252
	ret	0
_lzo_version ENDP
_TEXT	ENDS
PUBLIC	_lzo_version_string
; Function compile flags: /Ogty
_TEXT	SEGMENT
_lzo_version_string PROC NEAR
; Line 2257
	mov	eax, OFFSET FLAT:$SG1083
; Line 2258
	ret	0
_lzo_version_string ENDP
_TEXT	ENDS
PUBLIC	_lzo_version_date
; Function compile flags: /Ogty
_TEXT	SEGMENT
_lzo_version_date PROC NEAR
; Line 2263
	mov	eax, OFFSET FLAT:$SG1086
; Line 2264
	ret	0
_lzo_version_date ENDP
_TEXT	ENDS
PUBLIC	__lzo_version_string
; Function compile flags: /Ogty
_TEXT	SEGMENT
__lzo_version_string PROC NEAR
; Line 2269
	mov	eax, OFFSET FLAT:$SG1089
; Line 2270
	ret	0
__lzo_version_string ENDP
_TEXT	ENDS
PUBLIC	__lzo_version_date
; Function compile flags: /Ogty
_TEXT	SEGMENT
__lzo_version_date PROC NEAR
; Line 2275
	mov	eax, OFFSET FLAT:$SG1092
; Line 2276
	ret	0
__lzo_version_date ENDP
_TEXT	ENDS
PUBLIC	_lzo_adler32
; Function compile flags: /Ogty
_TEXT	SEGMENT
_adler$ = 8						; size = 4
_buf$ = 12						; size = 4
_len$ = 16						; size = 4
_lzo_adler32 PROC NEAR
; Line 2289
	push	esi
; Line 2294
	mov	esi, DWORD PTR _buf$[esp]
	push	edi
	mov	edi, DWORD PTR _adler$[esp+4]
	mov	ecx, edi
	and	ecx, 65535				; 0000ffffH
	shr	edi, 16					; 00000010H
	test	esi, esi
	jne	SHORT $L1679
	pop	edi
; Line 2295
	mov	eax, 1
	pop	esi
; Line 2316
	ret	0
$L1679:
	push	ebx
; Line 2297
	mov	ebx, DWORD PTR _len$[esp+8]
	test	ebx, ebx
	jbe	$L1107
	npad	2
$L1106:
; Line 2299
	cmp	ebx, 5552				; 000015b0H
	mov	eax, ebx
	jb	SHORT $L1678
	mov	eax, 5552				; 000015b0H
$L1678:
; Line 2300
	sub	ebx, eax
; Line 2301
	cmp	eax, 16					; 00000010H
	jb	$L1112
	npad	6
$L1110:
; Line 2303
	movzx	edx, BYTE PTR [esi]
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+1]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+2]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+3]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+4]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+5]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+6]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+7]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+8]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+9]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+10]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+11]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+12]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+13]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+14]
	add	edi, ecx
	add	ecx, edx
	movzx	edx, BYTE PTR [esi+15]
	add	edi, ecx
	add	ecx, edx
; Line 2305
	sub	eax, 16					; 00000010H
	add	edi, ecx
	add	esi, 16					; 00000010H
; Line 2306
	cmp	eax, 16					; 00000010H
	jae	$L1110
$L1112:
; Line 2307
	test	eax, eax
	je	SHORT $L1116
$L1114:
; Line 2309
	movzx	edx, BYTE PTR [esi]
	add	ecx, edx
	inc	esi
; Line 2310
	add	edi, ecx
; Line 2311
	dec	eax
	jne	SHORT $L1114
$L1116:
; Line 2312
	mov	eax, ecx
	xor	edx, edx
	mov	ecx, 65521				; 0000fff1H
	div	ecx
; Line 2313
	mov	eax, edi
	mov	edi, 65521				; 0000fff1H
	mov	ecx, edx
	xor	edx, edx
	div	edi
	test	ebx, ebx
	mov	edi, edx
	ja	$L1106
$L1107:
; Line 2315
	mov	eax, edi
	pop	ebx
	shl	eax, 16					; 00000010H
	pop	edi
	or	eax, ecx
	pop	esi
; Line 2316
	ret	0
_lzo_adler32 ENDP
_TEXT	ENDS
PUBLIC	_lzo_memcmp
; Function compile flags: /Ogty
_TEXT	SEGMENT
_s1$ = 8						; size = 4
_s2$ = 12						; size = 4
_len$ = 16						; size = 4
_lzo_memcmp PROC NEAR
; Line 2358
	mov	ecx, DWORD PTR _len$[esp-4]
	push	esi
	mov	esi, DWORD PTR _s1$[esp]
	push	edi
	mov	edi, DWORD PTR _s2$[esp+4]
	xor	eax, eax
	repe cmpsb
	pop	edi
	pop	esi
	je	SHORT $L1684
	sbb	eax, eax
	sbb	eax, -1
$L1684:
; Line 2360
	ret	0
_lzo_memcmp ENDP
_TEXT	ENDS
PUBLIC	_lzo_memcpy
; Function compile flags: /Ogty
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_len$ = 16						; size = 4
_lzo_memcpy PROC NEAR
; Line 2373
	mov	ecx, DWORD PTR _len$[esp-4]
	push	esi
	mov	esi, DWORD PTR _src$[esp]
	push	edi
	mov	edi, DWORD PTR _dest$[esp+4]
	mov	eax, ecx
	mov	edx, edi
	shr	ecx, 2
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	pop	edi
	mov	eax, edx
	pop	esi
; Line 2375
	ret	0
_lzo_memcpy ENDP
_TEXT	ENDS
PUBLIC	_lzo_memmove
EXTRN	_memmove:NEAR
; Function compile flags: /Ogty
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_len$ = 16						; size = 4
_lzo_memmove PROC NEAR
; Line 2399
	jmp	_memmove
_lzo_memmove ENDP
_TEXT	ENDS
PUBLIC	_lzo_memset
; Function compile flags: /Ogty
_TEXT	SEGMENT
_s$ = 8							; size = 4
_c$ = 12						; size = 4
_len$ = 16						; size = 4
_lzo_memset PROC NEAR
; Line 2411
	mov	al, BYTE PTR _c$[esp-4]
	mov	ecx, DWORD PTR _len$[esp-4]
	push	ebx
	mov	bl, al
	mov	bh, bl
	push	esi
	push	edi
	mov	edi, DWORD PTR _s$[esp+8]
	mov	edx, ecx
	mov	esi, edi
	shr	ecx, 2
	mov	eax, ebx
	shl	eax, 16					; 00000010H
	mov	ax, bx
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
; Line 2413
	ret	0
_lzo_memset ENDP
_TEXT	ENDS
PUBLIC	__lzo_config_check
; Function compile flags: /Ogty
_TEXT	SEGMENT
_u$ = -8						; size = 8
__lzo_config_check PROC NEAR
; Line 2445
	sub	esp, 8
; Line 2456
	xor	ecx, ecx
; Line 2457
	xor	edx, edx
	mov	DWORD PTR _u$[esp+8], ecx
	mov	eax, 128				; 00000080H
	mov	BYTE PTR _u$[esp+8], al
	push	esi
	cmp	DWORD PTR _u$[esp+12], eax
	sete	dl
; Line 2466
	mov	DWORD PTR _u$[esp+16], ecx
	mov	DWORD PTR _u$[esp+12], ecx
; Line 2467
	mov	esi, DWORD PTR _u$[esp+13]
	and	edx, 1
	mov	eax, edx
	and	eax, 1
	xor	edx, edx
	cmp	esi, ecx
	sete	dl
	pop	esi
	and	edx, eax
; Line 2472
	dec	edx
	neg	edx
	sbb	edx, edx
	mov	eax, edx
; Line 2473
	add	esp, 8
	ret	0
__lzo_config_check ENDP
_TEXT	ENDS
PUBLIC	___lzo_init_v2
; Function compile flags: /Ogty
_TEXT	SEGMENT
_v$ = 8							; size = 4
_s1$ = 12						; size = 4
_s2$ = 16						; size = 4
_s3$ = 20						; size = 4
_s4$ = 24						; size = 4
_s5$ = 28						; size = 4
_s6$ = 32						; size = 4
_s7$ = 36						; size = 4
_s8$ = 40						; size = 4
_s9$ = 44						; size = 4
___lzo_init_v2 PROC NEAR
; Line 2494
	mov	eax, DWORD PTR _v$[esp-4]
	test	eax, eax
	mov	DWORD PTR ___lzo_init_done, 1
	jne	SHORT $L1184
$L1703:
; Line 2495
	or	eax, -1
; Line 2514
	ret	0
$L1184:
; Line 2505
	mov	eax, DWORD PTR _s1$[esp-4]
	cmp	eax, -1
	je	SHORT $L1692
	cmp	eax, 2
	jne	SHORT $L1703
$L1692:
	mov	eax, DWORD PTR _s2$[esp-4]
	cmp	eax, -1
	je	SHORT $L1693
	cmp	eax, 4
	jne	SHORT $L1703
$L1693:
	mov	eax, DWORD PTR _s3$[esp-4]
	cmp	eax, -1
	je	SHORT $L1695
	cmp	eax, 4
	jne	SHORT $L1703
$L1695:
	mov	eax, DWORD PTR _s4$[esp-4]
	cmp	eax, -1
	je	SHORT $L1696
	cmp	eax, 4
	jne	SHORT $L1703
$L1696:
	mov	eax, DWORD PTR _s5$[esp-4]
	cmp	eax, -1
	je	SHORT $L1697
	cmp	eax, 4
	jne	SHORT $L1703
$L1697:
	mov	eax, DWORD PTR _s6$[esp-4]
	cmp	eax, -1
	je	SHORT $L1698
	cmp	eax, 4
	jne	SHORT $L1703
$L1698:
	mov	eax, DWORD PTR _s7$[esp-4]
	cmp	eax, -1
	je	SHORT $L1699
	cmp	eax, 4
	jne	SHORT $L1703
$L1699:
	mov	eax, DWORD PTR _s8$[esp-4]
	cmp	eax, -1
	je	SHORT $L1700
	cmp	eax, 4
	jne	SHORT $L1703
$L1700:
	mov	eax, DWORD PTR _s9$[esp-4]
	cmp	eax, -1
	je	SHORT $L1204
	cmp	eax, 24					; 00000018H
; Line 2507
	jne	$L1703
$L1204:
; Line 2509
	jmp	__lzo_config_check
___lzo_init_v2 ENDP
; Function compile flags: /Ogty
_m_off$1229 = -24					; size = 4
_ii$ = -20						; size = 4
_tt$1278 = -16						; size = 4
tv448 = -12						; size = 4
tv240 = -8						; size = 4
tv401 = -4						; size = 4
_t$1269 = -4						; size = 4
_in$ = 8						; size = 4
_out$ = 12						; size = 4
_out_len$ = 16						; size = 4
_wrkmem$ = 20						; size = 4
__lzo1x_1_do_compress PROC NEAR
; _in_len$ = eax
; Line 2826
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
; Line 2829
	mov	ebp, DWORD PTR _in$[esp+28]
	push	esi
; Line 2834
	mov	esi, DWORD PTR _out$[esp+32]
	lea	ecx, DWORD PTR [eax+ebp]
; Line 2836
	mov	DWORD PTR _ii$[esp+36], ebp
	push	edi
	mov	DWORD PTR tv448[esp+40], ecx
; Line 2838
	add	ebp, 4
	npad	3
$L1226:
; Line 2846
	mov	dl, BYTE PTR [ebp+3]
	mov	cl, BYTE PTR [ebp+2]
	movzx	ecx, cl
	movzx	eax, dl
	shl	eax, 6
	xor	eax, ecx
	movzx	ecx, BYTE PTR [ebp+1]
	shl	eax, 5
	xor	eax, ecx
	movzx	ecx, BYTE PTR [ebp]
	shl	eax, 5
	xor	eax, ecx
; Line 2847
	mov	ecx, DWORD PTR _wrkmem$[esp+36]
	imul	eax, 33					; 00000021H
	shr	eax, 5
	and	eax, 16383				; 00003fffH
	mov	ebx, DWORD PTR [ecx+eax*4]
	lea	edi, DWORD PTR [ecx+eax*4]
; Line 2848
	cmp	ebx, DWORD PTR _in$[esp+36]
	jb	$literal$1244
	mov	ecx, ebp
	sub	ecx, ebx
	mov	DWORD PTR _m_off$1229[esp+40], ecx
	je	$literal$1244
	cmp	ecx, 49151				; 0000bfffH
	ja	$literal$1244
; Line 2851
	cmp	ecx, 2048				; 00000800H
	jbe	SHORT $try_match$1247
	cmp	BYTE PTR [ebx+3], dl
	je	SHORT $try_match$1247
; Line 2855
	mov	ecx, DWORD PTR _wrkmem$[esp+36]
	and	eax, 2047				; 000007ffH
	xor	eax, 8223				; 0000201fH
	mov	ebx, DWORD PTR [ecx+eax*4]
	lea	edi, DWORD PTR [ecx+eax*4]
; Line 2856
	cmp	ebx, DWORD PTR _in$[esp+36]
	jb	$literal$1244
	mov	eax, ebp
	sub	eax, ebx
	mov	DWORD PTR _m_off$1229[esp+40], eax
	je	$literal$1244
	cmp	eax, 49151				; 0000bfffH
	ja	$literal$1244
; Line 2858
	cmp	eax, 2048				; 00000800H
	jbe	SHORT $L1732
	cmp	BYTE PTR [ebx+3], dl
	jne	$literal$1244
$L1732:
	mov	ecx, DWORD PTR _m_off$1229[esp+40]
$try_match$1247:
; Line 2864
	mov	dx, WORD PTR [ebx]
	cmp	dx, WORD PTR [ebp]
	jne	$literal$1244
; Line 2872
	mov	al, BYTE PTR [ebp+2]
	cmp	BYTE PTR [ebx+2], al
	jne	$literal$1244
; Line 2923
	mov	edx, DWORD PTR _ii$[esp+40]
	mov	eax, ebp
	sub	eax, edx
$match$1264:
	mov	DWORD PTR [edi], ebp
	je	$L1286
; Line 2927
	cmp	eax, 3
	mov	DWORD PTR _t$1269[esp+40], eax
	ja	SHORT $L1271
; Line 2930
	or	BYTE PTR [esi-2], al
; Line 2932
	jmp	SHORT $L1284
$L1271:
	cmp	eax, 18					; 00000012H
	ja	SHORT $L1275
; Line 2933
	mov	dl, al
	sub	dl, 3
; Line 2934
	jmp	SHORT $L1742
$L1275:
; Line 2936
	lea	edx, DWORD PTR [eax-18]
; Line 2938
	mov	BYTE PTR [esi], 0
	inc	esi
; Line 2939
	cmp	edx, 255				; 000000ffH
	mov	DWORD PTR _tt$1278[esp+40], edx
	jbe	SHORT $L1737
	mov	eax, edx
	lea	ecx, DWORD PTR [eax-256]
	mov	eax, -2139062143			; 80808081H
	mul	ecx
	mov	ecx, edx
	shr	ecx, 7
	inc	ecx
	mov	DWORD PTR tv240[esp+40], ecx
	mov	edx, ecx
	shr	ecx, 2
	xor	eax, eax
	mov	edi, esi
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb
	mov	eax, edx
	add	esi, eax
	npad	7
$L1280:
; Line 2941
	mov	edx, DWORD PTR _tt$1278[esp+40]
	sub	edx, 255				; 000000ffH
	dec	eax
	mov	DWORD PTR _tt$1278[esp+40], edx
	jne	SHORT $L1280
	mov	eax, DWORD PTR _t$1269[esp+40]
	mov	ecx, DWORD PTR _m_off$1229[esp+40]
$L1737:
; Line 2945
	mov	dl, BYTE PTR _tt$1278[esp+40]
$L1742:
	mov	BYTE PTR [esi], dl
	inc	esi
$L1284:
; Line 2947
	mov	edx, DWORD PTR _ii$[esp+40]
	mov	dl, BYTE PTR [edx]
	mov	edi, DWORD PTR _ii$[esp+40]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	edi
	dec	eax
	mov	DWORD PTR _ii$[esp+40], edi
	jne	SHORT $L1284
$L1286:
; Line 2958
	mov	al, BYTE PTR [ebp+3]
	mov	dl, BYTE PTR [ebx+3]
	add	ebp, 3
	inc	ebp
	cmp	dl, al
	jne	$L1289
	mov	dl, BYTE PTR [ebp]
	mov	al, BYTE PTR [ebx+4]
	inc	ebp
	cmp	al, dl
	jne	$L1289
	mov	al, BYTE PTR [ebp]
	mov	dl, BYTE PTR [ebx+5]
	inc	ebp
	cmp	dl, al
	jne	$L1289
	mov	dl, BYTE PTR [ebp]
	mov	al, BYTE PTR [ebx+6]
	inc	ebp
	cmp	al, dl
	jne	$L1289
	mov	al, BYTE PTR [ebp]
	mov	dl, BYTE PTR [ebx+7]
	inc	ebp
	cmp	dl, al
	jne	$L1289
	mov	dl, BYTE PTR [ebp]
	mov	al, BYTE PTR [ebx+8]
	inc	ebp
	cmp	al, dl
	jne	$L1289
; Line 2999
	mov	eax, DWORD PTR tv448[esp+40]
	add	ebx, 9
	cmp	ebp, eax
	jae	SHORT $L1309
	npad	3
$L1308:
	mov	cl, BYTE PTR [ebx]
	cmp	cl, BYTE PTR [ebp]
	jne	SHORT $L1309
; Line 3000
	inc	ebx
	inc	ebp
	cmp	ebp, eax
	jb	SHORT $L1308
$L1309:
; Line 3001
	mov	edx, DWORD PTR _ii$[esp+40]
; Line 3005
	mov	eax, DWORD PTR _m_off$1229[esp+40]
	mov	ebx, ebp
	sub	ebx, edx
	cmp	eax, 16384				; 00004000H
	ja	SHORT $L1312
; Line 3007
	dec	eax
; Line 3008
	cmp	ebx, 33					; 00000021H
	mov	DWORD PTR _m_off$1229[esp+40], eax
	ja	SHORT $L1313
; Line 3009
	sub	bl, 2
	or	bl, 32					; 00000020H
	mov	BYTE PTR [esi], bl
; Line 3017
	mov	ecx, eax
	jmp	$L1743
$L1313:
; Line 3012
	sub	ebx, 33					; 00000021H
; Line 3013
	mov	BYTE PTR [esi], 32			; 00000020H
; Line 3014
	jmp	SHORT $L1744
$L1312:
; Line 3022
	sub	eax, 16384				; 00004000H
	mov	DWORD PTR _m_off$1229[esp+40], eax
; Line 3026
	shr	eax, 11					; 0000000bH
	and	al, 8
	cmp	ebx, 9
	ja	SHORT $L1320
; Line 3027
	mov	ecx, DWORD PTR _m_off$1229[esp+40]
	sub	bl, 2
	or	al, bl
	or	al, 16					; 00000010H
	mov	BYTE PTR [esi], al
	jmp	$L1743
$L1320:
; Line 3029
	sub	ebx, 9
; Line 3030
	or	al, 16					; 00000010H
	mov	BYTE PTR [esi], al
$L1744:
	inc	esi
; Line 3032
	cmp	ebx, 255				; 000000ffH
$m3_m4_len$1316:
	jbe	SHORT $L1326
	lea	edx, DWORD PTR [ebx-256]
	mov	eax, -2139062143			; 80808081H
	mul	edx
	mov	ecx, edx
	shr	ecx, 7
	inc	ecx
	mov	DWORD PTR tv401[esp+40], ecx
	mov	edx, ecx
	shr	ecx, 2
	xor	eax, eax
	mov	edi, esi
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb
	mov	eax, edx
	add	esi, eax
$L1325:
; Line 3034
	sub	ebx, 255				; 000000ffH
	dec	eax
	jne	SHORT $L1325
$L1326:
; Line 3038
	mov	ecx, DWORD PTR _m_off$1229[esp+40]
	mov	BYTE PTR [esi], bl
	jmp	SHORT $L1743
$L1289:
; Line 2961
	mov	edi, DWORD PTR _ii$[esp+40]
	dec	ebp
	mov	eax, ebp
	sub	eax, edi
; Line 2964
	cmp	ecx, 2048				; 00000800H
	ja	SHORT $L1293
; Line 2966
	dec	ecx
; Line 2968
	dec	al
	shl	al, 3
	mov	dl, cl
	and	dl, 7
	or	al, dl
; Line 3043
	shl	al, 2
	shr	ecx, 3
	mov	BYTE PTR [esi], al
	inc	esi
; Line 3044
	mov	BYTE PTR [esi], cl
	inc	esi
; Line 3050
	mov	DWORD PTR _ii$[esp+40], ebp
; Line 3053
	jmp	SHORT $L1747
$L1293:
; Line 2978
	sub	al, 2
	cmp	ecx, 16384				; 00004000H
	ja	SHORT $L1297
	dec	ecx
	or	al, 32					; 00000020H
	mov	BYTE PTR [esi], al
; Line 2979
	jmp	SHORT $L1743
$L1297:
; Line 2984
	sub	ecx, 16384				; 00004000H
; Line 2987
	mov	edx, ecx
	shr	edx, 11					; 0000000bH
	and	dl, 8
	or	dl, al
	or	dl, 16					; 00000010H
	mov	BYTE PTR [esi], dl
$L1743:
; Line 3043
	mov	al, cl
	inc	esi
	shl	al, 2
; Line 3044
	shr	ecx, 6
	mov	BYTE PTR [esi], al
	inc	esi
	mov	BYTE PTR [esi], cl
$m3_m4_offset$1299:
	inc	esi
; Line 3050
	mov	DWORD PTR _ii$[esp+40], ebp
; Line 3053
	jmp	SHORT $L1747
$literal$1244:
; Line 2915
	mov	DWORD PTR [edi], ebp
	inc	ebp
$L1747:
; Line 2917
	mov	eax, DWORD PTR tv448[esp+40]
	add	eax, -13				; fffffff3H
	cmp	ebp, eax
	jb	$L1226
; Line 3055
	mov	edx, DWORD PTR _out$[esp+36]
	mov	ecx, DWORD PTR _out_len$[esp+36]
; Line 3056
	mov	eax, DWORD PTR tv448[esp+40]
	sub	esi, edx
	pop	edi
	mov	DWORD PTR [ecx], esi
	mov	ecx, DWORD PTR _ii$[esp+36]
	pop	esi
	pop	ebp
	sub	eax, ecx
	pop	ebx
; Line 3057
	add	esp, 24					; 00000018H
	ret	0
__lzo1x_1_do_compress ENDP
_TEXT	ENDS
PUBLIC	_lzo1x_1_compress
; Function compile flags: /Ogty
_TEXT	SEGMENT
_ii$1350 = -4						; size = 4
_in$ = 8						; size = 4
_tt$1360 = 12						; size = 4
_in_len$ = 12						; size = 4
_out$ = 16						; size = 4
_out_len$ = 20						; size = 4
_wrkmem$ = 24						; size = 4
_lzo1x_1_compress PROC NEAR
; Line 3063
	push	ecx
; Line 3064
	mov	ecx, DWORD PTR _out$[esp]
	push	ebx
	push	ebp
; Line 3067
	mov	ebp, DWORD PTR _in_len$[esp+8]
	cmp	ebp, 13					; 0000000dH
	push	esi
	push	edi
	mov	edi, DWORD PTR _in$[esp+16]
	mov	esi, ecx
	ja	SHORT $L1347
; Line 3068
	mov	ebx, ebp
; Line 3069
	jmp	SHORT $L1348
$L1347:
; Line 3071
	mov	eax, DWORD PTR _wrkmem$[esp+16]
	mov	esi, DWORD PTR _out_len$[esp+16]
	push	eax
	push	esi
	push	ecx
	push	edi
	mov	eax, ebp
	call	__lzo1x_1_do_compress
; Line 3072
	mov	esi, DWORD PTR [esi]
	mov	ebx, eax
	mov	eax, DWORD PTR _out$[esp+32]
	add	esp, 16					; 00000010H
	add	esi, eax
	mov	ecx, eax
$L1348:
; Line 3075
	test	ebx, ebx
	jbe	$L1368
; Line 3077
	sub	edi, ebx
	add	edi, ebp
; Line 3079
	cmp	esi, ecx
	mov	DWORD PTR _ii$1350[esp+20], edi
	jne	SHORT $L1351
	cmp	ebx, 238				; 000000eeH
	ja	SHORT $L1351
; Line 3080
	mov	dl, bl
	add	dl, 17					; 00000011H
	mov	BYTE PTR [esi], dl
; Line 3081
	jmp	SHORT $L1754
$L1351:
	cmp	ebx, 3
	ja	SHORT $L1354
; Line 3082
	or	BYTE PTR [esi-2], bl
; Line 3083
	jmp	SHORT $L1366
$L1354:
	cmp	ebx, 18					; 00000012H
	ja	SHORT $L1357
; Line 3084
	mov	al, bl
	sub	al, 3
; Line 3085
	jmp	SHORT $L1363
$L1357:
; Line 3087
	lea	eax, DWORD PTR [ebx-18]
; Line 3089
	mov	BYTE PTR [esi], 0
	inc	esi
; Line 3090
	cmp	eax, 255				; 000000ffH
	mov	DWORD PTR _tt$1360[esp+16], eax
	jbe	SHORT $L1363
	lea	ecx, DWORD PTR [eax-256]
	mov	eax, -2139062143			; 80808081H
	mul	ecx
	shr	edx, 7
	inc	edx
	mov	ecx, edx
	mov	ebp, ecx
	shr	ecx, 2
	xor	eax, eax
	mov	edi, esi
	rep stosd
	mov	ecx, ebp
	and	ecx, 3
	rep stosb
	add	esi, edx
$L1362:
; Line 3092
	mov	ecx, DWORD PTR _tt$1360[esp+16]
	sub	ecx, 255				; 000000ffH
	dec	edx
	mov	DWORD PTR _tt$1360[esp+16], ecx
	jne	SHORT $L1362
	mov	edi, DWORD PTR _ii$1350[esp+20]
	mov	eax, ecx
	mov	ecx, DWORD PTR _out$[esp+16]
$L1363:
; Line 3096
	mov	BYTE PTR [esi], al
$L1754:
	inc	esi
	npad	1
$L1366:
; Line 3098
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	edi
	dec	ebx
	jne	SHORT $L1366
$L1368:
; Line 3105
	mov	eax, DWORD PTR _out_len$[esp+16]
	mov	BYTE PTR [esi], 17			; 00000011H
	inc	esi
	mov	BYTE PTR [esi], 0
	inc	esi
	mov	BYTE PTR [esi], 0
	sub	esi, ecx
	inc	esi
	pop	edi
	mov	DWORD PTR [eax], esi
	pop	esi
	pop	ebp
; Line 3106
	xor	eax, eax
	pop	ebx
; Line 3107
	pop	ecx
	ret	0
_lzo1x_1_compress ENDP
_TEXT	ENDS
PUBLIC	_lzo1x_decompress
; Function compile flags: /Ogty
_TEXT	SEGMENT
_in$ = 8						; size = 4
_in_len$ = 12						; size = 4
_out$ = 16						; size = 4
_out_len$ = 20						; size = 4
_wrkmem$ = 24						; size = 4
_lzo1x_decompress PROC NEAR
; Line 3235
	mov	eax, DWORD PTR _in_len$[esp-4]
	push	ebx
; Line 3262
	mov	ebx, DWORD PTR _out_len$[esp]
	push	ebp
	push	esi
	mov	esi, DWORD PTR _in$[esp+8]
	mov	DWORD PTR [ebx], 0
; Line 3267
	mov	dl, BYTE PTR [esi]
	cmp	dl, 17					; 00000011H
	lea	ebp, DWORD PTR [esi+eax]
	mov	eax, DWORD PTR _out$[esp+8]
	push	edi
	mov	ecx, esi
	jbe	SHORT $L1398
; Line 3269
	movzx	edi, dl
	sub	edi, 17					; 00000011H
; Line 3270
	cmp	edi, 4
	lea	ecx, DWORD PTR [esi+1]
	jb	$match_next$1389
$L1393:
; Line 3273
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
	dec	edi
	jne	SHORT $L1393
; Line 3274
	jmp	SHORT $first_literal_run$1396
$L1398:
; Line 3279
	movzx	esi, BYTE PTR [ecx]
	inc	ecx
; Line 3280
	cmp	esi, 16					; 00000010H
	jae	$match$1401
; Line 3282
	test	esi, esi
	jne	SHORT $L1402
; Line 3285
	cmp	BYTE PTR [ecx], 0
	jne	SHORT $L1406
	npad	7
$L1405:
	mov	dl, BYTE PTR [ecx+1]
; Line 3287
	add	esi, 255				; 000000ffH
; Line 3288
	inc	ecx
	test	dl, dl
	je	SHORT $L1405
$L1406:
; Line 3291
	movzx	edx, BYTE PTR [ecx]
	lea	esi, DWORD PTR [esi+edx+15]
	inc	ecx
$L1402:
; Line 3299
	mov	edx, DWORD PTR [ecx]
	mov	DWORD PTR [eax], edx
; Line 3300
	add	eax, 4
	add	ecx, 4
; Line 3301
	dec	esi
	je	SHORT $first_literal_run$1396
; Line 3303
	cmp	esi, 4
	jb	SHORT $L1425
$L1415:
; Line 3306
	mov	edx, DWORD PTR [ecx]
	mov	DWORD PTR [eax], edx
; Line 3307
	sub	esi, 4
	add	eax, 4
	add	ecx, 4
; Line 3308
	cmp	esi, 4
	jae	SHORT $L1415
; Line 3309
	test	esi, esi
	jbe	SHORT $first_literal_run$1396
	npad	2
$L1421:
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
	dec	esi
	jne	SHORT $L1421
; Line 3311
	jmp	SHORT $first_literal_run$1396
	npad	5
$L1425:
; Line 3312
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
	dec	esi
	jne	SHORT $L1425
$first_literal_run$1396:
; Line 3328
	movzx	esi, BYTE PTR [ecx]
	inc	ecx
; Line 3329
	cmp	esi, 16					; 00000010H
	jae	SHORT $match$1401
; Line 3348
	movzx	edx, BYTE PTR [ecx]
	shr	esi, 2
	shl	edx, 2
	mov	edi, eax
	sub	edi, esi
	sub	edi, edx
; Line 3351
	mov	dl, BYTE PTR [edi-2049]
	sub	edi, 2049				; 00000801H
	inc	ecx
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	edi
$L1796:
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [eax], dl
	mov	dl, BYTE PTR [edi+1]
	inc	eax
	mov	BYTE PTR [eax], dl
	inc	eax
$match_done$1431:
; Line 3564
	xor	edx, edx
	mov	dl, BYTE PTR [ecx-2]
	and	edx, 3
	mov	edi, edx
; Line 3566
	je	$L1398
$match_next$1389:
; Line 3574
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
; Line 3575
	cmp	edi, 1
	jbe	SHORT $L1488
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
	cmp	edi, 2
	jbe	SHORT $L1488
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	ecx
$L1488:
; Line 3577
	movzx	esi, BYTE PTR [ecx]
	inc	ecx
$match$1401:
; Line 3357
	cmp	esi, 64					; 00000040H
	jb	SHORT $L1435
; Line 3381
	mov	edx, esi
	shr	edx, 2
	and	edx, 7
	mov	edi, eax
	sub	edi, edx
	movzx	edx, BYTE PTR [ecx]
	shl	edx, 3
	sub	edi, edx
	dec	edi
; Line 3382
	shr	esi, 5
	inc	ecx
	dec	esi
$copy_match$1439:
; Line 3554
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [eax], dl
	mov	dl, BYTE PTR [edi+1]
	inc	eax
	inc	edi
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	edi
	npad	7
$L1479:
; Line 3555
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	edi
	dec	esi
	jne	SHORT $L1479
	jmp	SHORT $match_done$1431
$L1435:
; Line 3410
	cmp	esi, 32					; 00000020H
	jb	SHORT $L1441
; Line 3412
	and	esi, 31					; 0000001fH
; Line 3413
	jne	SHORT $L1442
; Line 3416
	cmp	BYTE PTR [ecx], 0
	jne	SHORT $L1446
	npad	6
$L1445:
	mov	dl, BYTE PTR [ecx+1]
; Line 3418
	add	esi, 255				; 000000ffH
; Line 3419
	inc	ecx
	test	dl, dl
	je	SHORT $L1445
$L1446:
; Line 3422
	movzx	edx, BYTE PTR [ecx]
	lea	esi, DWORD PTR [esi+edx+31]
	inc	ecx
$L1442:
; Line 3440
	movzx	edx, WORD PTR [ecx]
	shr	edx, 2
	mov	edi, eax
	sub	edi, edx
	dec	edi
; Line 3446
	add	ecx, 2
; Line 3448
	jmp	SHORT $L1460
$L1441:
	cmp	esi, 16					; 00000010H
; Line 3454
	mov	edi, eax
	jb	$L1450
	mov	edx, esi
	and	edx, 8
	shl	edx, 11					; 0000000bH
	sub	edi, edx
; Line 3456
	and	esi, 7
; Line 3457
	jne	SHORT $L1451
; Line 3460
	cmp	BYTE PTR [ecx], 0
	jne	SHORT $L1455
$L1454:
	mov	dl, BYTE PTR [ecx+1]
; Line 3462
	add	esi, 255				; 000000ffH
; Line 3463
	inc	ecx
	test	dl, dl
	je	SHORT $L1454
$L1455:
; Line 3466
	movzx	edx, BYTE PTR [ecx]
	lea	esi, DWORD PTR [esi+edx+7]
	inc	ecx
$L1451:
; Line 3485
	movzx	edx, WORD PTR [ecx]
	shr	edx, 2
	sub	edi, edx
; Line 3489
	add	ecx, 2
; Line 3490
	cmp	edi, eax
	je	SHORT $eof_found$1459
; Line 3492
	sub	edi, 16384				; 00004000H
$L1460:
; Line 3539
	cmp	esi, 6
	jb	$copy_match$1439
	mov	edx, eax
	sub	edx, edi
	cmp	edx, 4
	jl	$copy_match$1439
; Line 3542
	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR [eax], edx
; Line 3543
	add	eax, 4
	add	edi, 4
	sub	esi, 2
$L1469:
; Line 3545
	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR [eax], edx
; Line 3546
	sub	esi, 4
	add	eax, 4
	add	edi, 4
; Line 3547
	cmp	esi, 4
	jae	SHORT $L1469
; Line 3548
	test	esi, esi
	jbe	$match_done$1431
	npad	3
$L1475:
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [eax], dl
	inc	eax
	inc	edi
	dec	esi
	jne	SHORT $L1475
; Line 3550
	jmp	$match_done$1431
$L1450:
; Line 3517
	movzx	edx, BYTE PTR [ecx]
	shr	esi, 2
	sub	edi, esi
	shl	edx, 2
	sub	edi, edx
	dec	edi
	inc	ecx
; Line 3522
	jmp	$L1796
$eof_found$1459:
; Line 3588
	sub	eax, DWORD PTR _out$[esp+12]
; Line 3590
	cmp	ecx, ebp
	mov	DWORD PTR [ebx], eax
	jne	SHORT $L1797
	pop	edi
	pop	esi
	pop	ebp
	xor	eax, eax
	pop	ebx
; Line 3609
	ret	0
$L1797:
	pop	edi
; Line 3590
	sbb	eax, eax
	pop	esi
	and	eax, -4					; fffffffcH
	pop	ebp
	add	eax, -4					; fffffffcH
	pop	ebx
; Line 3609
	ret	0
_lzo1x_decompress ENDP
_TEXT	ENDS
PUBLIC	_lzo1x_decompress_safe
; Function compile flags: /Ogty
_TEXT	SEGMENT
_op_end$ = 8						; size = 4
_in$ = 8						; size = 4
_in_len$ = 12						; size = 4
_out$ = 16						; size = 4
_out_len$ = 20						; size = 4
_wrkmem$ = 24						; size = 4
_lzo1x_decompress_safe PROC NEAR
; Line 3733
	mov	eax, DWORD PTR _in$[esp-4]
	mov	ecx, DWORD PTR _in_len$[esp-4]
	push	ebx
; Line 3735
	mov	ebx, DWORD PTR _out$[esp]
	push	ebp
	lea	ebp, DWORD PTR [eax+ecx]
	mov	ecx, DWORD PTR _out_len$[esp+4]
	mov	edx, DWORD PTR [ecx]
; Line 3760
	mov	DWORD PTR [ecx], 0
; Line 3765
	mov	cl, BYTE PTR [eax]
	push	esi
	add	edx, ebx
	cmp	cl, 17					; 00000011H
	push	edi
	mov	DWORD PTR _op_end$[esp+12], edx
	mov	esi, ebx
	jbe	SHORT $L1526
; Line 3767
	movzx	ecx, cl
	sub	ecx, 17					; 00000011H
	inc	eax
; Line 3768
	cmp	ecx, 4
	jb	$match_next$1511
; Line 3770
	sub	edx, ebx
	cmp	edx, ecx
	jb	$output_overrun$1516
	mov	edx, ebp
	sub	edx, eax
	lea	edi, DWORD PTR [ecx+1]
	cmp	edx, edi
	jb	$input_overrun$1520
$L1521:
; Line 3771
	mov	dl, BYTE PTR [eax]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	eax
	dec	ecx
	jne	SHORT $L1521
; Line 3772
	jmp	$first_literal_run$1524
$L1526:
; Line 3775
	cmp	eax, ebp
	jae	$L1527
; Line 3777
	movzx	ecx, BYTE PTR [eax]
	inc	eax
; Line 3778
	cmp	ecx, 16					; 00000010H
	jae	$match$1529
; Line 3780
	test	ecx, ecx
	jne	SHORT $L1530
; Line 3782
	mov	edi, ebp
	sub	edi, eax
	cmp	edi, 1
	jb	$input_overrun$1520
; Line 3783
	cmp	BYTE PTR [eax], cl
	jne	SHORT $L1536
	npad	1
$L1535:
; Line 3785
	add	ecx, 255				; 000000ffH
; Line 3786
	inc	eax
; Line 3787
	mov	edi, ebp
	sub	edi, eax
	cmp	edi, 1
	jb	$input_overrun$1520
; Line 3783
	cmp	BYTE PTR [eax], 0
	je	SHORT $L1535
$L1536:
; Line 3789
	movzx	edi, BYTE PTR [eax]
	lea	ecx, DWORD PTR [ecx+edi+15]
	inc	eax
$L1530:
; Line 3791
	sub	edx, esi
	lea	edi, DWORD PTR [ecx+3]
	cmp	edx, edi
	jb	$output_overrun$1516
	mov	edx, ebp
	sub	edx, eax
	lea	edi, DWORD PTR [ecx+4]
	cmp	edx, edi
	jb	$input_overrun$1520
; Line 3797
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [esi], edx
; Line 3798
	add	esi, 4
	add	eax, 4
; Line 3799
	dec	ecx
	je	SHORT $first_literal_run$1524
; Line 3801
	cmp	ecx, 4
	jb	SHORT $L1561
	npad	1
$L1551:
; Line 3804
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [esi], edx
; Line 3805
	sub	ecx, 4
	add	esi, 4
	add	eax, 4
; Line 3806
	cmp	ecx, 4
	jae	SHORT $L1551
; Line 3807
	test	ecx, ecx
	jbe	SHORT $first_literal_run$1524
$L1557:
	mov	dl, BYTE PTR [eax]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	eax
	dec	ecx
	jne	SHORT $L1557
; Line 3809
	jmp	SHORT $first_literal_run$1524
$L1561:
; Line 3810
	mov	dl, BYTE PTR [eax]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	eax
	dec	ecx
	jne	SHORT $L1561
$first_literal_run$1524:
; Line 3826
	movzx	ecx, BYTE PTR [eax]
	inc	eax
; Line 3827
	cmp	ecx, 16					; 00000010H
	jae	$match$1529
; Line 3846
	movzx	edi, BYTE PTR [eax]
	shl	edi, 2
	mov	edx, esi
	sub	edx, edi
	shr	ecx, 2
	sub	edx, ecx
	sub	edx, 2049				; 00000801H
	inc	eax
; Line 3848
	cmp	edx, ebx
	jb	$lookbehind_overrun$1567
	cmp	edx, esi
	jae	$lookbehind_overrun$1567
	mov	ecx, DWORD PTR _op_end$[esp+12]
	sub	ecx, esi
	cmp	ecx, 3
	jb	$output_overrun$1516
; Line 3849
	mov	cl, BYTE PTR [edx]
	mov	BYTE PTR [esi], cl
	mov	cl, BYTE PTR [edx+1]
	inc	esi
	inc	edx
	mov	BYTE PTR [esi], cl
	mov	dl, BYTE PTR [edx+1]
	inc	esi
	mov	BYTE PTR [esi], dl
	inc	esi
	jmp	SHORT $match_done$1571
$L1844:
; Line 4017
	mov	ebx, DWORD PTR _out$[esp+12]
$match_done$1571:
; Line 4064
	mov	edx, DWORD PTR _op_end$[esp+12]
	xor	ecx, ecx
	mov	cl, BYTE PTR [eax-2]
	and	ecx, 3
	je	$L1526
$match_next$1511:
; Line 4068
	sub	edx, esi
	cmp	edx, ecx
	jb	$output_overrun$1516
	mov	edx, ebp
	sub	edx, eax
	lea	edi, DWORD PTR [ecx+1]
	cmp	edx, edi
	jb	$input_overrun$1520
; Line 4072
	mov	dl, BYTE PTR [eax]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	eax
; Line 4073
	cmp	ecx, 1
	jbe	SHORT $L1848
	mov	dl, BYTE PTR [eax]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	eax
	cmp	ecx, 2
	jbe	SHORT $L1848
	mov	cl, BYTE PTR [eax]
	mov	BYTE PTR [esi], cl
	inc	esi
	inc	eax
$L1848:
; Line 4075
	movzx	ecx, BYTE PTR [eax]
	inc	eax
; Line 4076
	cmp	eax, ebp
	jae	$L1843
$match$1529:
; Line 3855
	cmp	ecx, 64					; 00000040H
	jb	SHORT $L1575
; Line 3879
	mov	edx, ecx
	shr	edx, 2
	and	edx, 7
	mov	edi, esi
	sub	edi, edx
	movzx	edx, BYTE PTR [eax]
	shl	edx, 3
	sub	edi, edx
	dec	edi
; Line 3880
	shr	ecx, 5
	inc	eax
	dec	ecx
; Line 3904
	cmp	edi, ebx
	jb	$lookbehind_overrun$1567
	cmp	edi, esi
	jae	$lookbehind_overrun$1567
	mov	edx, DWORD PTR _op_end$[esp+12]
	sub	edx, esi
	lea	ebx, DWORD PTR [ecx+2]
	cmp	edx, ebx
	jb	$L1846
$copy_match$1582:
; Line 4052
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [esi], dl
	mov	dl, BYTE PTR [edi+1]
	inc	esi
	inc	edi
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	edi
$L1636:
; Line 4053
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	edi
	dec	ecx
	jne	SHORT $L1636
; Line 4017
	jmp	$L1844
$L1575:
; Line 3908
	cmp	ecx, 32					; 00000020H
	jb	SHORT $L1584
; Line 3910
	and	ecx, 31					; 0000001fH
; Line 3911
	jne	SHORT $L1585
; Line 3913
	mov	edx, ebp
	sub	edx, eax
	cmp	edx, 1
	jb	$input_overrun$1520
; Line 3914
	cmp	BYTE PTR [eax], 0
	jne	SHORT $L1591
	npad	2
$L1590:
; Line 3916
	add	ecx, 255				; 000000ffH
; Line 3917
	inc	eax
; Line 3918
	mov	edx, ebp
	sub	edx, eax
	cmp	edx, 1
	jb	$input_overrun$1520
	cmp	BYTE PTR [eax], 0
	je	SHORT $L1590
$L1591:
; Line 3920
	movzx	edx, BYTE PTR [eax]
	lea	ecx, DWORD PTR [ecx+edx+31]
	inc	eax
$L1585:
; Line 3938
	movzx	edx, WORD PTR [eax]
	shr	edx, 2
	mov	edi, esi
	sub	edi, edx
	dec	edi
; Line 3944
	add	eax, 2
; Line 3946
	jmp	SHORT $L1611
$L1584:
	cmp	ecx, 16					; 00000010H
	jb	$L1597
; Line 3952
	mov	edx, ecx
	and	edx, 8
	shl	edx, 11					; 0000000bH
	mov	edi, esi
	sub	edi, edx
; Line 3954
	and	ecx, 7
; Line 3955
	jne	SHORT $L1598
; Line 3957
	mov	edx, ebp
	sub	edx, eax
	cmp	edx, 1
	jb	$input_overrun$1520
; Line 3958
	cmp	BYTE PTR [eax], 0
	jne	SHORT $L1604
	npad	3
$L1603:
; Line 3960
	add	ecx, 255				; 000000ffH
; Line 3961
	inc	eax
; Line 3962
	mov	edx, ebp
	sub	edx, eax
	cmp	edx, 1
	jb	$input_overrun$1520
	cmp	BYTE PTR [eax], 0
	je	SHORT $L1603
$L1604:
; Line 3964
	movzx	edx, BYTE PTR [eax]
	lea	ecx, DWORD PTR [ecx+edx+7]
	inc	eax
$L1598:
; Line 3983
	movzx	edx, WORD PTR [eax]
	shr	edx, 2
	sub	edi, edx
; Line 3987
	add	eax, 2
; Line 3988
	cmp	edi, esi
	je	$eof_found$1610
; Line 3990
	sub	edi, 16384				; 00004000H
$L1611:
; Line 4030
	cmp	edi, ebx
	jb	$lookbehind_overrun$1567
	cmp	edi, esi
	jae	$lookbehind_overrun$1567
	mov	edx, DWORD PTR _op_end$[esp+12]
	sub	edx, esi
	lea	ebx, DWORD PTR [ecx+2]
	cmp	edx, ebx
	jb	$L1846
; Line 4037
	cmp	ecx, 6
	jb	$copy_match$1582
	mov	edx, esi
	sub	edx, edi
	cmp	edx, 4
	jl	$copy_match$1582
; Line 4040
	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR [esi], edx
; Line 4041
	add	esi, 4
	add	edi, 4
	sub	ecx, 2
	npad	2
$L1626:
; Line 4043
	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR [esi], edx
; Line 4044
	sub	ecx, 4
	add	esi, 4
	add	edi, 4
; Line 4045
	cmp	ecx, 4
	jae	SHORT $L1626
; Line 4046
	test	ecx, ecx
	jbe	$L1844
	npad	6
$L1632:
	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [esi], dl
	inc	esi
	inc	edi
	dec	ecx
	jne	SHORT $L1632
; Line 4048
	jmp	$L1844
$L1597:
; Line 4015
	movzx	edi, BYTE PTR [eax]
	shl	edi, 2
	shr	ecx, 2
	mov	edx, esi
	sub	edx, edi
	sub	edx, ecx
	dec	edx
	inc	eax
; Line 4017
	cmp	edx, ebx
	jb	$lookbehind_overrun$1567
	cmp	edx, esi
	jae	SHORT $lookbehind_overrun$1567
	mov	ecx, DWORD PTR _op_end$[esp+12]
	sub	ecx, esi
	cmp	ecx, 2
	jb	SHORT $output_overrun$1516
; Line 4018
	mov	cl, BYTE PTR [edx]
	mov	BYTE PTR [esi], cl
	mov	dl, BYTE PTR [edx+1]
	inc	esi
	mov	BYTE PTR [esi], dl
	inc	esi
; Line 4020
	jmp	$match_done$1571
$L1843:
; Line 4080
	mov	edx, DWORD PTR _op_end$[esp+12]
	jmp	$L1526
$input_overrun$1520:
; Line 4092
	mov	eax, DWORD PTR _out_len$[esp+12]
	sub	esi, ebx
	pop	edi
	mov	DWORD PTR [eax], esi
	pop	esi
	pop	ebp
; Line 4093
	mov	eax, -4					; fffffffcH
	pop	ebx
; Line 4107
	ret	0
$eof_found$1610:
; Line 4086
	mov	ecx, DWORD PTR _out_len$[esp+12]
	sub	esi, ebx
; Line 4088
	cmp	eax, ebp
	mov	DWORD PTR [ecx], esi
	jne	SHORT $L1857
	pop	edi
	pop	esi
	pop	ebp
	xor	eax, eax
	pop	ebx
; Line 4107
	ret	0
$L1857:
	pop	edi
; Line 4088
	sbb	eax, eax
	pop	esi
	and	eax, -4					; fffffffcH
	pop	ebp
	add	eax, -4					; fffffffcH
	pop	ebx
; Line 4107
	ret	0
$L1846:
; Line 4088
	mov	ebx, DWORD PTR _out$[esp+12]
$output_overrun$1516:
; Line 4098
	mov	edx, DWORD PTR _out_len$[esp+12]
	sub	esi, ebx
	pop	edi
	mov	DWORD PTR [edx], esi
	pop	esi
	pop	ebp
; Line 4099
	mov	eax, -5					; fffffffbH
	pop	ebx
; Line 4107
	ret	0
$lookbehind_overrun$1567:
; Line 4104
	mov	eax, DWORD PTR _out_len$[esp+12]
	sub	esi, ebx
	pop	edi
	mov	DWORD PTR [eax], esi
	pop	esi
	pop	ebp
; Line 4105
	mov	eax, -6					; fffffffaH
	pop	ebx
; Line 4107
	ret	0
$L1527:
; Line 4080
	mov	ecx, DWORD PTR _out_len$[esp+12]
	sub	esi, ebx
	pop	edi
	mov	DWORD PTR [ecx], esi
	pop	esi
	pop	ebp
; Line 4081
	mov	eax, -7					; fffffff9H
	pop	ebx
; Line 4107
	ret	0
_lzo1x_decompress_safe ENDP
_TEXT	ENDS
END
