Function at 0x42c520
Capabilities:
Decompress data using lzo

Disassembly:
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 8]
push ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax]
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
lea edi, [eax + ebx]
test esi, esi
mov ecx, ebx
lea ebp, [esi + edx]
mov dword [esp + 0x14], edi
je 0x42c8b8
cmp edx, 3
jb 0x42c8b8
cmp dword [esp + 0x20], 0
je 0x42c8b8
test ebx, ebx
je 0x42c8b8
cmp eax, 1
jb 0x42c8b8
mov eax, dword [esp + 0x20]
mov dword [eax], 0
mov al, byte [ebp - 1]
test al, al
jne 0x42c8a3
mov al, byte [ebp - 2]
test al, al
jne 0x42c8a3
cmp byte [ebp - 3], 0x11
jne 0x42c8a3
mov al, byte [esi]
cmp al, 0x11
jbe 0x42c5d8
and eax, 0xff
sub eax, 0x11
inc esi
cmp eax, 4
jb 0x42c6cd
sub edi, ebx
cmp edi, eax
jb 0x42c8b8
mov edx, ebp
lea edi, [eax + 1]
sub edx, esi
cmp edx, edi
jb 0x42c8b8
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x42c5ca
jmp 0x42c66f
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x10
jae 0x42c6f8
test eax, eax
jne 0x42c613
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
jne 0x42c60a
add eax, 0xff
inc esi
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
je 0x42c5f7
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [eax + edx + 0xf]
mov edx, dword [esp + 0x14]
lea edi, [eax + 3]
sub edx, ecx
cmp edx, edi
jb 0x42c8b8
mov edx, ebp
lea edi, [eax + 4]
sub edx, esi
cmp edx, edi
jb 0x42c8b8
mov edx, dword [esi]
add esi, 4
mov dword [ecx], edx
add ecx, 4
dec eax
je 0x42c66f
cmp eax, 4
jb 0x42c666
mov edx, dword [esi]
sub eax, 4
mov dword [ecx], edx
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x42c645
test eax, eax
jbe 0x42c66f
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x42c65b
jmp 0x42c66f
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x42c666
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x10
jae 0x42c6f8
xor edx, edx
mov dl, byte [esi]
mov edi, edx
mov edx, ecx
shl edi, 2
sub edx, edi
shr eax, 2
sub edx, eax
sub edx, 0x801
inc esi
cmp edx, ebx
jb 0x42c8b8
mov eax, dword [esp + 0x14]
sub eax, ecx
cmp eax, 3
jl 0x42c8b8
mov al, byte [edx]
mov byte [ecx], al
mov al, byte [edx + 1]
inc ecx
inc edx
mov byte [ecx], al
mov dl, byte [edx + 1]
inc ecx
mov byte [ecx], dl
inc ecx
jmp 0x42c6c1
mov ebx, dword [esp + 0x1c]
mov al, byte [esi - 2]
and eax, 3
je 0x42c5d8
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, eax
jb 0x42c8b8
mov edx, ebp
lea edi, [eax + 1]
sub edx, esi
cmp edx, edi
jb 0x42c8b8
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
jne 0x42c6ea
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, 0x40
jb 0x42c73a
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
cmp edi, ebx
jb 0x42c8b8
mov edx, dword [esp + 0x14]
lea ebx, [eax + 2]
sub edx, ecx
cmp edx, ebx
jae 0x42c84b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x10
cmp eax, 0x20
jb 0x42c77f
and eax, 0x1f
jne 0x42c76d
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
jne 0x42c764
add eax, 0xff
inc esi
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
je 0x42c751
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [eax + edx + 0x1f]
xor edx, edx
mov edi, ecx
mov dx, word [esi]
shr edx, 2
sub edi, edx
dec edi
add esi, 2
jmp 0x42c7ef
cmp eax, 0x10
jb 0x42c866
mov edx, eax
mov edi, ecx
and edx, 8
shl edx, 0xb
sub edi, edx
and eax, 7
jne 0x42c7c2
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
jne 0x42c7b9
add eax, 0xff
inc esi
cmp esi, ebp
ja 0x42c8b8
cmp byte [esi], 0
je 0x42c7a6
xor edx, edx
mov dl, byte [esi]
inc esi
lea eax, [eax + edx + 7]
xor edx, edx
mov dx, word [esi]
add esi, 2
shr edx, 2
sub edi, edx
cmp edi, ecx
jne 0x42c7e9
mov eax, dword [esp + 0x20]
sub ecx, ebx
pop edi
mov dword [eax], ecx
xor eax, eax
cmp esi, ebp
pop esi
pop ebp
pop ebx
sete al
ret 0x10
sub edi, 0x4000
cmp edi, ebx
jb 0x42c8b8
mov edx, dword [esp + 0x14]
lea ebx, [eax + 2]
sub edx, ecx
cmp edx, ebx
jb 0x42c8b8
cmp eax, 6
jb 0x42c84b
mov edx, ecx
sub edx, edi
cmp edx, 4
jl 0x42c84b
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 0x42c823
test eax, eax
jbe 0x42c6bd
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
dec eax
jne 0x42c83d
jmp 0x42c6bd
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 0x42c858
jmp 0x42c6bd
xor edx, edx
mov dl, byte [esi]
mov edi, edx
mov edx, ecx
shl edi, 2
sub edx, edi
shr eax, 2
sub edx, eax
mov al, byte [edx - 1]
dec edx
inc esi
mov byte [ecx], al
inc ecx
mov al, byte [edx + 1]
inc edx
mov byte [ecx], al
inc ecx
cmp edx, ebx
jb 0x42c8b8
mov edx, dword [esp + 0x14]
sub edx, ecx
cmp edx, 2
jge 0x42c6c1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x10
push edx
push str.Compressor:_invalid_decompress_block___d_bytes_
push 1
push 0x596558
call fcn.004aa400
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x10