Function at 0x40e670
Capabilities:
Decompress data using lzo

Disassembly:
mov eax, dword [esp + 8]
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
mov cl, byte [esi]
lea ebp, [esi + eax]
cmp cl, 0x11
mov eax, ebx
jbe 0x40e6aa
and ecx, 0xff
sub ecx, 0x11
inc esi
cmp ecx, 4
jb 0x40e758
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x40e69f
jmp 0x40e714
xor ecx, ecx
mov cl, byte [esi]
inc esi
cmp ecx, 0x10
jae 0x40e766
test ecx, ecx
jne 0x40e6d8
cmp byte [esi], 0
jne 0x40e6cf
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x40e6c1
xor edx, edx
mov dl, byte [esi]
inc esi
lea ecx, [ecx + edx + 0xf]
mov edx, dword [esi]
add esi, 4
mov dword [eax], edx
add eax, 4
dec ecx
je 0x40e714
cmp ecx, 4
jb 0x40e70b
mov edx, dword [esi]
sub ecx, 4
mov dword [eax], edx
add eax, 4
add esi, 4
cmp ecx, 4
jae 0x40e6ea
test ecx, ecx
jbe 0x40e714
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x40e700
jmp 0x40e714
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x40e70b
xor ecx, ecx
mov cl, byte [esi]
inc esi
cmp ecx, 0x10
jae 0x40e766
xor edx, edx
mov dl, byte [esi]
mov edi, edx
mov edx, eax
shl edi, 2
sub edx, edi
shr ecx, 2
sub edx, ecx
mov cl, byte [edx - 0x801]
sub edx, 0x801
inc esi
mov byte [eax], cl
inc eax
inc edx
mov cl, byte [edx]
mov byte [eax], cl
mov dl, byte [edx + 1]
inc eax
mov byte [eax], dl
inc eax
mov cl, byte [esi - 2]
and ecx, 3
je 0x40e6aa
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x40e758
xor ecx, ecx
mov cl, byte [esi]
inc esi
cmp ecx, 0x40
jb 0x40e79e
mov edx, ecx
mov edi, eax
shr edx, 2
and edx, 7
sub edi, edx
xor edx, edx
mov dl, byte [esi]
shl edx, 3
sub edi, edx
dec edi
inc esi
shr ecx, 5
dec ecx
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 ecx
jne 0x40e793
jmp 0x40e74c
cmp ecx, 0x20
jb 0x40e7d6
and ecx, 0x1f
jne 0x40e7c4
cmp byte [esi], 0
jne 0x40e7bb
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x40e7ad
xor edx, edx
mov dl, byte [esi]
inc esi
lea ecx, [ecx + edx + 0x1f]
xor edx, edx
mov edi, eax
mov dx, word [esi]
shr edx, 2
sub edi, edx
dec edi
add esi, 2
jmp 0x40e823
cmp ecx, 0x10
jb 0x40e86e
mov edx, ecx
mov edi, eax
and edx, 8
shl edx, 0xb
sub edi, edx
and ecx, 7
jne 0x40e80c
cmp byte [esi], 0
jne 0x40e803
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x40e7f5
xor edx, edx
mov dl, byte [esi]
inc esi
lea ecx, [ecx + edx + 7]
xor edx, edx
mov dx, word [esi]
add esi, 2
shr edx, 2
sub edi, edx
cmp edi, eax
je 0x40e887
sub edi, 0x4000
cmp ecx, 6
jb 0x40e786
mov edx, eax
sub edx, edi
cmp edx, 4
jl 0x40e786
mov edx, dword [edi]
add edi, 4
mov dword [eax], edx
add eax, 4
sub ecx, 2
mov edx, dword [edi]
sub ecx, 4
mov dword [eax], edx
add eax, 4
add edi, 4
cmp ecx, 4
jae 0x40e846
test ecx, ecx
jbe 0x40e74c
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec ecx
jne 0x40e860
jmp 0x40e74c
xor edx, edx
mov dl, byte [esi]
mov edi, edx
mov edx, eax
shl edi, 2
sub edx, edi
shr ecx, 2
sub edx, ecx
dec edx
inc esi
jmp 0x40e741
cmp esi, ebp
je 0x40e893
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
pop edi
pop esi
sub eax, ebx
pop ebp
pop ebx
ret