Function at 0x461530
Capabilities:
Compress data using lzo

Disassembly:
push ebp
add edx, eax
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x24
mov ebx, eax
mov dword [ebp - 0x18], edx
sub edx, 0xd
add ebx, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], eax
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [ebx + 3]
mov byte [ebp - 0x21], al
movzx eax, al
shl eax, 6
movzx edx, byte [ebx + 2]
movzx ecx, dl
xor eax, ecx
mov byte [ebp - 0x29], dl
shl eax, 5
movzx esi, byte [ebx + 1]
movzx edx, byte [ebx]
xor eax, esi
shl eax, 5
xor eax, edx
mov ecx, eax
mov edx, dword [ebp + 0xc]
shl ecx, 5
lea eax, [ecx + eax]
shr eax, 5
mov esi, eax
and esi, 0x3fff
mov ecx, dword [edx + esi*4]
cmp ecx, dword [ebp - 0x10]
mov dword [ebp - 0x30], esi
jb 0x4615f0
mov esi, ebx
sub esi, ecx
je 0x4615f0
cmp esi, 0xbfff
ja 0x4615f0
cmp esi, 0x800
jbe 0x461633
movzx edx, byte [ebp - 0x21]
cmp byte [ecx + 3], dl
je 0x461633
mov esi, dword [ebp + 0xc]
and eax, 0x7ff
xor eax, 0x201f
mov dword [ebp - 0x30], eax
mov ecx, dword [esi + eax*4]
cmp ecx, dword [ebp - 0x10]
jb 0x4615f0
mov esi, ebx
sub esi, ecx
jne 0x46161e
nop
lea esi, [esi]
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi*4], ebx
inc ebx
cmp ebx, dword [ebp - 0x1c]
jb 0x461560
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
sub dword [ebp - 0x18], ebx
sub edi, edx
mov dword [ecx], edi
mov eax, dword [ebp - 0x18]
add esp, 0x24
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0xbfff
ja 0x4615f0
cmp esi, 0x800
jbe 0x461633
cmp byte [ecx + 3], dl
jne 0x4615f0
movzx edx, word [ebx]
cmp word [ecx], dx
jne 0x4615f0
movzx eax, byte [ebp - 0x29]
cmp byte [ecx + 2], al
jne 0x4615f0
cmp ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0xc]
mov dword [edx + eax*4], ebx
je 0x46167f
mov eax, dword [ebp - 0x20]
mov edx, ebx
sub edx, eax
cmp edx, 3
ja 0x4616ca
or byte [edi - 2], dl
jmp 0x461670
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
mov byte [edi], al
inc edi
inc dword [ebp - 0x20]
dec edx
jne 0x461670
movzx edx, byte [ebx + 3]
add ebx, 4
cmp byte [ecx + 3], dl
je 0x461719
mov ecx, dword [ebp - 0x20]
dec ebx
mov eax, ebx
sub eax, ecx
cmp esi, 0x800
ja 0x4616dc
lea ecx, [esi - 1]
mov dl, al
mov al, cl
dec dl
and al, 7
shl dl, 5
shl al, 2
or dl, al
shr ecx, 3
mov byte [edi], dl
mov byte [edi + 1], cl
add edi, 2
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp - 0x1c]
cmp ebx, esi
jmp 0x4615fd
cmp edx, 0x12
ja 0x46177e
mov al, dl
sub al, 3
mov byte [edi], al
inc edi
jmp 0x461670
cmp esi, 0x4000
lea ecx, [esi - 1]
jbe 0x461778
lea ecx, [esi - 0x4000]
mov edx, ecx
sub al, 2
and edx, 0x4000
shr edx, 0xb
or al, dl
or al, 0x10
mov byte [edi], al
lea edx, [edi + 1]
mov al, cl
lea edi, [edx + 2]
shl al, 2
mov byte [edx], al
shr ecx, 6
mov byte [edx + 1], cl
jmp 0x4616bd
movzx eax, byte [ebx]
inc ebx
cmp byte [ecx + 4], al
jne 0x46168f
movzx edx, byte [ebx]
inc ebx
cmp byte [ecx + 5], dl
jne 0x46168f
movzx eax, byte [ebx]
inc ebx
cmp byte [ecx + 6], al
jne 0x46168f
movzx edx, byte [ebx]
inc ebx
cmp byte [ecx + 7], dl
jne 0x46168f
movzx eax, byte [ebx]
inc ebx
cmp byte [ecx + 8], al
jne 0x46168f
cmp ebx, dword [ebp - 0x18]
lea edx, [ecx + 9]
jae 0x4617af
movzx eax, byte [ebx]
cmp byte [ecx + 9], al
jne 0x4617af
inc ebx
inc edx
cmp ebx, dword [ebp - 0x18]
jae 0x4617af
movzx ecx, byte [ebx]
cmp byte [edx], cl
jmp 0x461768
sub al, 2
or al, 0x20
jmp 0x461702
lea eax, [edx - 0x12]
mov dword [ebp - 0x28], eax
mov byte [edi], 0
inc edi
cmp eax, 0xff
jmp 0x4617a1
sub dword [ebp - 0x28], 0xff
mov byte [edi], 0
inc edi
cmp dword [ebp - 0x28], 0xff
ja 0x46178f
movzx eax, byte [ebp - 0x28]
mov byte [edi], al
inc edi
jmp 0x461670
mov edx, dword [ebp - 0x20]
mov eax, ebx
sub eax, edx
cmp esi, 0x4000
ja 0x4617e3
cmp eax, 0x21
lea ecx, [esi - 1]
jbe 0x461778
mov byte [edi], 0x20
lea edx, [eax - 0x21]
lea eax, [edi + 1]
cmp edx, 0xff
jbe 0x461805
mov byte [eax], 0
sub edx, 0xff
inc eax
jmp 0x4617cf
cmp eax, 9
lea ecx, [esi - 0x4000]
jbe 0x4616f1
lea edx, [eax - 9]
mov eax, ecx
and eax, 0x4000
shr eax, 0xb
or al, 0x10
mov byte [edi], al
jmp 0x4617cc
mov byte [eax], dl
lea edx, [eax + 1]
jmp 0x461707