Function at 0x405a80
Capabilities:
Decompress data using lzo

Disassembly:
mov eax, dword [esp + 8]
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov esi, dword [esp + 0x10]
mov dword [ebx], 0
push edi
mov dl, byte [esi]
lea ebp, [esi + eax]
mov eax, dword [esp + 0x1c]
cmp dl, 0x11
mov ecx, esi
jbe 0x405ac8
and edx, 0xff
lea ecx, [esi + 1]
sub edx, 0x11
mov edi, edx
cmp edi, 4
jb 0x405b7a
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec edi
jne 0x405abd
jmp 0x405b34
xor edx, edx
mov dl, byte [ecx]
inc ecx
mov esi, edx
cmp esi, 0x10
jae 0x405b9d
test esi, esi
jne 0x405af8
cmp byte [ecx], 0
jne 0x405aef
mov dl, byte [ecx + 1]
add esi, 0xff
inc ecx
test dl, dl
je 0x405ae1
xor edx, edx
mov dl, byte [ecx]
inc ecx
lea esi, [esi + edx + 0xf]
mov edx, dword [ecx]
add ecx, 4
mov dword [eax], edx
add eax, 4
dec esi
je 0x405b34
cmp esi, 4
jb 0x405b2b
mov edx, dword [ecx]
sub esi, 4
mov dword [eax], edx
add eax, 4
add ecx, 4
cmp esi, 4
jae 0x405b0a
test esi, esi
jbe 0x405b34
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x405b20
jmp 0x405b34
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x405b2b
xor edx, edx
mov dl, byte [ecx]
inc ecx
mov esi, edx
cmp esi, 0x10
jae 0x405b9d
xor edx, edx
mov edi, eax
mov dl, byte [ecx]
shr esi, 2
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 0x405ac8
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
cmp edi, 1
jbe 0x405b96
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
cmp edi, 2
jbe 0x405b96
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
xor edx, edx
mov dl, byte [ecx]
inc ecx
mov esi, edx
cmp esi, 0x40
jb 0x405bd5
mov edx, esi
mov edi, eax
shr edx, 2
and edx, 7
sub edi, edx
xor edx, edx
mov dl, 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 0x405bca
jmp 0x405b6c
cmp esi, 0x20
jb 0x405c0d
and esi, 0x1f
jne 0x405bfb
cmp byte [ecx], 0
jne 0x405bf2
mov dl, byte [ecx + 1]
add esi, 0xff
inc ecx
test dl, dl
je 0x405be4
xor edx, edx
mov dl, byte [ecx]
inc ecx
lea esi, [esi + edx + 0x1f]
xor edx, edx
mov edi, eax
mov dx, word [ecx]
shr edx, 2
sub edi, edx
dec edi
add ecx, 2
jmp 0x405c5a
cmp esi, 0x10
jb 0x405ca5
mov edx, esi
mov edi, eax
and edx, 8
shl edx, 0xb
sub edi, edx
and esi, 7
jne 0x405c43
cmp byte [ecx], 0
jne 0x405c3a
mov dl, byte [ecx + 1]
add esi, 0xff
inc ecx
test dl, dl
je 0x405c2c
xor edx, edx
mov dl, byte [ecx]
inc ecx
lea esi, [esi + edx + 7]
xor edx, edx
mov dx, word [ecx]
add ecx, 2
shr edx, 2
sub edi, edx
cmp edi, eax
je 0x405cbc
sub edi, 0x4000
cmp esi, 6
jb 0x405bbd
mov edx, eax
sub edx, edi
cmp edx, 4
jl 0x405bbd
mov edx, dword [edi]
add edi, 4
mov dword [eax], edx
add eax, 4
sub esi, 2
mov edx, dword [edi]
sub esi, 4
mov dword [eax], edx
add eax, 4
add edi, 4
cmp esi, 4
jae 0x405c7d
test esi, esi
jbe 0x405b6c
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec esi
jne 0x405c97
jmp 0x405b6c
xor edx, edx
mov edi, eax
mov dl, byte [ecx]
shr esi, 2
sub edi, esi
shl edx, 2
sub edi, edx
dec edi
inc ecx
jmp 0x405b61
mov edx, dword [esp + 0x1c]
sub eax, edx
cmp ecx, ebp
mov dword [ebx], eax
jne 0x405ccf
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
sbb eax, eax
pop edi
and al, 0xfc
pop esi
pop ebp
add eax, 0xfffffffc
pop ebx
ret