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

include listing.inc

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	__lzo_copyright
PUBLIC	__lzo_init_done
_BSS	SEGMENT
__lzo_init_done DD 01H DUP (?)
_BSS	ENDS
_DATA	SEGMENT
$SG2013	DB	'2.03', 00H
	ORG $+3
$SG2016	DB	'Apr 30 2008', 00H
$SG2019	DB	'2.03', 00H
	ORG $+7
$SG2022	DB	'Apr 30 2008', 00H
_DATA	ENDS
CONST	SEGMENT
__lzo_copyright DB '2.03', 00H
CONST	ENDS
PUBLIC	__lzo_ptr_linear
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
ptr$ = 8
__lzo_ptr_linear PROC
; File c:\worktemp\_kaze_kazuya_r17++_lasse-ariya-oberhumer-okumura_(on_osho)_32_bit_64_bit\kazuya17++\minilzo.c
; Line 2197
	mov	rax, rcx
; Line 2198
	ret	0
__lzo_ptr_linear ENDP
_TEXT	ENDS
PUBLIC	__lzo_align_gap
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
ptr$ = 8
size$ = 16
__lzo_align_gap PROC
; Line 2202
	mov	r8, rdx
; Line 2215
	lea	rax, QWORD PTR [rcx+rdx-1]
	xor	edx, edx
	div	r8
	imul	eax, r8d
	sub	eax, ecx
; Line 2216
	ret	0
__lzo_align_gap ENDP
_TEXT	ENDS
PUBLIC	lzo_copyright
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
lzo_copyright PROC
; Line 2244
	lea	rax, OFFSET FLAT:__lzo_copyright
; Line 2246
	ret	0
lzo_copyright ENDP
_TEXT	ENDS
PUBLIC	lzo_version
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
lzo_version PROC
; Line 2251
	mov	eax, 8240				; 00002030H
; Line 2252
	ret	0
lzo_version ENDP
_TEXT	ENDS
PUBLIC	lzo_version_string
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
lzo_version_string PROC
; Line 2257
	lea	rax, OFFSET FLAT:$SG2013
; Line 2258
	ret	0
lzo_version_string ENDP
_TEXT	ENDS
PUBLIC	lzo_version_date
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
lzo_version_date PROC
; Line 2263
	lea	rax, OFFSET FLAT:$SG2016
; Line 2264
	ret	0
lzo_version_date ENDP
_TEXT	ENDS
PUBLIC	_lzo_version_string
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
_lzo_version_string PROC
; Line 2269
	lea	rax, OFFSET FLAT:$SG2019
; Line 2270
	ret	0
_lzo_version_string ENDP
_TEXT	ENDS
PUBLIC	_lzo_version_date
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
_lzo_version_date PROC
; Line 2275
	lea	rax, OFFSET FLAT:$SG2022
; Line 2276
	ret	0
_lzo_version_date ENDP
_TEXT	ENDS
PUBLIC	lzo_adler32
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
adler$ = 8
buf$ = 16
len$ = 24
lzo_adler32 PROC
; Line 2290
	movzx	r9d, cx
; Line 2291
	shr	ecx, 16
	mov	r10, rdx
; Line 2294
	test	rdx, rdx
	jne	SHORT $LN14@lzo_adler3
; Line 2295
	lea	eax, QWORD PTR [rdx+1]
; Line 2316
	ret	0
$LN14@lzo_adler3:
; Line 2297
	test	r8, r8
	je	$LN9@lzo_adler3
	npad	4
$LL10@lzo_adler3:
; Line 2299
	mov	edx, 5552				; 000015b0H
	cmp	r8, rdx
	cmovb	edx, r8d
; Line 2300
	mov	eax, edx
	sub	r8, rax
; Line 2301
	cmp	edx, 16
	jb	$LN5@lzo_adler3
	npad	6
$LL7@lzo_adler3:
; Line 2303
	movzx	eax, BYTE PTR [r10]
; Line 2305
	add	edx, -16				; fffffff0H
	add	r10, 16
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-15]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-14]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-13]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-12]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-11]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-10]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-9]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-8]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-7]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-6]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-5]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-4]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-3]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-2]
	add	ecx, r9d
	add	r9d, eax
	movzx	eax, BYTE PTR [r10-1]
	add	ecx, r9d
	add	r9d, eax
	add	ecx, r9d
; Line 2306
	cmp	edx, 16
	jae	$LL7@lzo_adler3
$LN5@lzo_adler3:
; Line 2307
	test	edx, edx
	je	SHORT $LN1@lzo_adler3
	npad	13
$LL3@lzo_adler3:
; Line 2309
	movzx	eax, BYTE PTR [r10]
	inc	r10
	add	r9d, eax
; Line 2310
	add	ecx, r9d
; Line 2311
	add	edx, -1					; ffffffffH
	jne	SHORT $LL3@lzo_adler3
$LN1@lzo_adler3:
; Line 2312
	mov	eax, -2146992015			; 80078071H
	mul	r9d
; Line 2313
	mov	eax, -2146992015			; 80078071H
	shr	edx, 15
	imul	edx, -65521				; ffff000fH
	add	r9d, edx
	mul	ecx
	shr	edx, 15
	imul	edx, -65521				; ffff000fH
	add	ecx, edx
	test	r8, r8
	jne	$LL10@lzo_adler3
$LN9@lzo_adler3:
; Line 2315
	shl	ecx, 16
	or	ecx, r9d
	mov	eax, ecx
; Line 2316
	ret	0
lzo_adler32 ENDP
_TEXT	ENDS
PUBLIC	lzo_memcmp
EXTRN	memcmp:PROC
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
s1$ = 8
s2$ = 16
len$ = 24
lzo_memcmp PROC
; Line 2360
	jmp	memcmp
lzo_memcmp ENDP
_TEXT	ENDS
PUBLIC	lzo_memcpy
EXTRN	memcpy:PROC
pdata	SEGMENT
$pdata$lzo_memcpy DD imagerel $LN3
	DD	imagerel $LN3+23
	DD	imagerel $unwind$lzo_memcpy
pdata	ENDS
xdata	SEGMENT
$unwind$lzo_memcpy DD 020601H
	DD	030023206H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
dest$ = 48
src$ = 56
len$ = 64
lzo_memcpy PROC
; Line 2362
$LN3:
	push	rbx
	sub	rsp, 32					; 00000020H
	mov	rbx, rcx
; Line 2373
	call	memcpy
	mov	rax, rbx
; Line 2375
	add	rsp, 32					; 00000020H
	pop	rbx
	ret	0
lzo_memcpy ENDP
_TEXT	ENDS
PUBLIC	lzo_memmove
EXTRN	memmove:PROC
; Function compile flags: /Ogtpy
_TEXT	SEGMENT
dest$ = 8
src$ = 16
len$ = 24
lzo_memmove PROC
; Line 2401
	jmp	memmove
lzo_memmove ENDP
_TEXT	ENDS
PUBLIC	lzo_memset
EXTRN	memset:PROC
pdata	SEGMENT
$pdata$lzo_memset DD imagerel $LN3
	DD	imagerel $LN3+23
	DD	imagerel $unwind$lzo_memset
pdata	ENDS
xdata	SEGMENT
$unwind$lzo_memset DD 020601H
	DD	030023206H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
s$ = 48
c$ = 56
len$ = 64
lzo_memset PROC
; Line 2403
$LN3:
	push	rbx
	sub	rsp, 32					; 00000020H
	mov	rbx, rcx
; Line 2411
	call	memset
	mov	rax, rbx
; Line 2413
	add	rsp, 32					; 00000020H
	pop	rbx
	ret	0
lzo_memset ENDP
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	_lzo_config_check
EXTRN	__GSHandlerCheck:PROC
EXTRN	__security_cookie:QWORD
EXTRN	__security_check_cookie:PROC
pdata	SEGMENT
$pdata$_lzo_config_check DD imagerel $LN3
	DD	imagerel $LN3+69
	DD	imagerel $unwind$_lzo_config_check
pdata	ENDS
xdata	SEGMENT
$unwind$_lzo_config_check DD 011319H
	DD	04204H
	DD	imagerel __GSHandlerCheck
	DD	010H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
u$ = 0
__$ArrayPad$ = 16
_lzo_config_check PROC
; Line 2445
$LN3:
	sub	rsp, 40					; 00000028H
	mov	rax, QWORD PTR __security_cookie
	xor	rax, rsp
	mov	QWORD PTR __$ArrayPad$[rsp], rax
; Line 2456
	xor	eax, eax
	mov	QWORD PTR u$[rsp], rax
	mov	BYTE PTR u$[rsp], 128			; 00000080H
; Line 2457
	cmp	QWORD PTR u$[rsp], 128			; 00000080H
	sete	al
; Line 2462
	and	eax, 1
; Line 2467
	and	al, 1
; Line 2472
	dec	al
	neg	al
	sbb	eax, eax
; Line 2473
	mov	rcx, QWORD PTR __$ArrayPad$[rsp]
	xor	rcx, rsp
	call	__security_check_cookie
	add	rsp, 40					; 00000028H
	ret	0
_lzo_config_check ENDP
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	__lzo_init_v2
pdata	SEGMENT
$pdata$__lzo_init_v2 DD imagerel $LN20
	DD	imagerel $LN20+226
	DD	imagerel $unwind$__lzo_init_v2
pdata	ENDS
xdata	SEGMENT
$unwind$__lzo_init_v2 DD 011319H
	DD	04204H
	DD	imagerel __GSHandlerCheck
	DD	010H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
u$2706 = 0
__$ArrayPad$ = 16
v$ = 48
s1$ = 56
s2$ = 64
s3$ = 72
s4$ = 80
s5$ = 88
s6$ = 96
s7$ = 104
s8$ = 112
s9$ = 120
__lzo_init_v2 PROC
; Line 2480
$LN20:
	sub	rsp, 40					; 00000028H
	mov	rax, QWORD PTR __security_cookie
	xor	rax, rsp
	mov	QWORD PTR __$ArrayPad$[rsp], rax
; Line 2492
	mov	DWORD PTR __lzo_init_done, 1
; Line 2494
	test	ecx, ecx
	jne	SHORT $LN3@lzo_init_v
$LN19@lzo_init_v:
; Line 2495
	or	eax, -1
; Line 2514
	mov	rcx, QWORD PTR __$ArrayPad$[rsp]
	xor	rcx, rsp
	call	__security_check_cookie
	add	rsp, 40					; 00000028H
	ret	0
$LN3@lzo_init_v:
; Line 2505
	cmp	edx, -1
	je	SHORT $LN6@lzo_init_v
	cmp	edx, 2
	jne	SHORT $LN19@lzo_init_v
$LN6@lzo_init_v:
	cmp	r8d, -1
	je	SHORT $LN7@lzo_init_v
	cmp	r8d, 4
	jne	SHORT $LN19@lzo_init_v
$LN7@lzo_init_v:
	cmp	r9d, -1
	je	SHORT $LN9@lzo_init_v
	cmp	r9d, 4
	jne	SHORT $LN19@lzo_init_v
$LN9@lzo_init_v:
	mov	eax, DWORD PTR s4$[rsp]
	cmp	eax, -1
	je	SHORT $LN10@lzo_init_v
	cmp	eax, 4
	jne	SHORT $LN19@lzo_init_v
$LN10@lzo_init_v:
	mov	eax, DWORD PTR s5$[rsp]
	cmp	eax, -1
	je	SHORT $LN11@lzo_init_v
	cmp	eax, 8
	jne	SHORT $LN19@lzo_init_v
$LN11@lzo_init_v:
	mov	eax, DWORD PTR s6$[rsp]
	cmp	eax, -1
	je	SHORT $LN12@lzo_init_v
	cmp	eax, 8
	jne	SHORT $LN19@lzo_init_v
$LN12@lzo_init_v:
	mov	eax, DWORD PTR s7$[rsp]
	cmp	eax, -1
	je	SHORT $LN13@lzo_init_v
	cmp	eax, 8
	jne	SHORT $LN19@lzo_init_v
$LN13@lzo_init_v:
	mov	eax, DWORD PTR s8$[rsp]
	cmp	eax, -1
	je	SHORT $LN14@lzo_init_v
	cmp	eax, 8
	jne	SHORT $LN19@lzo_init_v
$LN14@lzo_init_v:
	mov	eax, DWORD PTR s9$[rsp]
	cmp	eax, -1
	je	SHORT $LN2@lzo_init_v
	cmp	eax, 48					; 00000030H
; Line 2507
	jne	$LN19@lzo_init_v
$LN2@lzo_init_v:
; Line 2509
	xor	eax, eax
	mov	QWORD PTR u$2706[rsp], rax
	mov	BYTE PTR u$2706[rsp], 128		; 00000080H
	cmp	QWORD PTR u$2706[rsp], 128		; 00000080H
	sete	al
	and	eax, 1
	and	al, 1
	dec	al
	neg	al
	sbb	eax, eax
; Line 2514
	mov	rcx, QWORD PTR __$ArrayPad$[rsp]
	xor	rcx, rsp
	call	__security_check_cookie
	add	rsp, 40					; 00000028H
	ret	0
__lzo_init_v2 ENDP
_TEXT	ENDS
pdata	SEGMENT
$pdata$_lzo1x_1_do_compress DD imagerel _lzo1x_1_do_compress
	DD	imagerel _lzo1x_1_do_compress+980
	DD	imagerel $unwind$_lzo1x_1_do_compress
pdata	ENDS
xdata	SEGMENT
$unwind$_lzo1x_1_do_compress DD 0a4001H
	DD	055440H
	DD	0f01a521eH
	DD	0d016e018H
	DD	07012c014H
	DD	030106011H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
in$ = 112
tv599 = 120
in_len$ = 120
out$ = 128
out_len$ = 136
wrkmem$ = 144
_lzo1x_1_do_compress PROC
; Line 2826
	mov	QWORD PTR [rsp+32], r9
	mov	QWORD PTR [rsp+24], r8
	mov	QWORD PTR [rsp+8], rcx
	push	rbx
	push	rsi
	push	rdi
	push	r12
	push	r13
	push	r14
	push	r15
	sub	rsp, 48					; 00000030H
	mov	r11, QWORD PTR wrkmem$[rsp]
; Line 2829
	lea	r15, QWORD PTR [rcx+rdx]
	mov	rbx, rcx
; Line 2834
	mov	rsi, r8
; Line 2836
	mov	r13, rcx
; Line 2838
	lea	rdi, QWORD PTR [rcx+4]
	lea	r14, QWORD PTR [r15-13]
	mov	QWORD PTR [rsp+40], rbp
$LL41@lzo1x_1_do:
; Line 2846
	movzx	eax, BYTE PTR [rdi+1]
	movzx	edx, BYTE PTR [rdi+3]
	movzx	r9d, BYTE PTR [rdi+2]
	lea	r10, QWORD PTR [rdi+3]
	mov	rcx, rdx
	lea	r8, QWORD PTR [rdi+1]
	shl	rcx, 6
	mov	QWORD PTR tv599[rsp], r10
	xor	rcx, r9
	shl	rcx, 5
	xor	rcx, rax
	movzx	eax, BYTE PTR [rdi]
	shl	rcx, 5
	xor	rcx, rax
	imul	rcx, 33					; 00000021H
	shr	rcx, 5
	and	ecx, 16383				; 00003fffH
; Line 2847
	mov	r12, QWORD PTR [r11+rcx*8]
; Line 2848
	cmp	r12, rbx
	jb	$literal$2174
	mov	rbp, rdi
	sub	rbp, r12
	lea	rax, QWORD PTR [rbp-1]
	cmp	rax, 49150				; 0000bffeH
	ja	$literal$2174
; Line 2851
	cmp	rbp, 2048				; 00000800H
	jbe	SHORT $try_match$2177
	cmp	BYTE PTR [r12+3], dl
	je	SHORT $try_match$2177
; Line 2853
	and	ecx, 2047				; 000007ffH
	xor	rcx, 8223				; 0000201fH
; Line 2855
	mov	r12, QWORD PTR [r11+rcx*8]
; Line 2856
	cmp	r12, rbx
	jb	$literal$2174
	mov	rbp, rdi
	sub	rbp, r12
	lea	rax, QWORD PTR [rbp-1]
	cmp	rax, 49150				; 0000bffeH
	ja	$literal$2174
; Line 2858
	cmp	rbp, 2048				; 00000800H
	jbe	SHORT $try_match$2177
	cmp	BYTE PTR [r12+3], dl
	jne	$literal$2174
$try_match$2177:
; Line 2864
	movzx	eax, WORD PTR [rdi]
	cmp	WORD PTR [r12], ax
	jne	$literal$2174
; Line 2872
	cmp	BYTE PTR [r12+2], r9b
	jne	$literal$2174
; Line 2922
	mov	QWORD PTR [r11+rcx*8], rdi
; Line 2923
	sub	rdi, r13
$match$2194:
	je	$LN19@lzo1x_1_do
; Line 2927
	cmp	rdi, 3
	ja	SHORT $LN27@lzo1x_1_do
; Line 2930
	or	BYTE PTR [rsi-2], dil
	jmp	SHORT $LL21@lzo1x_1_do
$LN27@lzo1x_1_do:
; Line 2932
	cmp	rdi, 18
	ja	SHORT $LN25@lzo1x_1_do
; Line 2933
	lea	eax, DWORD PTR [rdi-3]
	inc	rsi
	mov	BYTE PTR [rsi-1], al
; Line 2934
	jmp	SHORT $LL21@lzo1x_1_do
$LN25@lzo1x_1_do:
; Line 2936
	lea	r14, QWORD PTR [rdi-18]
; Line 2938
	mov	BYTE PTR [rsi], 0
	inc	rsi
; Line 2939
	cmp	r14, 255				; 000000ffH
	jbe	SHORT $LN23@lzo1x_1_do
	lea	rcx, QWORD PTR [r14-256]
	mov	rax, -9187201950435737471		; 8080808080808081H
	mul	rcx
	mov	rcx, rsi
	mov	rbx, rdx
	xor	edx, edx
	shr	rbx, 7
	inc	rbx
	mov	r8, rbx
	call	memset
	mov	r10, QWORD PTR tv599[rsp]
	add	rsi, rbx
	imul	rbx, -255				; ffffffffffffff01H
	add	r14, rbx
$LN23@lzo1x_1_do:
; Line 2945
	mov	BYTE PTR [rsi], r14b
	inc	rsi
	lea	r14, QWORD PTR [r15-13]
	npad	9
$LL21@lzo1x_1_do:
; Line 2947
	movzx	eax, BYTE PTR [r13]
	inc	rsi
	inc	r13
	sub	rdi, 1
	mov	BYTE PTR [rsi-1], al
	jne	SHORT $LL21@lzo1x_1_do
$LN19@lzo1x_1_do:
; Line 2958
	movzx	eax, BYTE PTR [r10]
	lea	rdi, QWORD PTR [r10+1]
	cmp	BYTE PTR [r12+3], al
	jne	$LN17@lzo1x_1_do
	movzx	eax, BYTE PTR [rdi]
	inc	rdi
	cmp	BYTE PTR [r12+4], al
	jne	$LN17@lzo1x_1_do
	movzx	eax, BYTE PTR [rdi]
	inc	rdi
	cmp	BYTE PTR [r12+5], al
	jne	$LN17@lzo1x_1_do
	movzx	eax, BYTE PTR [rdi]
	inc	rdi
	cmp	BYTE PTR [r12+6], al
	jne	$LN17@lzo1x_1_do
	movzx	eax, BYTE PTR [rdi]
	inc	rdi
	cmp	BYTE PTR [r12+7], al
	jne	$LN17@lzo1x_1_do
	movzx	eax, BYTE PTR [rdi]
	inc	rdi
	cmp	BYTE PTR [r12+8], al
	jne	$LN17@lzo1x_1_do
; Line 2998
	lea	rcx, QWORD PTR [r12+9]
; Line 2999
	cmp	rdi, r15
	jae	SHORT $LN74@lzo1x_1_do
$LL11@lzo1x_1_do:
	movzx	eax, BYTE PTR [rdi]
	cmp	BYTE PTR [rcx], al
	jne	SHORT $LN74@lzo1x_1_do
; Line 3000
	inc	rdi
	inc	rcx
	cmp	rdi, r15
	jb	SHORT $LL11@lzo1x_1_do
$LN74@lzo1x_1_do:
; Line 3001
	mov	r12, rdi
	sub	r12, r13
; Line 3005
	cmp	rbp, 16384				; 00004000H
	ja	SHORT $LN9@lzo1x_1_do
; Line 3007
	dec	rbp
; Line 3008
	cmp	r12, 33					; 00000021H
	ja	SHORT $LN8@lzo1x_1_do
; Line 3009
	sub	r12b, 2
	or	r12b, 32				; 00000020H
	inc	rsi
	mov	BYTE PTR [rsi-1], r12b
; Line 3017
	jmp	$m3_m4_offset$2229
$LN8@lzo1x_1_do:
; Line 3012
	sub	r12, 33					; 00000021H
; Line 3013
	mov	BYTE PTR [rsi], 32			; 00000020H
	inc	rsi
; Line 3014
	jmp	SHORT $m3_m4_len$2246
$LN9@lzo1x_1_do:
; Line 3022
	sub	rbp, 16384				; 00004000H
; Line 3024
	cmp	r12, 9
	ja	SHORT $LN5@lzo1x_1_do
; Line 3026
	sub	r12b, 2
	mov	rax, rbp
	shr	rax, 11
	and	al, 8
	or	al, r12b
	or	al, 16
	inc	rsi
	mov	BYTE PTR [rsi-1], al
; Line 3027
	jmp	$m3_m4_offset$2229
$LN5@lzo1x_1_do:
; Line 3030
	mov	rax, rbp
	sub	r12, 9
	shr	rax, 11
	and	al, 8
	or	al, 16
	inc	rsi
	mov	BYTE PTR [rsi-1], al
$m3_m4_len$2246:
; Line 3032
	cmp	r12, 255				; 000000ffH
	jbe	SHORT $LN3@lzo1x_1_do
	lea	rcx, QWORD PTR [r12-256]
	mov	rax, -9187201950435737471		; 8080808080808081H
	mul	rcx
	mov	rcx, rsi
	mov	rbx, rdx
	xor	edx, edx
	shr	rbx, 7
	inc	rbx
	mov	r8, rbx
	call	memset
	add	rsi, rbx
	imul	rbx, -255				; ffffffffffffff01H
	add	r12, rbx
$LN3@lzo1x_1_do:
; Line 3038
	mov	BYTE PTR [rsi], r12b
	inc	rsi
	jmp	SHORT $m3_m4_offset$2229
$LN17@lzo1x_1_do:
; Line 2960
	dec	rdi
; Line 2961
	mov	rcx, rdi
	sub	rcx, r13
; Line 2964
	cmp	rbp, 2048				; 00000800H
	ja	SHORT $LN16@lzo1x_1_do
; Line 2968
	dec	cl
	dec	rbp
	shl	cl, 3
	movzx	eax, bpl
; Line 2969
	shr	rbp, 3
	and	al, 7
	or	cl, al
	shl	cl, 2
	add	rsi, 2
	mov	BYTE PTR [rsi-2], cl
	mov	BYTE PTR [rsi-1], bpl
; Line 2994
	jmp	SHORT $LN12@lzo1x_1_do
$LN16@lzo1x_1_do:
; Line 2975
	cmp	rbp, 16384				; 00004000H
	ja	SHORT $LN14@lzo1x_1_do
; Line 2978
	sub	cl, 2
	dec	rbp
	or	cl, 32					; 00000020H
	inc	rsi
	mov	BYTE PTR [rsi-1], cl
; Line 2979
	jmp	SHORT $m3_m4_offset$2229
$LN14@lzo1x_1_do:
; Line 2984
	sub	rbp, 16384				; 00004000H
; Line 2987
	sub	cl, 2
	mov	rax, rbp
	shr	rax, 11
	and	al, 8
	or	al, cl
	or	al, 16
	inc	rsi
	mov	BYTE PTR [rsi-1], al
$m3_m4_offset$2229:
; Line 3043
	movzx	eax, bpl
; Line 3044
	shr	rbp, 6
	shl	al, 2
	add	rsi, 2
	mov	BYTE PTR [rsi-2], al
	mov	BYTE PTR [rsi-1], bpl
$LN12@lzo1x_1_do:
; Line 3050
	mov	r13, rdi
; Line 3051
	cmp	rdi, r14
	jae	SHORT $LN55@lzo1x_1_do
; Line 3053
	mov	r11, QWORD PTR wrkmem$[rsp]
	mov	rbx, QWORD PTR in$[rsp]
	jmp	$LL41@lzo1x_1_do
$literal$2174:
; Line 2915
	mov	QWORD PTR [r11+rcx*8], rdi
; Line 2916
	mov	rdi, r8
; Line 2917
	cmp	r8, r14
	jb	$LL41@lzo1x_1_do
$LN55@lzo1x_1_do:
; Line 3055
	mov	rax, QWORD PTR out_len$[rsp]
	sub	rsi, QWORD PTR out$[rsp]
	mov	rbp, QWORD PTR [rsp+40]
; Line 3056
	sub	r15, r13
	mov	QWORD PTR [rax], rsi
	mov	rax, r15
; Line 3057
	add	rsp, 48					; 00000030H
	pop	r15
	pop	r14
	pop	r13
	pop	r12
	pop	rdi
	pop	rsi
	pop	rbx
	ret	0
_lzo1x_1_do_compress ENDP
_TEXT	ENDS
PUBLIC	lzo1x_1_compress
pdata	SEGMENT
$pdata$lzo1x_1_compress DD imagerel $LN25
	DD	imagerel $LN25+148
	DD	imagerel $unwind$lzo1x_1_compress
$pdata$0$lzo1x_1_compress DD imagerel $LN25+148
	DD	imagerel $LN25+240
	DD	imagerel $chain$0$lzo1x_1_compress
$pdata$1$lzo1x_1_compress DD imagerel $LN25+240
	DD	imagerel $LN25+309
	DD	imagerel $chain$1$lzo1x_1_compress
pdata	ENDS
xdata	SEGMENT
$unwind$lzo1x_1_compress DD 0a1801H
	DD	0d6418H
	DD	0c5418H
	DD	0b3418H
	DD	0e0145218H
	DD	07010d012H
$chain$0$lzo1x_1_compress DD 020521H
	DD	0ac405H
	DD	imagerel $LN25
	DD	imagerel $LN25+148
	DD	imagerel $unwind$lzo1x_1_compress
$chain$1$lzo1x_1_compress DD 021H
	DD	imagerel $LN25
	DD	imagerel $LN25+148
	DD	imagerel $unwind$lzo1x_1_compress
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
in$ = 80
in_len$ = 88
out$ = 96
out_len$ = 104
wrkmem$ = 112
lzo1x_1_compress PROC
; Line 3063
$LN25:
	mov	QWORD PTR [rsp+16], rbx
	mov	QWORD PTR [rsp+24], rbp
	mov	QWORD PTR [rsp+32], rsi
	push	rdi
	push	r13
	push	r14
	sub	rsp, 48					; 00000030H
	mov	r14, r9
	mov	r13, r8
	mov	rbx, rdx
	mov	rbp, rcx
; Line 3064
	mov	rdi, r8
; Line 3067
	cmp	rdx, 13
	ja	SHORT $LN14@lzo1x_1_co
; Line 3068
	mov	rsi, rdx
; Line 3069
	jmp	SHORT $LN13@lzo1x_1_co
$LN14@lzo1x_1_co:
; Line 3071
	mov	rax, QWORD PTR wrkmem$[rsp]
	mov	QWORD PTR [rsp+32], rax
	call	_lzo1x_1_do_compress
; Line 3072
	mov	rcx, QWORD PTR [r14]
	lea	rdi, QWORD PTR [r13+rcx]
	mov	rsi, rax
$LN13@lzo1x_1_co:
; Line 3075
	test	rsi, rsi
	je	$LN1@lzo1x_1_co
; Line 3077
	sub	rbp, rsi
	add	rbp, rbx
; Line 3079
	cmp	rdi, r13
	jne	SHORT $LN11@lzo1x_1_co
	cmp	rsi, 238				; 000000eeH
	ja	SHORT $LN11@lzo1x_1_co
; Line 3080
	lea	eax, DWORD PTR [rsi+17]
	inc	rdi
	mov	BYTE PTR [rdi-1], al
	jmp	$LL3@lzo1x_1_co
$LN11@lzo1x_1_co:
; Line 3081
	cmp	rsi, 3
	ja	SHORT $LN9@lzo1x_1_co
; Line 3082
	or	BYTE PTR [rdi-2], sil
	jmp	SHORT $LL3@lzo1x_1_co
$LN9@lzo1x_1_co:
; Line 3083
	cmp	rsi, 18
	ja	SHORT $LN7@lzo1x_1_co
; Line 3084
	lea	eax, DWORD PTR [rsi-3]
	inc	rdi
	mov	BYTE PTR [rdi-1], al
; Line 3085
	jmp	SHORT $LL3@lzo1x_1_co
$LN7@lzo1x_1_co:
	mov	QWORD PTR [rsp+80], r12
; Line 3087
	lea	r12, QWORD PTR [rsi-18]
; Line 3089
	mov	BYTE PTR [rdi], 0
	inc	rdi
; Line 3090
	cmp	r12, 255				; 000000ffH
	jbe	SHORT $LN5@lzo1x_1_co
	lea	rcx, QWORD PTR [r12-256]
	mov	rax, -9187201950435737471		; 8080808080808081H
	mul	rcx
	mov	rcx, rdi
	mov	rbx, rdx
	xor	edx, edx
	shr	rbx, 7
	inc	rbx
	mov	r8, rbx
	call	memset
	add	rdi, rbx
	imul	rbx, -255				; ffffffffffffff01H
	add	r12, rbx
$LN5@lzo1x_1_co:
; Line 3096
	mov	BYTE PTR [rdi], r12b
	mov	r12, QWORD PTR [rsp+80]
	inc	rdi
$LL3@lzo1x_1_co:
; Line 3098
	movzx	eax, BYTE PTR [rbp]
	inc	rdi
	inc	rbp
	sub	rsi, 1
	mov	BYTE PTR [rdi-1], al
	jne	SHORT $LL3@lzo1x_1_co
$LN1@lzo1x_1_co:
; Line 3107
	mov	rbx, QWORD PTR [rsp+88]
	mov	rbp, QWORD PTR [rsp+96]
	mov	rsi, QWORD PTR [rsp+104]
	mov	BYTE PTR [rdi], 17
	mov	BYTE PTR [rdi+1], 0
	add	rdi, 2
	mov	BYTE PTR [rdi], 0
	sub	rdi, r13
	inc	rdi
	xor	eax, eax
	mov	QWORD PTR [r14], rdi
	add	rsp, 48					; 00000030H
	pop	r14
	pop	r13
	pop	rdi
	ret	0
lzo1x_1_compress ENDP
_TEXT	ENDS
PUBLIC	lzo1x_decompress
pdata	SEGMENT
$pdata$lzo1x_decompress DD imagerel $LN105
	DD	imagerel $LN105+914
	DD	imagerel $unwind$lzo1x_decompress
pdata	ENDS
xdata	SEGMENT
$unwind$lzo1x_decompress DD 040a01H
	DD	02740aH
	DD	013405H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
in$ = 8
in_len$ = 16
out$ = 24
out_len$ = 32
wrkmem$ = 40
lzo1x_decompress PROC
; Line 3224
$LN105:
	mov	QWORD PTR [rsp+8], rbx
	mov	QWORD PTR [rsp+16], rdi
	mov	rbx, r9
	mov	rdi, r8
	mov	r10, rcx
; Line 3262
	mov	QWORD PTR [rbx], 0
; Line 3267
	movzx	eax, BYTE PTR [rcx]
	lea	r9, QWORD PTR [rcx+rdx]
	mov	r11, r8
	cmp	al, 17
	jbe	SHORT $LN51@lzo1x_deco
; Line 3269
	movzx	eax, al
	sub	eax, 17
	inc	r10
	movsxd	rcx, eax
; Line 3270
	cmp	rcx, 4
	jb	$match_next$2319
	npad	2
$LL54@lzo1x_deco:
; Line 3273
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	sub	rcx, 1
	mov	BYTE PTR [r11-1], al
	jne	SHORT $LL54@lzo1x_deco
; Line 3274
	jmp	$first_literal_run$2326
$LN51@lzo1x_deco:
; Line 3279
	movzx	r8d, BYTE PTR [r10]
	inc	r10
; Line 3280
	cmp	r8, 16
	jae	$match$2331
; Line 3282
	test	r8, r8
	jne	SHORT $LN48@lzo1x_deco
; Line 3285
	cmp	BYTE PTR [r10], r8b
	jne	SHORT $LN46@lzo1x_deco
	npad	12
$LL47@lzo1x_deco:
; Line 3288
	inc	r10
	add	r8, 255					; 000000ffH
	cmp	BYTE PTR [r10], 0
	je	SHORT $LL47@lzo1x_deco
$LN46@lzo1x_deco:
; Line 3291
	movzx	eax, BYTE PTR [r10]
	add	eax, 15
	cdqe
	add	r8, rax
	inc	r10
$LN48@lzo1x_deco:
; Line 3299
	mov	eax, DWORD PTR [r10]
; Line 3300
	add	r11, 4
	add	r10, 4
; Line 3301
	sub	r8, 1
	mov	DWORD PTR [r11-4], eax
	je	SHORT $first_literal_run$2326
; Line 3303
	cmp	r8, 4
	jb	SHORT $LL35@lzo1x_deco
	npad	6
$LL43@lzo1x_deco:
; Line 3306
	mov	eax, DWORD PTR [r10]
; Line 3307
	sub	r8, 4
	add	r11, 4
	mov	DWORD PTR [r11-4], eax
	add	r10, 4
; Line 3308
	cmp	r8, 4
	jae	SHORT $LL43@lzo1x_deco
; Line 3309
	test	r8, r8
	je	SHORT $first_literal_run$2326
	npad	2
$LL39@lzo1x_deco:
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	sub	r8, 1
	mov	BYTE PTR [r11-1], al
	jne	SHORT $LL39@lzo1x_deco
; Line 3311
	jmp	SHORT $first_literal_run$2326
	npad	10
$LL35@lzo1x_deco:
; Line 3312
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	sub	r8, 1
	mov	BYTE PTR [r11-1], al
	jne	SHORT $LL35@lzo1x_deco
$first_literal_run$2326:
; Line 3328
	movzx	r8d, BYTE PTR [r10]
	inc	r10
; Line 3329
	cmp	r8, 16
	jae	SHORT $match$2331
; Line 3348
	movzx	eax, BYTE PTR [r10]
	mov	rdx, r11
	shr	r8, 2
	shl	eax, 2
	inc	r10
	movsxd	rcx, eax
	sub	rdx, rcx
	sub	rdx, r8
; Line 3351
	add	r11, 3
	movzx	eax, BYTE PTR [rdx-2049]
	mov	BYTE PTR [r11-3], al
	movzx	eax, BYTE PTR [rdx-2048]
	mov	BYTE PTR [r11-2], al
	movzx	eax, BYTE PTR [rdx-2047]
	mov	BYTE PTR [r11-1], al
	jmp	$match_done$2361
$match$2331:
; Line 3357
	cmp	r8, 64					; 00000040H
	jb	SHORT $LN28@lzo1x_deco
; Line 3381
	mov	rax, r8
	mov	rdx, r11
; Line 3382
	shr	r8, 5
	shr	rax, 2
	inc	r10
	and	eax, 7
	sub	rdx, rax
	movzx	eax, BYTE PTR [r10-1]
	shl	eax, 3
	movsxd	rcx, eax
	sub	rdx, rcx
	dec	rdx
	dec	r8
$copy_match$2369:
; Line 3554
	movzx	eax, BYTE PTR [rdx]
	add	r11, 2
	add	rdx, 2
	mov	BYTE PTR [r11-2], al
	movzx	eax, BYTE PTR [rdx-1]
	mov	BYTE PTR [r11-1], al
	npad	3
$LL6@lzo1x_deco:
; Line 3555
	movzx	eax, BYTE PTR [rdx]
	inc	r11
	inc	rdx
	sub	r8, 1
	mov	BYTE PTR [r11-1], al
	jne	SHORT $LL6@lzo1x_deco
	jmp	$match_done$2361
$LN28@lzo1x_deco:
; Line 3410
	cmp	r8, 32					; 00000020H
	jb	SHORT $LN26@lzo1x_deco
; Line 3412
	and	r8d, 31
; Line 3413
	jne	SHORT $LN25@lzo1x_deco
; Line 3416
	cmp	BYTE PTR [r10], r8b
	jne	SHORT $LN23@lzo1x_deco
	npad	7
$LL24@lzo1x_deco:
; Line 3419
	inc	r10
	add	r8, 255					; 000000ffH
	cmp	BYTE PTR [r10], 0
	je	SHORT $LL24@lzo1x_deco
$LN23@lzo1x_deco:
; Line 3422
	movzx	eax, BYTE PTR [r10]
	add	eax, 31
	cdqe
	add	r8, rax
	inc	r10
$LN25@lzo1x_deco:
; Line 3440
	movzx	eax, WORD PTR [r10]
	mov	rdx, r11
	shr	rax, 2
	sub	rdx, rax
	dec	rdx
; Line 3446
	add	r10, 2
	jmp	SHORT $LN16@lzo1x_deco
$LN26@lzo1x_deco:
; Line 3454
	mov	rdx, r11
	cmp	r8, 16
	jb	$LN21@lzo1x_deco
	mov	rax, r8
	and	eax, 8
	shl	rax, 11
	sub	rdx, rax
; Line 3456
	and	r8d, 7
; Line 3457
	jne	SHORT $LN20@lzo1x_deco
; Line 3460
	cmp	BYTE PTR [r10], r8b
	jne	SHORT $LN18@lzo1x_deco
	npad	5
$LL19@lzo1x_deco:
; Line 3463
	inc	r10
	add	r8, 255					; 000000ffH
	cmp	BYTE PTR [r10], 0
	je	SHORT $LL19@lzo1x_deco
$LN18@lzo1x_deco:
; Line 3466
	movzx	eax, BYTE PTR [r10]
	add	eax, 7
	cdqe
	add	r8, rax
	inc	r10
$LN20@lzo1x_deco:
; Line 3485
	movzx	eax, WORD PTR [r10]
; Line 3489
	add	r10, 2
	shr	rax, 2
	sub	rdx, rax
; Line 3490
	cmp	rdx, r11
	je	$eof_found$2389
; Line 3492
	sub	rdx, 16384				; 00004000H
$LN16@lzo1x_deco:
; Line 3539
	cmp	r8, 6
	jb	$copy_match$2369
	mov	rax, r11
	sub	rax, rdx
	cmp	rax, 4
	jl	$copy_match$2369
; Line 3542
	mov	eax, DWORD PTR [rdx]
; Line 3543
	add	r11, 4
	add	rdx, 4
	mov	DWORD PTR [r11-4], eax
	sub	r8, 2
	npad	6
$LL14@lzo1x_deco:
; Line 3545
	mov	eax, DWORD PTR [rdx]
; Line 3546
	sub	r8, 4
	add	r11, 4
	mov	DWORD PTR [r11-4], eax
	add	rdx, 4
; Line 3547
	cmp	r8, 4
	jae	SHORT $LL14@lzo1x_deco
; Line 3548
	test	r8, r8
	je	SHORT $match_done$2361
	npad	3
$LL10@lzo1x_deco:
	movzx	eax, BYTE PTR [rdx]
	inc	r11
	inc	rdx
	sub	r8, 1
	mov	BYTE PTR [r11-1], al
	jne	SHORT $LL10@lzo1x_deco
; Line 3550
	jmp	SHORT $match_done$2361
$LN21@lzo1x_deco:
; Line 3517
	movzx	eax, BYTE PTR [r10]
	shr	r8, 2
	inc	r10
	shl	eax, 2
	movsxd	rcx, eax
	sub	rdx, rcx
	sub	rdx, r8
; Line 3520
	add	r11, 2
	movzx	eax, BYTE PTR [rdx-1]
	mov	BYTE PTR [r11-2], al
	movzx	eax, BYTE PTR [rdx]
	mov	BYTE PTR [r11-1], al
$match_done$2361:
; Line 3564
	movzx	ecx, BYTE PTR [r10-2]
	and	ecx, 3
; Line 3566
	je	$LN51@lzo1x_deco
$match_next$2319:
; Line 3574
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	mov	BYTE PTR [r11-1], al
; Line 3575
	cmp	rcx, 1
	jbe	SHORT $LN1@lzo1x_deco
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	mov	BYTE PTR [r11-1], al
	cmp	rcx, 2
	jbe	SHORT $LN1@lzo1x_deco
	movzx	eax, BYTE PTR [r10]
	inc	r11
	inc	r10
	mov	BYTE PTR [r11-1], al
$LN1@lzo1x_deco:
; Line 3577
	movzx	r8d, BYTE PTR [r10]
	inc	r10
	jmp	$match$2331
$eof_found$2389:
; Line 3588
	sub	r11, rdi
	mov	QWORD PTR [rbx], r11
; Line 3590
	cmp	r10, r9
	jne	SHORT $LN59@lzo1x_deco
	xor	eax, eax
; Line 3609
	mov	rbx, QWORD PTR [rsp+8]
	mov	rdi, QWORD PTR [rsp+16]
	ret	0
$LN59@lzo1x_deco:
	mov	rbx, QWORD PTR [rsp+8]
	mov	rdi, QWORD PTR [rsp+16]
	mov	eax, -4
	mov	ecx, -8
	cmp	r10, r9
	cmovb	eax, ecx
	ret	0
lzo1x_decompress ENDP
_TEXT	ENDS
PUBLIC	lzo1x_decompress_safe
pdata	SEGMENT
$pdata$lzo1x_decompress_safe DD imagerel $LN142
	DD	imagerel $LN142+1286
	DD	imagerel $unwind$lzo1x_decompress_safe
pdata	ENDS
xdata	SEGMENT
$unwind$lzo1x_decompress_safe DD 081401H
	DD	047414H
	DD	03640fH
	DD	02540aH
	DD	013405H
; Function compile flags: /Ogtpy
xdata	ENDS
_TEXT	SEGMENT
in$ = 8
in_len$ = 16
out$ = 24
out_len$ = 32
wrkmem$ = 40
lzo1x_decompress_safe PROC
; Line 3722
$LN142:
	mov	QWORD PTR [rsp+8], rbx
	mov	QWORD PTR [rsp+16], rbp
	mov	QWORD PTR [rsp+24], rsi
	mov	QWORD PTR [rsp+32], rdi
; Line 3735
	mov	rax, QWORD PTR [r9]
; Line 3760
	xor	ebp, ebp
	lea	r11, QWORD PTR [rcx+rdx]
	mov	QWORD PTR [r9], rbp
	lea	rbx, QWORD PTR [r8+rax]
; Line 3765
	movzx	eax, BYTE PTR [rcx]
	mov	rsi, r9
	mov	rdi, r8
	mov	r10, rcx
	mov	rdx, r8
	cmp	al, 17
	jbe	SHORT $LN74@lzo1x_deco@2
; Line 3767
	movzx	eax, al
	sub	eax, 17
	inc	r10
	movsxd	r8, eax
; Line 3768
	cmp	r8, 4
	jb	$match_next$2441
; Line 3770
	mov	rax, rbx
	sub	rax, rdx
	cmp	rax, r8
	jb	$output_overrun$2446
	mov	rcx, r11
	lea	rax, QWORD PTR [r8+1]
	sub	rcx, r10
	cmp	rcx, rax
	jb	$input_overrun$2450
	npad	1
$LL77@lzo1x_deco@2:
; Line 3771
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	sub	r8, 1
	mov	BYTE PTR [rdx-1], al
	jne	SHORT $LL77@lzo1x_deco@2
; Line 3772
	jmp	$first_literal_run$2454
$LN74@lzo1x_deco@2:
; Line 3775
	cmp	r10, r11
	jae	$LN73@lzo1x_deco@2
; Line 3777
	movzx	r8d, BYTE PTR [r10]
	inc	r10
; Line 3778
	cmp	r8, 16
	jae	$match$2459
; Line 3780
	test	r8, r8
	jne	SHORT $LN71@lzo1x_deco@2
; Line 3782
	mov	rax, r11
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3783
	cmp	BYTE PTR [r10], bpl
	jne	SHORT $LN68@lzo1x_deco@2
	npad	4
$LL69@lzo1x_deco@2:
; Line 3786
	inc	r10
; Line 3787
	mov	rax, r11
	add	r8, 255					; 000000ffH
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3783
	cmp	BYTE PTR [r10], bpl
	je	SHORT $LL69@lzo1x_deco@2
$LN68@lzo1x_deco@2:
; Line 3789
	movzx	eax, BYTE PTR [r10]
	add	eax, 15
	cdqe
	add	r8, rax
	inc	r10
$LN71@lzo1x_deco@2:
; Line 3791
	mov	rcx, rbx
	lea	rax, QWORD PTR [r8+3]
	sub	rcx, rdx
	cmp	rcx, rax
	jb	$output_overrun$2446
	mov	rcx, r11
	lea	rax, QWORD PTR [r8+4]
	sub	rcx, r10
	cmp	rcx, rax
	jb	$input_overrun$2450
; Line 3797
	mov	eax, DWORD PTR [r10]
; Line 3798
	add	rdx, 4
	add	r10, 4
; Line 3799
	sub	r8, 1
	mov	DWORD PTR [rdx-4], eax
	je	SHORT $first_literal_run$2454
; Line 3801
	cmp	r8, 4
	jb	SHORT $LL54@lzo1x_deco@2
	npad	2
$LL62@lzo1x_deco@2:
; Line 3804
	mov	eax, DWORD PTR [r10]
; Line 3805
	sub	r8, 4
	add	rdx, 4
	mov	DWORD PTR [rdx-4], eax
	add	r10, 4
; Line 3806
	cmp	r8, 4
	jae	SHORT $LL62@lzo1x_deco@2
; Line 3807
	test	r8, r8
	je	SHORT $first_literal_run$2454
	npad	3
$LL58@lzo1x_deco@2:
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	sub	r8, 1
	mov	BYTE PTR [rdx-1], al
	jne	SHORT $LL58@lzo1x_deco@2
; Line 3809
	jmp	SHORT $first_literal_run$2454
	npad	11
$LL54@lzo1x_deco@2:
; Line 3810
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	sub	r8, 1
	mov	BYTE PTR [rdx-1], al
	jne	SHORT $LL54@lzo1x_deco@2
$first_literal_run$2454:
; Line 3826
	movzx	r8d, BYTE PTR [r10]
	inc	r10
; Line 3827
	cmp	r8, 16
	jae	SHORT $match$2459
; Line 3846
	movzx	eax, BYTE PTR [r10]
	shr	r8, 2
	mov	r9, rdx
	shl	eax, 2
	inc	r10
	movsxd	rcx, eax
	sub	r9, rcx
	sub	r9, r8
	sub	r9, 2049				; 00000801H
; Line 3848
	cmp	r9, rdi
	jb	$lookbehind_overrun$2497
	cmp	r9, rdx
	jae	$lookbehind_overrun$2497
	mov	rax, rbx
	sub	rax, rdx
	cmp	rax, 3
	jb	$output_overrun$2446
; Line 3849
	movzx	eax, BYTE PTR [r9]
	add	rdx, 3
	mov	BYTE PTR [rdx-3], al
	movzx	eax, BYTE PTR [r9+1]
	mov	BYTE PTR [rdx-2], al
	movzx	eax, BYTE PTR [r9+2]
	mov	BYTE PTR [rdx-1], al
	jmp	$match_done$2501
$match$2459:
; Line 3855
	cmp	r8, 64					; 00000040H
	jb	SHORT $LN44@lzo1x_deco@2
; Line 3879
	movzx	eax, BYTE PTR [r10]
	mov	r9, rdx
	inc	r10
	shl	eax, 3
	movsxd	rcx, eax
	mov	rax, r8
; Line 3880
	shr	r8, 5
	shr	rax, 2
	sub	r9, rcx
	dec	r8
	and	eax, 7
	sub	r9, rax
	dec	r9
; Line 3904
	cmp	r9, rdi
	jb	$lookbehind_overrun$2497
	cmp	r9, rdx
	jae	$lookbehind_overrun$2497
	mov	rcx, rbx
	lea	rax, QWORD PTR [r8+2]
	sub	rcx, rdx
	cmp	rcx, rax
	jb	$output_overrun$2446
$copy_match$2512:
; Line 4052
	movzx	eax, BYTE PTR [r9]
	add	rdx, 2
	add	r9, 2
	mov	BYTE PTR [rdx-2], al
	movzx	eax, BYTE PTR [r9-1]
	mov	BYTE PTR [rdx-1], al
	npad	1
$LL9@lzo1x_deco@2:
; Line 4053
	movzx	eax, BYTE PTR [r9]
	inc	rdx
	inc	r9
	sub	r8, 1
	mov	BYTE PTR [rdx-1], al
	jne	SHORT $LL9@lzo1x_deco@2
; Line 4017
	jmp	$match_done$2501
$LN44@lzo1x_deco@2:
; Line 3908
	cmp	r8, 32					; 00000020H
	jb	SHORT $LN39@lzo1x_deco@2
; Line 3910
	and	r8d, 31
; Line 3911
	jne	SHORT $LN38@lzo1x_deco@2
; Line 3913
	mov	rax, r11
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3914
	cmp	BYTE PTR [r10], bpl
	jne	SHORT $LN35@lzo1x_deco@2
	npad	7
$LL36@lzo1x_deco@2:
; Line 3917
	inc	r10
; Line 3918
	mov	rax, r11
	add	r8, 255					; 000000ffH
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3914
	cmp	BYTE PTR [r10], bpl
	je	SHORT $LL36@lzo1x_deco@2
$LN35@lzo1x_deco@2:
; Line 3920
	movzx	eax, BYTE PTR [r10]
	add	eax, 31
	cdqe
	add	r8, rax
	inc	r10
$LN38@lzo1x_deco@2:
; Line 3938
	movzx	eax, WORD PTR [r10]
	mov	r9, rdx
	shr	rax, 2
	sub	r9, rax
	dec	r9
; Line 3944
	add	r10, 2
	jmp	$LN25@lzo1x_deco@2
$LN39@lzo1x_deco@2:
; Line 3952
	mov	r9, rdx
	cmp	r8, 16
	jb	$LN32@lzo1x_deco@2
	mov	rax, r8
	and	eax, 8
	shl	rax, 11
	sub	r9, rax
; Line 3954
	and	r8d, 7
; Line 3955
	jne	SHORT $LN31@lzo1x_deco@2
; Line 3957
	mov	rax, r11
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3958
	cmp	BYTE PTR [r10], bpl
	jne	SHORT $LN28@lzo1x_deco@2
	npad	3
$LL29@lzo1x_deco@2:
; Line 3961
	inc	r10
; Line 3962
	mov	rax, r11
	add	r8, 255					; 000000ffH
	sub	rax, r10
	cmp	rax, 1
	jb	$input_overrun$2450
; Line 3958
	cmp	BYTE PTR [r10], bpl
	je	SHORT $LL29@lzo1x_deco@2
$LN28@lzo1x_deco@2:
; Line 3964
	movzx	eax, BYTE PTR [r10]
	add	eax, 7
	cdqe
	add	r8, rax
	inc	r10
$LN31@lzo1x_deco@2:
; Line 3983
	movzx	eax, WORD PTR [r10]
; Line 3987
	add	r10, 2
	shr	rax, 2
	sub	r9, rax
; Line 3988
	cmp	r9, rdx
	je	$eof_found$2540
; Line 3990
	sub	r9, 16384				; 00004000H
$LN25@lzo1x_deco@2:
; Line 4030
	cmp	r9, rdi
	jb	$lookbehind_overrun$2497
	cmp	r9, rdx
	jae	$lookbehind_overrun$2497
	mov	rcx, rbx
	lea	rax, QWORD PTR [r8+2]
	sub	rcx, rdx
	cmp	rcx, rax
	jb	$output_overrun$2446
; Line 4037
	cmp	r8, 6
	jb	$copy_match$2512
	mov	rax, rdx
	sub	rax, r9
	cmp	rax, 4
	jl	$copy_match$2512
; Line 4040
	mov	eax, DWORD PTR [r9]
; Line 4041
	add	rdx, 4
	add	r9, 4
	mov	DWORD PTR [rdx-4], eax
	sub	r8, 2
	npad	2
$LL17@lzo1x_deco@2:
; Line 4043
	mov	eax, DWORD PTR [r9]
; Line 4044
	sub	r8, 4
	add	rdx, 4
	mov	DWORD PTR [rdx-4], eax
	add	r9, 4
; Line 4045
	cmp	r8, 4
	jae	SHORT $LL17@lzo1x_deco@2
; Line 4046
	test	r8, r8
	je	SHORT $match_done$2501
	npad	3
$LL13@lzo1x_deco@2:
	movzx	eax, BYTE PTR [r9]
	inc	rdx
	inc	r9
	sub	r8, 1
	mov	BYTE PTR [rdx-1], al
	jne	SHORT $LL13@lzo1x_deco@2
; Line 4048
	jmp	SHORT $match_done$2501
$LN32@lzo1x_deco@2:
; Line 4015
	movzx	eax, BYTE PTR [r10]
	shr	r8, 2
	inc	r10
	shl	eax, 2
	movsxd	rcx, eax
	sub	r9, rcx
	sub	r9, r8
	dec	r9
; Line 4017
	cmp	r9, rdi
	jb	$lookbehind_overrun$2497
	cmp	r9, rdx
	jae	$lookbehind_overrun$2497
	mov	rax, rbx
	sub	rax, rdx
	cmp	rax, 2
	jb	$output_overrun$2446
; Line 4018
	movzx	eax, BYTE PTR [r9]
	add	rdx, 2
	mov	BYTE PTR [rdx-2], al
	movzx	eax, BYTE PTR [r9+1]
	mov	BYTE PTR [rdx-1], al
$match_done$2501:
; Line 4062
	movzx	r8d, BYTE PTR [r10-2]
	and	r8d, 3
; Line 4064
	je	$LN74@lzo1x_deco@2
$match_next$2441:
; Line 4068
	mov	rax, rbx
	sub	rax, rdx
	cmp	rax, r8
	jb	SHORT $output_overrun$2446
	mov	rcx, r11
	lea	rax, QWORD PTR [r8+1]
	sub	rcx, r10
	cmp	rcx, rax
	jb	SHORT $input_overrun$2450
; Line 4072
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	mov	BYTE PTR [rdx-1], al
; Line 4073
	cmp	r8, 1
	jbe	SHORT $LN2@lzo1x_deco@2
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	mov	BYTE PTR [rdx-1], al
	cmp	r8, 2
	jbe	SHORT $LN2@lzo1x_deco@2
	movzx	eax, BYTE PTR [r10]
	inc	rdx
	inc	r10
	mov	BYTE PTR [rdx-1], al
$LN2@lzo1x_deco@2:
; Line 4075
	movzx	r8d, BYTE PTR [r10]
	inc	r10
; Line 4076
	cmp	r10, r11
	jb	$match$2459
	jmp	$LN74@lzo1x_deco@2
$eof_found$2540:
; Line 4086
	sub	rdx, rdi
	mov	QWORD PTR [rsi], rdx
; Line 4088
	cmp	r10, r11
	je	SHORT $LN85@lzo1x_deco@2
	mov	ebp, -4
	mov	ecx, -8
	cmovb	ebp, ecx
$LN85@lzo1x_deco@2:
	mov	eax, ebp
	jmp	SHORT $LN82@lzo1x_deco@2
$input_overrun$2450:
; Line 4093
	mov	eax, -4
	jmp	SHORT $LN141@lzo1x_deco@2
$output_overrun$2446:
; Line 4099
	mov	eax, -5
	jmp	SHORT $LN141@lzo1x_deco@2
$lookbehind_overrun$2497:
; Line 4105
	mov	eax, -6
	jmp	SHORT $LN141@lzo1x_deco@2
$LN73@lzo1x_deco@2:
; Line 4081
	mov	eax, -7
$LN141@lzo1x_deco@2:
; Line 4080
	sub	rdx, rdi
	mov	QWORD PTR [rsi], rdx
$LN82@lzo1x_deco@2:
; Line 4107
	mov	rbx, QWORD PTR [rsp+8]
	mov	rbp, QWORD PTR [rsp+16]
	mov	rsi, QWORD PTR [rsp+24]
	mov	rdi, QWORD PTR [rsp+32]
	ret	0
lzo1x_decompress_safe ENDP
_TEXT	ENDS
END
