Function at 0x4163d0
Capabilities:
Decompress data using lzo

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov dword [eax], 0
push edi
mov al, byte [esi]
lea ebx, [esi + edx]
mov edx, dword [ebp + 8]
cmp al, 0x11
jbe 0x41640d
movzx ecx, al
inc esi
sub ecx, 0x11
cmp ecx, 4
jb 0x416600
nop dword [eax]
mov al, byte [esi]
inc esi
mov byte [edx], al
inc edx
sub ecx, 1
jne 0x416400
jmp 0x41647e
movzx eax, al
inc esi
cmp eax, 0x10
jae 0x4164bc
test eax, eax
jne 0x41643a
mov cl, byte [esi]
test cl, cl
jne 0x416431
mov cl, byte [esi + 1]
inc esi
add eax, 0xff
test cl, cl
je 0x416424
add eax, 0xf
movzx ecx, cl
add eax, ecx
inc esi
mov ecx, dword [esi]
add esi, 4
mov dword [edx], ecx
add edx, 4
sub eax, 1
je 0x41647e
cmp eax, 4
jb 0x416473
nop
mov ecx, dword [esi]
sub eax, 4
mov dword [edx], ecx
add esi, 4
add edx, 4
cmp eax, 4
jae 0x416450
test eax, eax
je 0x41647e
mov cl, byte [esi]
inc esi
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x416466
jmp 0x41647e
mov cl, byte [esi]
inc esi
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x416473
movzx eax, byte [esi]
inc esi
cmp eax, 0x10
jae 0x4164bc
shr eax, 2
mov ecx, edx
sub ecx, eax
movzx eax, byte [esi]
shl eax, 2
inc esi
sub ecx, eax
movzx eax, byte [ecx - 0x801]
mov byte [edx], al
movzx eax, byte [ecx - 0x800]
mov byte [edx + 1], al
movzx eax, byte [ecx - 0x7ff]
mov byte [edx + 2], al
add edx, 3
jmp 0x4165f6
cmp eax, 0x40
jb 0x416502
mov ecx, eax
mov edi, edx
shr ecx, 2
and ecx, 7
shr eax, 5
sub edi, ecx
movzx ecx, byte [esi]
shl ecx, 3
inc esi
sub edi, ecx
dec edi
dec eax
movzx ecx, byte [edi]
mov byte [edx], cl
movzx ecx, byte [edi + 1]
mov byte [edx + 1], cl
add edx, 2
add edi, 2
nop dword [eax]
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x4164f0
jmp 0x4165f6
cmp eax, 0x20
jb 0x416538
and eax, 0x1f
jne 0x416528
mov cl, byte [esi]
test cl, cl
jne 0x41651f
mov cl, byte [esi + 1]
inc esi
add eax, 0xff
test cl, cl
je 0x416512
add eax, 0x1f
movzx ecx, cl
add eax, ecx
inc esi
movzx ecx, word [esi]
mov edi, edx
shr ecx, 2
sub edi, ecx
dec edi
add esi, 2
jmp 0x41658f
cmp eax, 0x10
jb 0x4165d7
mov ecx, eax
mov edi, edx
and ecx, 8
shl ecx, 0xb
sub edi, ecx
and eax, 7
jne 0x416576
mov cl, byte [esi]
test cl, cl
jne 0x41656d
nop dword [eax + eax]
mov cl, byte [esi + 1]
inc esi
add eax, 0xff
test cl, cl
je 0x416560
add eax, 7
movzx ecx, cl
add eax, ecx
inc esi
movzx ecx, word [esi]
add esi, 2
shr ecx, 2
sub edi, ecx
cmp edi, edx
je 0x41661b
sub edi, 0x4000
cmp eax, 6
jb 0x4164db
mov ecx, edx
sub ecx, edi
cmp ecx, 4
jl 0x4164db
mov ecx, dword [edi]
add edi, 4
mov dword [edx], ecx
add edx, 4
sub eax, 2
mov ecx, dword [edi]
sub eax, 4
mov dword [edx], ecx
add edi, 4
add edx, 4
cmp eax, 4
jae 0x4165b2
test eax, eax
je 0x4165f6
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x4165c8
jmp 0x4165f6
shr eax, 2
mov ecx, edx
sub ecx, eax
movzx eax, byte [esi]
shl eax, 2
inc esi
sub ecx, eax
movzx eax, byte [ecx - 1]
mov byte [edx], al
movzx eax, byte [ecx]
mov byte [edx + 1], al
add edx, 2
movzx ecx, byte [esi - 2]
and ecx, 3
je 0x416614
nop
mov al, byte [esi]
inc esi
mov byte [edx], al
inc edx
sub ecx, 1
jne 0x416600
movzx eax, byte [esi]
inc esi
jmp 0x4164bc
mov al, byte [esi]
jmp 0x41640d
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 8]
mov dword [eax], edx
cmp esi, ebx
jne 0x41662e
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
sbb eax, eax
pop edi
and eax, 0xfffffffc
pop esi
add eax, 0xfffffffc
pop ebx
pop ebp
ret