Function at 0x4010d8
Capabilities:
Decompress data using lzo

Disassembly:
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
test esi, esi
lea ecx, [eax + esi]
mov dword [esp + 0x10], ecx
je 0x401337
cmp eax, 1
jb 0x401337
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x401337
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x401337
mov dword [ebx], 0
mov al, byte [esi]
cmp al, 0x11
push edi
mov ecx, ebp
jbe 0x40113f
and eax, 0xff
sub eax, 0x11
inc esi
cmp eax, 4
jb 0x4011ea
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x401134
jmp 0x4011a8
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x10
jae 0x4011f8
test eax, eax
jne 0x40116c
cmp byte [esi], 0
jne 0x401163
mov dl, byte [esi + 1]
add eax, 0xff
inc esi
test dl, dl
je 0x401156
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [edx + eax + 0xf]
mov edx, dword [esi]
add esi, 4
mov dword [ecx], edx
add ecx, 4
dec eax
je 0x4011a8
cmp eax, 4
jb 0x40119f
mov edx, dword [esi]
sub eax, 4
mov dword [ecx], edx
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x40117e
test eax, eax
jbe 0x4011a8
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x401194
jmp 0x4011a8
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x40119f
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x10
jae 0x4011f8
shr eax, 2
mov edx, ecx
sub edx, eax
xor eax, eax
mov al, byte [esi]
shl eax, 2
sub edx, eax
mov al, byte [edx - 0x801]
sub edx, 0x801
inc esi
mov byte [ecx], al
inc ecx
inc edx
mov al, byte [edx]
mov byte [ecx], al
mov dl, byte [edx + 1]
inc ecx
mov byte [ecx], dl
inc ecx
mov al, byte [esi - 2]
and eax, 3
je 0x40113f
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x4011ea
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x40
jb 0x401230
mov edx, eax
mov edi, ecx
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 eax, 5
dec eax
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 eax
jne 0x401225
jmp 0x4011de
cmp eax, 0x20
jb 0x401267
and eax, 0x1f
jne 0x401255
cmp byte [esi], 0
jne 0x40124c
mov dl, byte [esi + 1]
add eax, 0xff
inc esi
test dl, dl
je 0x40123f
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [edx + eax + 0x1f]
xor edx, edx
mov edi, ecx
mov dx, word [esi]
shr edx, 2
sub edi, edx
dec edi
add esi, 2
jmp 0x4012b3
cmp eax, 0x10
jb 0x4012fe
mov edx, eax
mov edi, ecx
and edx, 8
shl edx, 0xb
sub edi, edx
and eax, 7
jne 0x40129c
cmp byte [esi], 0
jne 0x401293
mov dl, byte [esi + 1]
add eax, 0xff
inc esi
test dl, dl
je 0x401286
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [edx + eax + 7]
xor edx, edx
mov dx, word [esi]
add esi, 2
shr edx, 2
sub edi, edx
cmp edi, ecx
je 0x401315
sub edi, 0x4000
cmp eax, 6
jb 0x401218
mov edx, ecx
sub edx, edi
cmp edx, 4
jl 0x401218
mov edx, dword [edi]
add edi, 4
mov dword [ecx], edx
add ecx, 4
sub eax, 2
mov edx, dword [edi]
sub eax, 4
mov dword [ecx], edx
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x4012d6
test eax, eax
jbe 0x4011de
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
dec eax
jne 0x4012f0
jmp 0x4011de
shr eax, 2
mov edx, ecx
sub edx, eax
xor eax, eax
mov al, byte [esi]
shl eax, 2
sub edx, eax
dec edx
inc esi
jmp 0x4011d3
mov eax, dword [esp + 0x14]
sub ecx, ebp
cmp esi, eax
mov dword [ebx], ecx
pop edi
jne 0x40132a
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x10
sbb eax, eax
pop esi
and al, 0xfc
pop ebp
add eax, 0xfffffffc
pop ebx
ret 0x10
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 0x10