Function at 0x40f3e0
Capabilities:
Decompress data using lzo

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
lea ebp, [edi + eax]
mov eax, dword [ecx]
mov dword [ecx], 0
mov dl, byte [edi]
add eax, ebx
cmp dl, 0x11
mov dword [esp + 0x14], eax
mov ecx, ebx
mov eax, edi
jbe 0x40f452
and edx, 0xff
lea eax, [edi + 1]
sub edx, 0x11
mov esi, edx
cmp esi, 4
jb 0x40f561
mov edx, dword [esp + 0x14]
sub edx, ebx
cmp edx, esi
jb 0x40f778
mov edx, ebp
lea edi, [esi + 1]
sub edx, eax
cmp edx, edi
jb 0x40f6a7
mov dl, byte [eax]
mov byte [ecx], dl
inc ecx
inc eax
dec esi
jne 0x40f444
jmp 0x40f4fe
cmp eax, ebp
jae 0x40f78a
xor edx, edx
mov dl, byte [eax]
inc eax
mov esi, edx
cmp esi, 0x10
jae 0x40f596
test esi, esi
jne 0x40f4a2
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
jne 0x40f499
add esi, 0xff
inc eax
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
je 0x40f480
xor edx, edx
mov dl, byte [eax]
inc eax
lea esi, [esi + edx + 0xf]
mov edx, dword [esp + 0x14]
lea edi, [esi + 3]
sub edx, ecx
cmp edx, edi
jb 0x40f778
mov edx, ebp
lea edi, [esi + 4]
sub edx, eax
cmp edx, edi
jb 0x40f6a7
mov edx, dword [eax]
add eax, 4
mov dword [ecx], edx
add ecx, 4
dec esi
je 0x40f4fe
cmp esi, 4
jb 0x40f4f5
mov edx, dword [eax]
sub esi, 4
mov dword [ecx], edx
add ecx, 4
add eax, 4
cmp esi, 4
jae 0x40f4d4
test esi, esi
jbe 0x40f4fe
mov dl, byte [eax]
mov byte [ecx], dl
inc ecx
inc eax
dec esi
jne 0x40f4ea
jmp 0x40f4fe
mov dl, byte [eax]
mov byte [ecx], dl
inc ecx
inc eax
dec esi
jne 0x40f4f5
xor edx, edx
mov dl, byte [eax]
inc eax
mov esi, edx
cmp esi, 0x10
jae 0x40f596
xor edx, edx
mov edi, ecx
mov dl, byte [eax]
shl edx, 2
sub edi, edx
shr esi, 2
sub edi, esi
sub edi, 0x801
inc eax
cmp edi, ebx
jb 0x40f741
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, 3
jb 0x40f778
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
mov dl, byte [edi]
mov byte [ecx], dl
mov dl, byte [edi + 1]
inc ecx
mov byte [ecx], dl
inc ecx
jmp 0x40f553
mov ebx, dword [esp + 0x1c]
mov dl, byte [eax - 2]
and edx, 3
mov esi, edx
je 0x40f452
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, esi
jb 0x40f778
mov edx, ebp
lea edi, [esi + 1]
sub edx, eax
cmp edx, edi
jb 0x40f6a7
mov dl, byte [eax]
mov byte [ecx], dl
inc ecx
inc eax
dec esi
jne 0x40f57e
xor edx, edx
mov dl, byte [eax]
inc eax
cmp eax, ebp
mov esi, edx
jae 0x40f78a
cmp esi, 0x40
jb 0x40f5ea
mov edx, esi
mov edi, ecx
shr edx, 2
and edx, 7
sub edi, edx
xor edx, edx
mov dl, byte [eax]
shl edx, 3
sub edi, edx
dec edi
inc eax
shr esi, 5
dec esi
cmp edi, ebx
jb 0x40f741
mov edx, dword [esp + 0x14]
lea ebx, [esi + 2]
sub edx, ecx
cmp edx, ebx
jb 0x40f774
mov dl, byte [edi]
mov byte [ecx], dl
mov dl, byte [edi + 1]
inc ecx
inc edi
mov byte [ecx], dl
inc ecx
inc edi
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
dec esi
jne 0x40f5dc
jmp 0x40f54f
cmp esi, 0x20
jb 0x40f63d
and esi, 0x1f
jne 0x40f628
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
jne 0x40f61f
add esi, 0xff
inc eax
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
je 0x40f606
xor edx, edx
mov dl, byte [eax]
inc eax
lea esi, [esi + edx + 0x1f]
xor edx, edx
mov edi, ecx
mov dx, word [eax]
shr edx, 2
sub edi, edx
dec edi
add eax, 2
jmp 0x40f6cb
cmp esi, 0x10
jb 0x40f72b
mov edx, esi
mov edi, ecx
and edx, 8
shl edx, 0xb
sub edi, edx
and esi, 7
jne 0x40f683
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
jne 0x40f67a
add esi, 0xff
inc eax
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x40f6a7
cmp byte [eax], 0
je 0x40f665
xor edx, edx
mov dl, byte [eax]
inc eax
lea esi, [esi + edx + 7]
xor edx, edx
mov dx, word [eax]
add eax, 2
shr edx, 2
sub edi, edx
cmp edi, ecx
jne 0x40f6c5
mov edx, dword [esp + 0x20]
sub ecx, ebx
cmp eax, ebp
mov dword [edx], ecx
jne 0x40f6b9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov eax, 0xfffffffc
pop ebx
ret
sbb eax, eax
pop edi
and al, 0xfc
pop esi
pop ebp
add eax, 0xfffffffc
pop ebx
ret
sub edi, 0x4000
cmp edi, ebx
jb 0x40f741
mov edx, dword [esp + 0x14]
lea ebx, [esi + 2]
sub edx, ecx
cmp edx, ebx
jb 0x40f774
cmp esi, 6
jb 0x40f5cf
mov edx, ecx
sub edx, edi
cmp edx, 4
jl 0x40f5cf
mov edx, dword [edi]
add edi, 4
mov dword [ecx], edx
add ecx, 4
sub esi, 2
mov edx, dword [edi]
sub esi, 4
mov dword [ecx], edx
add ecx, 4
add edi, 4
cmp esi, 4
jae 0x40f703
test esi, esi
jbe 0x40f54f
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
dec esi
jne 0x40f71d
jmp 0x40f54f
xor edx, edx
mov edi, ecx
mov dl, byte [eax]
shl edx, 2
sub edi, edx
shr esi, 2
sub edi, esi
dec edi
inc eax
cmp edi, ebx
jae 0x40f753
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov eax, 0xfffffffa
pop ebx
ret
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, 2
jae 0x40f542
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov eax, 0xfffffffb
pop ebx
ret
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov eax, 0xfffffffb
pop ebx
ret
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov eax, 0xfffffff9
pop ebx
ret