Function at 0x4541a0
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]
add eax, ebx
mov dword [ecx], 0
mov dl, byte [edi]
cmp dl, 0x11
mov dword [esp + 0x14], eax
mov ecx, ebx
mov eax, edi
jbe 0x454214
movzx esi, dl
sub esi, 0x11
cmp esi, 4
lea eax, [edi + 1]
jb 0x454340
mov edx, dword [esp + 0x14]
sub edx, ebx
cmp edx, esi
jb 0x4545a9
mov edx, ebp
sub edx, eax
lea edi, [esi + 1]
cmp edx, edi
jb 0x454573
nop
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
sub esi, 1
jne 0x454200
jmp 0x4542d6
cmp eax, ebp
jae 0x4545cd
movzx esi, byte [eax]
add eax, 1
cmp esi, 0x10
jae 0x454393
test esi, esi
jne 0x454266
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
jne 0x45425c
add eax, 1
mov edx, ebp
sub edx, eax
add esi, 0xff
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
je 0x454241
movzx edx, byte [eax]
lea esi, [esi + edx + 0xf]
add eax, 1
mov edx, dword [esp + 0x14]
sub edx, ecx
lea edi, [esi + 3]
cmp edx, edi
jb 0x4545a9
mov edx, ebp
sub edx, eax
lea edi, [esi + 4]
cmp edx, edi
jb 0x454573
mov edx, dword [eax]
mov dword [ecx], edx
add ecx, 4
add eax, 4
sub esi, 1
je 0x4542d6
cmp esi, 4
jb 0x4542c7
lea ebx, [ebx]
mov edx, dword [eax]
mov dword [ecx], edx
sub esi, 4
add ecx, 4
add eax, 4
cmp esi, 4
jae 0x4542a0
test esi, esi
jbe 0x4542d6
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
sub esi, 1
jne 0x4542b6
jmp 0x4542d6
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
sub esi, 1
jne 0x4542c7
movzx esi, byte [eax]
add eax, 1
cmp esi, 0x10
jae 0x454393
movzx edx, byte [eax]
add edx, edx
add edx, edx
mov edi, ecx
sub edi, edx
shr esi, 2
sub edi, esi
sub edi, 0x801
add eax, 1
cmp edi, ebx
jb 0x4545bb
cmp edi, ecx
jae 0x4545bb
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, 3
jb 0x4545a9
movzx edx, byte [edi]
mov byte [ecx], dl
add ecx, 1
add edi, 1
jmp 0x45455d
mov ebx, dword [esp + 0x1c]
movzx edx, byte [eax - 2]
and edx, 3
mov esi, edx
je 0x454214
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, esi
jb 0x4545a9
mov edx, ebp
sub edx, eax
lea edi, [esi + 1]
cmp edx, edi
jb 0x454573
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
cmp esi, 1
jbe 0x454385
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
cmp esi, 2
jbe 0x454385
mov dl, byte [eax]
mov byte [ecx], dl
add ecx, 1
add eax, 1
movzx esi, byte [eax]
add eax, 1
cmp eax, ebp
jae 0x4545cd
cmp esi, 0x40
jb 0x454407
mov edx, esi
shr edx, 2
and edx, 7
mov edi, ecx
sub edi, edx
movzx edx, byte [eax]
add edx, edx
add edx, edx
add edx, edx
sub edi, edx
shr esi, 5
sub edi, 1
add eax, 1
sub esi, 1
cmp edi, ebx
jb 0x4545bb
cmp edi, ecx
jae 0x4545bb
mov edx, dword [esp + 0x14]
sub edx, ecx
lea ebx, [esi + 2]
cmp edx, ebx
jb 0x4545a5
movzx edx, byte [edi]
mov byte [ecx], dl
movzx edx, byte [edi + 1]
add edi, 1
add ecx, 1
mov byte [ecx], dl
add ecx, 1
add edi, 1
mov dl, byte [edi]
mov byte [ecx], dl
add ecx, 1
add edi, 1
sub esi, 1
jne 0x4543f3
jmp 0x45432d
cmp esi, 0x20
jb 0x45445a
and esi, 0x1f
jne 0x454448
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
jne 0x45443e
add eax, 1
mov edx, ebp
sub edx, eax
add esi, 0xff
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
je 0x454423
movzx edx, byte [eax]
lea esi, [esi + edx + 0x1f]
add eax, 1
movzx edx, word [eax]
shr edx, 2
mov edi, ecx
sub edi, edx
sub edi, 1
add eax, 2
jmp 0x4544c4
cmp esi, 0x10
mov edi, ecx
jb 0x454536
mov edx, esi
and edx, 8
shl edx, 0xb
sub edi, edx
and esi, 7
jne 0x4544ab
mov edx, ebp
sub edx, eax
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
jne 0x4544a1
add eax, 1
mov edx, ebp
sub edx, eax
add esi, 0xff
cmp edx, 1
jb 0x454573
cmp byte [eax], 0
je 0x454486
movzx edx, byte [eax]
lea esi, [esi + edx + 7]
add eax, 1
movzx edx, word [eax]
shr edx, 2
sub edi, edx
add eax, 2
cmp edi, ecx
je 0x454585
sub edi, 0x4000
cmp edi, ebx
jb 0x4545bb
cmp edi, ecx
jae 0x4545bb
mov edx, dword [esp + 0x14]
sub edx, ecx
lea ebx, [esi + 2]
cmp edx, ebx
jb 0x4545a5
cmp esi, 6
jb 0x4543dc
mov edx, ecx
sub edx, edi
cmp edx, 4
jl 0x4543dc
mov edx, dword [edi]
mov dword [ecx], edx
add ecx, 4
add edi, 4
sub esi, 2
mov edx, dword [edi]
mov dword [ecx], edx
sub esi, 4
add ecx, 4
add edi, 4
cmp esi, 4
jae 0x454508
test esi, esi
jbe 0x45432d
mov dl, byte [edi]
mov byte [ecx], dl
add ecx, 1
add edi, 1
sub esi, 1
jne 0x454522
jmp 0x45432d
movzx edx, byte [eax]
add edx, edx
add edx, edx
sub edi, edx
shr esi, 2
sub edi, esi
sub edi, 1
add eax, 1
cmp edi, ebx
jb 0x4545bb
cmp edi, ecx
jae 0x4545bb
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, 2
jb 0x4545a9
movzx edx, byte [edi]
mov byte [ecx], dl
movzx edx, byte [edi + 1]
add ecx, 1
mov byte [ecx], dl
add ecx, 1
jmp 0x454331
mov eax, dword [esp + 0x20]
pop edi
pop esi
sub ecx, ebx
pop ebp
mov dword [eax], ecx
mov eax, 0xfffffffc
pop ebx
ret
mov edx, dword [esp + 0x20]
sub ecx, ebx
cmp eax, ebp
mov dword [edx], ecx
jne 0x454598
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
sbb eax, eax
pop esi
and eax, 0xfffffffc
pop ebp
add eax, 0xfffffffc
pop ebx
ret
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
pop edi
pop esi
sub ecx, ebx
pop ebp
mov dword [eax], ecx
mov eax, 0xfffffffb
pop ebx
ret
mov edx, dword [esp + 0x20]
pop edi
pop esi
sub ecx, ebx
pop ebp
mov dword [edx], ecx
mov eax, 0xfffffffa
pop ebx
ret
mov eax, dword [esp + 0x20]
pop edi
pop esi
sub ecx, ebx
pop ebp
mov dword [eax], ecx
mov eax, 0xfffffff9
pop ebx
ret