Function at 0x40cfa6
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
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x14]
and dword [eax], 0
mov dl, byte [esi]
mov eax, dword [ebp + 0x10]
push edi
push 4
mov ecx, esi
pop ebx
cmp dl, 0x11
jbe 0x40cfe8
movzx edi, dl
sub edi, 0x11
lea ecx, [esi + 1]
cmp edi, ebx
jb 0x40d087
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec edi
jne 0x40cfdd
jmp 0x40d044
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x10
jae 0x40d094
test esi, esi
jne 0x40d00f
jmp 0x40d002
add esi, 0xff
inc ecx
cmp byte [ecx], 0
je 0x40cffb
movzx edx, byte [ecx]
lea esi, [edx + esi + 0xf]
inc ecx
mov edx, dword [ecx]
mov dword [eax], edx
add eax, ebx
add ecx, ebx
dec esi
je 0x40d044
cmp esi, ebx
jb 0x40d03b
mov edx, dword [ecx]
mov dword [eax], edx
sub esi, ebx
add eax, ebx
add ecx, ebx
cmp esi, ebx
jae 0x40d01e
test esi, esi
je 0x40d044
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x40d030
jmp 0x40d044
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x40d03b
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x10
jae 0x40d094
movzx edx, byte [ecx]
shl edx, 2
shr esi, 2
mov edi, eax
sub edi, esi
sub edi, edx
mov dl, byte [edi - 0x801]
mov byte [eax], dl
mov dl, byte [edi - 0x800]
mov byte [eax + 1], dl
mov dl, byte [edi - 0x7ff]
inc ecx
mov byte [eax + 2], dl
add eax, 3
movzx edi, byte [ecx - 2]
and edi, 3
je 0x40cfe8
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec edi
jne 0x40d087
movzx esi, byte [ecx]
inc ecx
cmp esi, 0x40
jb 0x40d0ce
mov edx, esi
shr edx, 2
and edx, 7
mov edi, eax
sub edi, edx
movzx edx, byte [ecx]
shl edx, 3
sub edi, edx
dec edi
shr esi, 5
inc ecx
dec esi
mov dl, byte [edi]
mov byte [eax], dl
mov dl, byte [edi + 1]
mov byte [eax + 1], dl
add eax, 2
add edi, 2
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec esi
jne 0x40d0c3
jmp 0x40d07a
cmp esi, 0x20
jb 0x40d0fe
and esi, 0x1f
jne 0x40d0ee
jmp 0x40d0e1
add esi, 0xff
inc ecx
cmp byte [ecx], 0
je 0x40d0da
movzx edx, byte [ecx]
lea esi, [edx + esi + 0x1f]
inc ecx
movzx edx, word [ecx]
shr edx, 2
mov edi, eax
sub edi, edx
dec edi
add ecx, 2
jmp 0x40d13f
mov edi, eax
cmp esi, 0x10
jb 0x40d183
mov edx, esi
and edx, 8
shl edx, 0xb
sub edi, edx
and esi, 7
jne 0x40d12a
jmp 0x40d11d
add esi, 0xff
inc ecx
cmp byte [ecx], 0
je 0x40d116
movzx edx, byte [ecx]
lea esi, [edx + esi + 7]
inc ecx
movzx edx, word [ecx]
shr edx, 2
sub edi, edx
add ecx, 2
cmp edi, eax
je 0x40d1a3
sub edi, 0x4000
cmp esi, 6
jb 0x40d0b3
mov edx, eax
sub edx, edi
cmp edx, ebx
jl 0x40d0b3
mov edx, dword [edi]
mov dword [eax], edx
add eax, ebx
add edi, ebx
sub esi, 2
mov edx, dword [edi]
mov dword [eax], edx
sub esi, ebx
add eax, ebx
add edi, ebx
cmp esi, ebx
jae 0x40d15f
test esi, esi
je 0x40d07a
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec esi
jne 0x40d175
jmp 0x40d07a
movzx edx, byte [ecx]
shr esi, 2
shl edx, 2
sub edi, esi
sub edi, edx
mov dl, byte [edi - 1]
mov byte [eax], dl
mov dl, byte [edi]
inc ecx
mov byte [eax + 1], dl
add eax, 2
jmp 0x40d07a
sub eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, ecx
sub eax, dword [ebp + 8]
cmp ecx, dword [ebp + 8]
pop edi
sbb ecx, ecx
and ecx, 0xfffffffc
add ecx, 0xfffffffc
neg eax
sbb eax, eax
pop esi
and eax, ecx
pop ebx
pop ebp
ret