Function at 0x4c297c
Capabilities:
Decompress data using lzo

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
add eax, esi
push edi
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x14]
push 4
mov ecx, esi
and dword [eax], 0
mov dl, byte [esi]
mov eax, dword [ebp + 0x10]
cmp dl, 0x11
pop ebx
jbe 0x4c29be
movzx edi, dl
sub edi, 0x11
lea ecx, [esi + 1]
cmp edi, ebx
jb 0x4c2a5c
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec edi
jne 0x4c29b3
jmp 0x4c2a1a
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x10
jae 0x4c2a69
test esi, esi
jne 0x4c29e5
cmp byte [ecx], 0
jne 0x4c29dd
add esi, 0xff
inc ecx
jmp 0x4c29cf
movzx edx, byte [ecx]
inc ecx
lea esi, [esi + edx + 0xf]
mov edx, dword [ecx]
add ecx, ebx
mov dword [eax], edx
add eax, ebx
dec esi
je 0x4c2a1a
cmp esi, ebx
jb 0x4c2a11
mov edx, dword [ecx]
sub esi, ebx
mov dword [eax], edx
add eax, ebx
add ecx, ebx
cmp esi, ebx
jae 0x4c29f4
test esi, esi
jbe 0x4c2a1a
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x4c2a06
jmp 0x4c2a1a
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x4c2a11
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x10
jae 0x4c2a69
movzx edx, byte [ecx]
shr esi, 2
mov edi, eax
sub edi, esi
shl edx, 2
sub edi, edx
mov dl, byte [edi - 0x801]
sub edi, 0x801
inc ecx
mov byte [eax], dl
inc eax
inc edi
mov dl, byte [edi]
mov byte [eax], dl
mov dl, byte [edi + 1]
inc eax
mov byte [eax], dl
inc eax
mov dl, byte [ecx - 2]
and edx, 3
mov edi, edx
je 0x4c29be
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec edi
jne 0x4c2a5c
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x40
jb 0x4c2aa0
mov edx, esi
mov edi, eax
shr edx, 2
and edx, 7
sub edi, edx
movzx edx, byte [ecx]
shl edx, 3
sub edi, edx
dec edi
inc ecx
shr esi, 5
dec esi
mov dl, byte [edi]
mov byte [eax], dl
mov dl, byte [edi + 1]
inc eax
inc edi
mov byte [eax], dl
inc eax
inc edi
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec esi
jne 0x4c2a95
jmp 0x4c2a4e
cmp esi, 0x20
jb 0x4c2acf
and esi, 0x1f
jne 0x4c2ac0
cmp byte [ecx], 0
jne 0x4c2ab8
add esi, 0xff
inc ecx
jmp 0x4c2aaa
movzx edx, byte [ecx]
inc ecx
lea esi, [esi + edx + 0x1f]
movzx edx, word [ecx]
shr edx, 2
mov edi, eax
sub edi, edx
dec edi
inc ecx
inc ecx
jmp 0x4c2b0f
cmp esi, 0x10
jb 0x4c2b52
mov edx, esi
mov edi, eax
and edx, 8
shl edx, 0xb
sub edi, edx
and esi, 7
jne 0x4c2afb
cmp byte [ecx], 0
jne 0x4c2af3
add esi, 0xff
inc ecx
jmp 0x4c2ae5
movzx edx, byte [ecx]
inc ecx
lea esi, [esi + edx + 7]
movzx edx, word [ecx]
shr edx, 2
sub edi, edx
inc ecx
inc ecx
cmp edi, eax
je 0x4c2b68
sub edi, 0x4000
cmp esi, 6
jb 0x4c2a88
mov edx, eax
sub edx, edi
cmp edx, ebx
jl 0x4c2a88
mov edx, dword [edi]
add edi, ebx
mov dword [eax], edx
add eax, ebx
dec esi
dec esi
mov edx, dword [edi]
sub esi, ebx
mov dword [eax], edx
add eax, ebx
add edi, ebx
cmp esi, ebx
jae 0x4c2b2e
test esi, esi
jbe 0x4c2a4e
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec esi
jne 0x4c2b44
jmp 0x4c2a4e
movzx edx, byte [ecx]
shr esi, 2
mov edi, eax
sub edi, esi
shl edx, 2
sub edi, edx
dec edi
inc ecx
jmp 0x4c2a43
sub eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [edx], eax
mov eax, ecx
sub eax, dword [ebp + 8]
cmp ecx, dword [ebp + 8]
pop ebx
sbb ecx, ecx
and ecx, 0xfffffffc
add ecx, 0xfffffffc
neg eax
sbb eax, eax
and eax, ecx
pop ebp
ret