Function at 0x4060a0
Capabilities:
Compress data using lzo

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2c]
push edi
mov edi, dword [esp + 0x2c]
lea ecx, [edi + eax]
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
add edi, 4
lea ecx, [ecx]
mov al, byte [edi + 3]
mov cl, byte [edi + 2]
movzx eax, al
shl eax, 6
movzx edx, cl
movzx ecx, byte [edi + 1]
xor eax, edx
movzx edx, byte [edi]
shl eax, 5
xor eax, ecx
shl eax, 5
xor eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
shl ecx, 5
add eax, ecx
shr eax, 5
and eax, 0x3fff
mov ebp, dword [edx + eax*4]
cmp ebp, dword [esp + 0x2c]
lea ecx, [edx + eax*4]
jb 0x4063d7
mov edx, edi
sub edx, ebp
lea ebx, [edx - 1]
cmp ebx, 0xbffe
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebx
ja 0x4063d7
cmp edx, 0x800
jbe 0x40617d
mov bl, byte [edi + 3]
cmp byte [ebp + 3], bl
je 0x40617d
mov ecx, dword [esp + 0x38]
and eax, 0x7ff
xor eax, 0x201f
mov ebp, dword [ecx + eax*4]
cmp ebp, dword [esp + 0x2c]
lea ecx, [ecx + eax*4]
jb 0x4063d7
mov eax, edi
sub eax, ebp
lea edx, [eax - 1]
cmp edx, 0xbffe
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
ja 0x4063d7
cmp eax, 0x800
jbe 0x406179
cmp byte [ebp + 3], bl
jne 0x4063d7
mov edx, dword [esp + 0x10]
mov ax, word [ebp]
cmp ax, word [edi]
jne 0x4063d7
mov al, byte [edi + 2]
cmp byte [ebp + 2], al
jne 0x4063d7
mov ebx, dword [esp + 0x14]
mov eax, edi
sub eax, ebx
mov dword [ecx], edi
je 0x406235
cmp eax, 3
mov dword [esp + 0x24], eax
ja 0x4061b4
or byte [esi - 2], al
jmp 0x406222
cmp eax, 0x12
ja 0x4061c0
mov cl, al
sub cl, 3
jmp 0x40621d
lea ecx, [eax - 0x12]
mov byte [esi], 0
add esi, 1
cmp ecx, 0xff
mov dword [esp + 0x20], ecx
jbe 0x40621d
add ecx, 0xffffff00
mov eax, 0x80808081
mul ecx
mov ebx, edx
shr ebx, 7
add ebx, 1
push ebx
push 0
push esi
call fcn.0045c220
add esp, 0xc
add esi, ebx
jmp 0x406200
sub dword [esp + 0x20], 0xff
sub ebx, 1
jne 0x406200
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov byte [esi], cl
add esi, 1
mov cl, byte [ebx]
mov byte [esi], cl
add esi, 1
add ebx, 1
sub eax, 1
jne 0x406222
mov dword [esp + 0x14], ebx
mov al, byte [edi + 3]
add edi, 3
add edi, 1
cmp byte [ebp + 3], al
jne 0x406353
mov cl, byte [edi]
add edi, 1
cmp byte [ebp + 4], cl
jne 0x406353
mov al, byte [edi]
add edi, 1
cmp byte [ebp + 5], al
jne 0x406353
mov cl, byte [edi]
add edi, 1
cmp byte [ebp + 6], cl
jne 0x406353
mov al, byte [edi]
add edi, 1
cmp byte [ebp + 7], al
jne 0x406353
mov cl, byte [edi]
add edi, 1
cmp byte [ebp + 8], cl
jne 0x406353
mov eax, dword [esp + 0x1c]
add ebp, 9
cmp edi, eax
jae 0x4062a9
mov dl, byte [ebp]
cmp dl, byte [edi]
jne 0x4062a9
add edi, 1
add ebp, 1
cmp edi, eax
jb 0x406298
mov eax, dword [esp + 0x10]
mov ebx, edi
sub ebx, dword [esp + 0x14]
cmp eax, 0x4000
ja 0x4062de
cmp ebx, 0x21
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
ja 0x4062d6
sub bl, 2
or bl, 0x20
mov byte [esi], bl
mov edx, eax
jmp 0x4063bb
sub ebx, 0x21
mov byte [esi], 0x20
jmp 0x40630a
sub eax, 0x4000
mov dword [esp + 0x10], eax
shr eax, 0xb
and al, 8
cmp ebx, 9
ja 0x406303
mov edx, dword [esp + 0x10]
sub bl, 2
or al, bl
or al, 0x10
mov byte [esi], al
jmp 0x4063bb
sub ebx, 9
or al, 0x10
mov byte [esi], al
add esi, 1
cmp ebx, 0xff
jbe 0x40634b
lea ecx, [ebx - 0x100]
mov eax, 0x80808081
mul ecx
mov ebp, edx
shr ebp, 7
add ebp, 1
push ebp
push 0
push esi
call fcn.0045c220
add esp, 0xc
add esi, ebp
jmp 0x406340
sub ebx, 0xff
sub ebp, 1
jne 0x406340
mov edx, dword [esp + 0x10]
mov byte [esi], bl
jmp 0x4063bb
sub edi, 1
mov eax, edi
sub eax, ebx
cmp edx, 0x800
ja 0x40638c
mov ecx, dword [esp + 0x18]
sub al, 1
add al, al
add al, al
add al, al
mov dl, cl
and dl, 7
or al, dl
add al, al
add al, al
mov byte [esi], al
add esi, 1
shr ecx, 3
mov byte [esi], cl
add esi, 1
mov dword [esp + 0x14], edi
jmp 0x4063dc
sub al, 2
cmp edx, 0x4000
ja 0x4063a6
mov ecx, dword [esp + 0x18]
or al, 0x20
mov dword [esp + 0x10], ecx
mov byte [esi], al
mov edx, ecx
jmp 0x4063bb
sub edx, 0x4000
mov ecx, edx
shr ecx, 0xb
and cl, 8
or cl, al
or cl, 0x10
mov byte [esi], cl
mov al, dl
add al, al
add esi, 1
add al, al
mov byte [esi], al
add esi, 1
shr edx, 6
mov byte [esi], dl
add esi, 1
mov dword [esp + 0x14], edi
jmp 0x4063dc
mov dword [ecx], edi
add edi, 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff3
cmp edi, eax
jb 0x4060c0
sub esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret