Function at 0x47e270
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 0x47e2ae
movzx ecx, cl
sub ecx, 0x11
inc esi
cmp ecx, 4
jb 0x47e380
lea esp, [esp]
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x47e2a0
jmp 0x47e339
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x4005
jae 0x47e4b4
cmp ecx, 0x10
jae 0x47e38d
test ecx, ecx
jne 0x47e2e6
cmp byte [esi], 0
jne 0x47e2de
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x47e2d0
movzx edx, byte [esi]
lea ecx, [ecx + edx + 0xf]
inc esi
cmp ecx, 0x4005
jae 0x47e4b4
mov edx, dword [esi]
mov dword [eax], edx
add eax, 4
add esi, 4
dec ecx
je 0x47e339
cmp ecx, 4
jb 0x47e330
mov edx, dword [esi]
mov dword [eax], edx
sub ecx, 4
add eax, 4
add esi, 4
cmp ecx, 4
jae 0x47e304
test ecx, ecx
jbe 0x47e339
lea ebx, [ebx]
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x47e320
jmp 0x47e339
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x47e330
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x10
jae 0x47e38d
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 0x47e2ae
jmp 0x47e380
mov dl, byte [esi]
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x47e380
movzx ecx, byte [esi]
inc esi
cmp ecx, 0x40
jb 0x47e3cb
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 0x47e3c0
jmp 0x47e36d
cmp ecx, 0x20
jb 0x47e406
and ecx, 0x1f
jne 0x47e3f6
cmp byte [esi], 0
jne 0x47e3ee
lea ebx, [ebx]
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x47e3e0
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 0x47e450
cmp ecx, 0x10
jb 0x47e49e
mov edx, ecx
and edx, 8
shl edx, 0xb
mov edi, eax
sub edi, edx
and ecx, 7
jne 0x47e43b
cmp byte [esi], 0
jne 0x47e433
mov dl, byte [esi + 1]
add ecx, 0xff
inc esi
test dl, dl
je 0x47e425
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 0x47e4be
sub edi, 0x4000
cmp ecx, 6
jb 0x47e3ac
mov edx, eax
sub edx, edi
cmp edx, 4
jl 0x47e3ac
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 0x47e473
test ecx, ecx
jbe 0x47e36d
lea ecx, [ecx]
mov dl, byte [edi]
mov byte [eax], dl
inc eax
inc edi
dec ecx
jne 0x47e490
jmp 0x47e36d
movzx edi, byte [esi]
shl edi, 2
mov edx, eax
sub edx, edi
shr ecx, 2
sub edx, ecx
dec edx
inc esi
jmp 0x47e362
pop edi
pop esi
pop ebp
mov eax, 0x4005
pop ebx
ret
cmp esi, ebp
je 0x47e4ca
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
pop edi
pop esi
pop ebp
sub eax, ebx
pop ebx
ret