Function at 0x47de20
Capabilities:
Compress data using lzo

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x1c]
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
mov esi, dword [esp + 0x2c]
lea ecx, [eax + ebp]
mov dword [esp + 0xc], ebp
push edi
mov dword [esp + 0x18], ecx
add ebp, 4
mov dl, byte [ebp + 3]
mov cl, byte [ebp + 2]
movzx ecx, cl
movzx eax, dl
shl eax, 6
xor eax, ecx
movzx ecx, byte [ebp + 1]
shl eax, 5
xor eax, ecx
movzx ecx, byte [ebp]
shl eax, 5
xor eax, ecx
mov ecx, dword [esp + 0x28]
imul eax, eax, 0x21
shr eax, 5
and eax, 0x3fff
mov ebx, dword [eax*4 + 0x524e18]
cmp ebx, ecx
lea edi, [eax*4 + 0x524e18]
jb 0x47e14f
mov ecx, ebp
sub ecx, ebx
mov dword [esp + 0x2c], ecx
je 0x47e14f
cmp ecx, 0xbfff
ja 0x47e14f
cmp ecx, 0x800
jbe 0x47deff
cmp byte [ebx + 3], dl
je 0x47deff
and eax, 0x7ff
xor eax, 0x201f
mov ebx, dword [eax*4 + 0x524e18]
lea edi, [eax*4 + 0x524e18]
cmp ebx, dword [esp + 0x28]
jb 0x47e14f
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x2c], eax
je 0x47e14f
cmp eax, 0xbfff
ja 0x47e14f
cmp eax, 0x800
jbe 0x47defb
cmp byte [ebx + 3], dl
jne 0x47e14f
mov ecx, dword [esp + 0x2c]
mov dx, word [ebx]
cmp dx, word [ebp]
jne 0x47e14f
mov al, byte [ebp + 2]
cmp byte [ebx + 2], al
jne 0x47e14f
mov edx, dword [esp + 0x10]
mov dword [edi], ebp
mov edi, ebp
sub edi, edx
test edi, edi
jle 0x47dfc5
mov eax, edi
cmp eax, 3
mov dword [esp + 0x20], eax
ja 0x47df3a
or byte [esi - 2], al
jmp 0x47dfb0
cmp eax, 0x12
ja 0x47df46
mov dl, al
sub dl, 3
jmp 0x47dfad
lea edx, [eax - 0x12]
mov byte [esi], 0
inc esi
cmp edx, 0xff
mov dword [esp + 0x14], edx
jbe 0x47dfa9
mov eax, edx
lea ecx, [eax - 0x100]
mov eax, 0x80808081
mul ecx
mov ecx, edx
shr ecx, 7
inc ecx
mov dword [esp + 0x1c], ecx
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, edx
add esi, eax
jmp 0x47df90
mov edx, dword [esp + 0x14]
sub edx, 0xff
dec eax
mov dword [esp + 0x14], edx
jne 0x47df90
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov dl, byte [esp + 0x14]
mov byte [esi], dl
inc esi
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
mov edi, dword [esp + 0x10]
mov byte [esi], dl
inc esi
inc edi
dec eax
mov dword [esp + 0x10], edi
jne 0x47dfb0
mov al, byte [ebp + 3]
mov dl, byte [ebx + 3]
add ebp, 3
inc ebp
cmp dl, al
jne 0x47e0e4
mov dl, byte [ebp]
mov al, byte [ebx + 4]
inc ebp
cmp al, dl
jne 0x47e0e4
mov al, byte [ebp]
mov dl, byte [ebx + 5]
inc ebp
cmp dl, al
jne 0x47e0e4
mov dl, byte [ebp]
mov al, byte [ebx + 6]
inc ebp
cmp al, dl
jne 0x47e0e4
mov al, byte [ebp]
mov dl, byte [ebx + 7]
inc ebp
cmp dl, al
jne 0x47e0e4
mov dl, byte [ebp]
mov al, byte [ebx + 8]
inc ebp
cmp al, dl
jne 0x47e0e4
mov eax, dword [esp + 0x18]
add ebx, 9
cmp ebp, eax
jae 0x47e03d
lea ecx, [ecx]
mov cl, byte [ebx]
cmp cl, byte [ebp]
jne 0x47e03d
inc ebx
inc ebp
cmp ebp, eax
jb 0x47e030
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov ebx, ebp
sub ebx, edx
cmp eax, 0x4000
ja 0x47e071
dec eax
cmp ebx, 0x21
mov dword [esp + 0x2c], eax
ja 0x47e069
sub bl, 2
or bl, 0x20
mov byte [esi], bl
mov ecx, eax
jmp 0x47e13a
sub ebx, 0x21
mov byte [esi], 0x20
jmp 0x47e09d
sub eax, 0x4000
mov dword [esp + 0x2c], eax
shr eax, 0xb
and al, 8
cmp ebx, 9
ja 0x47e096
mov ecx, dword [esp + 0x2c]
sub bl, 2
or al, bl
or al, 0x10
mov byte [esi], al
jmp 0x47e13a
sub ebx, 9
or al, 0x10
mov byte [esi], al
inc esi
cmp ebx, 0xff
jbe 0x47e0dc
lea edx, [ebx - 0x100]
mov eax, 0x80808081
mul edx
mov ecx, edx
shr ecx, 7
inc ecx
mov dword [esp + 0x20], ecx
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, edx
add esi, eax
sub ebx, 0xff
dec eax
jne 0x47e0d3
mov ecx, dword [esp + 0x2c]
mov byte [esi], bl
jmp 0x47e13a
mov edi, dword [esp + 0x10]
dec ebp
mov eax, ebp
sub eax, edi
cmp ecx, 0x800
ja 0x47e114
dec ecx
dec al
shl al, 3
mov dl, cl
and dl, 7
or al, dl
shl al, 2
shr ecx, 3
mov byte [esi], al
inc esi
mov byte [esi], cl
inc esi
mov dword [esp + 0x10], ebp
jmp 0x47e152
sub al, 2
cmp ecx, 0x4000
ja 0x47e125
dec ecx
or al, 0x20
mov byte [esi], al
jmp 0x47e13a
sub ecx, 0x4000
mov edx, ecx
shr edx, 0xb
and dl, 8
or dl, al
or dl, 0x10
mov byte [esi], dl
mov al, cl
inc esi
shl al, 2
shr ecx, 6
mov byte [esi], al
inc esi
mov byte [esi], cl
inc esi
mov dword [esp + 0x10], ebp
jmp 0x47e152
mov dword [edi], ebp
inc ebp
mov eax, dword [esp + 0x18]
add eax, 0xfffffff3
cmp ebp, eax
jb 0x47de41
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
sub esi, edx
pop edi
mov dword [ecx], esi
mov ecx, dword [esp + 0xc]
pop esi
pop ebp
sub eax, ecx
pop ebx
add esp, 0x14
ret