Function at 0x4597d0
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]
mov cl, byte [esi]
cmp cl, 0x11
lea ebp, [esi + eax]
push edi
mov eax, ebx
jbe 0x45980b
movzx ecx, cl
sub ecx, 0x11
inc esi
cmp ecx, 4
jb 0x4598c0
lea esp, [esp]
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x459800
jmp 0x45987a
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x10
jae 0x4598cd
test ecx, ecx
jne 0x459837
cmp byte [esi], 0
jne 0x45982f
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x459821
movzx edx, byte [esi]
lea ecx, [ecx + edx + 0xf]
inc esi
mov edx, dword [esi]
mov dword [eax], edx
add eax, 4
add esi, 4
dec ecx
je 0x45987a
cmp ecx, 4
jb 0x459871
lea esp, [esp]
mov edx, dword [esi]
mov dword [eax], edx
sub ecx, 4
add eax, 4
add esi, 4
cmp ecx, 4
jae 0x459850
test ecx, ecx
jbe 0x45987a
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x459866
jmp 0x45987a
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x459871
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x10
jae 0x4598cd
movzx edi, byte [esi]
shl edi, 2
shr ecx, 2
mov edx, eax
sub edx, edi
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
xor ecx, ecx
mov cl, byte [esi - 2]
and ecx, 3
je 0x45980b
lea esp, [esp]
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x4598c0
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x40
jb 0x45990b
mov edx, ecx
shr edx, 2
and edx, 7
mov edi, eax
sub edi, edx
movzx edx, byte [esi]
shl edx, 3
sub edi, edx
dec edi
shr ecx, 5
inc esi
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
lea esp, [esp]
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec ecx
jne 0x459900
jmp 0x4598ae
cmp ecx, 0x20
jb 0x459946
and ecx, 0x1f
jne 0x459936
cmp byte [esi], 0
jne 0x45992e
lea ebx, [ebx]
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x459920
movzx edx, byte [esi]
lea ecx, [ecx + edx + 0x1f]
inc esi
movzx edx, word [esi]
shr edx, 2
mov edi, eax
sub edi, edx
dec edi
add esi, 2
jmp 0x459990
cmp ecx, 0x10
jb 0x4599de
mov edx, ecx
and edx, 8
shl edx, 0xb
mov edi, eax
sub edi, edx
and ecx, 7
jne 0x45997b
cmp byte [esi], 0
jne 0x459973
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x459965
movzx edx, byte [esi]
lea ecx, [ecx + edx + 7]
inc esi
movzx edx, word [esi]
shr edx, 2
sub edi, edx
add esi, 2
cmp edi, eax
je 0x4599f4
sub edi, 0x4000
cmp ecx, 6
jb 0x4598ec
mov edx, eax
sub edx, edi
cmp edx, 4
jl 0x4598ec
mov edx, dword [edi]
mov dword [eax], edx
add eax, 4
add edi, 4
sub ecx, 2
mov edx, dword [edi]
mov dword [eax], edx
sub ecx, 4
add eax, 4
add edi, 4
cmp ecx, 4
jae 0x4599b3
test ecx, ecx
jbe 0x4598ae
lea ecx, [ecx]
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec ecx
jne 0x4599d0
jmp 0x4598ae
movzx edi, byte [esi]
shl edi, 2
mov edx, eax
sub edx, edi
shr ecx, 2
sub edx, ecx
dec edx
inc esi
jmp 0x4598a3
cmp esi, ebp
je 0x459a02
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 0xc
pop edi
pop esi
pop ebp
sub eax, ebx
pop ebx
ret 0xc