Function at 0x438550
Capabilities:
Decompress data using lzo

Disassembly:
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
push ebx
mov ebx, dword [esp + 0x10]
push ebp
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov dword [eax], 0
mov eax, ebp
push esi
add edx, ebx
sub eax, ecx
push edi
mov dword [esp + 0x14], edx
mov esi, ebx
cmp eax, 1
jb 0x4388f8
mov al, byte [ecx]
cmp al, 0x11
jbe 0x4385c1
movzx eax, al
sub eax, 0x11
inc ecx
cmp eax, 4
jb 0x4386d5
sub edx, ebx
cmp edx, eax
jb 0x43892e
mov edx, ebp
sub edx, ecx
lea edi, [eax + 3]
cmp edx, edi
jb 0x4388f8
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x4385b3
jmp 0x43866a
mov eax, ebp
sub eax, ecx
cmp eax, 3
jb 0x4388f8
movzx eax, byte [ecx]
inc ecx
cmp eax, 0x10
jae 0x438712
test eax, eax
jne 0x43860e
cmp byte [ecx], al
jne 0x438606
add eax, 0xff
inc ecx
cmp eax, 0xfffffe01
ja 0x4388f8
mov edi, ebp
sub edi, ecx
cmp edi, 1
jb 0x4388f8
cmp byte [ecx], 0
je 0x4385e3
movzx edi, byte [ecx]
lea eax, [eax + edi + 0xf]
inc ecx
sub edx, esi
lea edi, [eax + 3]
cmp edx, edi
jb 0x43892e
mov edx, ebp
sub edx, ecx
lea edi, [eax + 6]
cmp edx, edi
jb 0x4388f8
mov edx, dword [ecx]
mov dword [esi], edx
add esi, 4
add ecx, 4
dec eax
je 0x43866a
cmp eax, 4
jb 0x438661
lea esp, [esp]
mov edx, dword [ecx]
mov dword [esi], edx
sub eax, 4
add esi, 4
add ecx, 4
cmp eax, 4
jae 0x438640
test eax, eax
je 0x43866a
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x438656
jmp 0x43866a
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x438661
movzx eax, byte [ecx]
inc ecx
cmp eax, 0x10
jae 0x438712
movzx edi, byte [ecx]
add edi, edi
add edi, edi
mov edx, esi
sub edx, edi
shr eax, 2
sub edx, eax
sub edx, 0x801
inc ecx
cmp edx, ebx
jb 0x438940
cmp edx, esi
jae 0x438940
mov eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 3
jb 0x43892e
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
mov dl, byte [edx + 2]
mov byte [esi + 2], dl
add esi, 3
jmp 0x4386c8
mov ebx, dword [esp + 0x1c]
movzx eax, byte [ecx - 2]
and eax, 3
je 0x4388ef
mov edx, dword [esp + 0x14]
sub edx, esi
cmp edx, eax
jb 0x43892e
mov edx, ebp
sub edx, ecx
lea edi, [eax + 3]
cmp edx, edi
jb 0x4388f8
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
cmp eax, 1
jbe 0x43870e
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
cmp eax, 2
jbe 0x43870e
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc ecx
movzx eax, byte [ecx]
inc ecx
cmp eax, 0x40
jb 0x438775
mov edx, eax
shr edx, 2
and edx, 7
mov edi, esi
sub edi, edx
movzx edx, byte [ecx]
add edx, edx
add edx, edx
add edx, edx
sub edi, edx
shr eax, 5
dec edi
inc ecx
dec eax
cmp edi, ebx
jb 0x438940
cmp edi, esi
jae 0x438940
mov edx, dword [esp + 0x14]
sub edx, esi
lea ebx, [eax + 2]
cmp edx, ebx
jb 0x43892a
movzx edx, byte [edi]
mov byte [esi], dl
movzx edx, byte [edi + 1]
mov byte [esi + 1], dl
add esi, 2
add edi, 2
mov dl, byte [edi]
mov byte [esi], dl
inc esi
inc edi
dec eax
jne 0x438767
jmp 0x4386c4
cmp eax, 0x20
jb 0x4387ce
and eax, 0x1f
jne 0x4387bb
cmp byte [ecx], al
jne 0x4387a6
add eax, 0xff
inc ecx
cmp eax, 0xfffffe01
ja 0x43892e
mov edx, ebp
sub edx, ecx
cmp edx, 1
jb 0x4388f8
cmp byte [ecx], 0
je 0x438783
movzx edx, byte [ecx]
lea eax, [eax + edx + 0x1f]
inc ecx
mov edx, ebp
sub edx, ecx
cmp edx, 2
jb 0x4388f8
mov dx, word [ecx]
movzx edx, dx
shr edx, 2
lea edi, [esi - 1]
sub edi, edx
add ecx, 2
jmp 0x438844
cmp eax, 0x10
jb 0x4388b0
mov edx, eax
and edx, 8
shl edx, 0xb
mov edi, esi
sub edi, edx
and eax, 7
jne 0x438828
cmp byte [ecx], al
jne 0x438813
lea esp, [esp]
add eax, 0xff
inc ecx
cmp eax, 0xfffffe01
ja 0x43892e
mov edx, ebp
sub edx, ecx
cmp edx, 1
jb 0x4388f8
cmp byte [ecx], 0
je 0x4387f0
movzx edx, byte [ecx]
lea eax, [eax + edx + 7]
inc ecx
mov edx, ebp
sub edx, ecx
cmp edx, 2
jb 0x4388f8
mov dx, word [ecx]
movzx edx, dx
shr edx, 2
sub edi, edx
add ecx, 2
cmp edi, esi
je 0x43890a
sub edi, 0x4000
cmp edi, ebx
jb 0x438940
cmp edi, esi
jae 0x438940
mov edx, dword [esp + 0x14]
sub edx, esi
lea ebx, [eax + 2]
cmp edx, ebx
jb 0x43892a
cmp eax, 6
jb 0x438755
mov edx, esi
sub edx, edi
cmp edx, 4
jl 0x438755
mov edx, dword [edi]
mov dword [esi], edx
add esi, 4
add edi, 4
sub eax, 2
mov edx, dword [edi]
mov dword [esi], edx
sub eax, 4
add esi, 4
add edi, 4
cmp eax, 4
jae 0x438888
test eax, eax
je 0x4386c4
mov dl, byte [edi]
mov byte [esi], dl
inc esi
inc edi
dec eax
jne 0x4388a2
jmp 0x4386c4
movzx edi, byte [ecx]
add edi, edi
add edi, edi
mov edx, esi
sub edx, edi
shr eax, 2
sub edx, eax
dec edx
inc ecx
cmp edx, ebx
jb 0x438940
cmp edx, esi
jae 0x438940
mov eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 2
jb 0x43892e
mov al, byte [edx]
mov byte [esi], al
mov dl, byte [edx + 1]
mov byte [esi + 1], dl
add esi, 2
jmp 0x4386c8
mov edx, dword [esp + 0x14]
jmp 0x4385c1
mov eax, dword [esp + 0x20]
sub esi, ebx
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
ret
mov edx, dword [esp + 0x20]
sub esi, ebx
mov dword [edx], esi
cmp ecx, ebp
jne 0x43891d
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]
sub esi, ebx
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
ret
mov ecx, dword [esp + 0x20]
sub esi, ebx
pop edi
mov dword [ecx], esi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
ret