Function at 0x4c4774
Capabilities:
Decompress data using quicklz

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
mov ebp, edx
push edi
mov edi, ecx
test ebp, ebp
je 0x4c4a10
mov ebx, dword [ebp]
mov ecx, ebx
and ebx, 0xffffff
shr ecx, 0x18
cmp edi, ebx
jae 0x4c4a10
cmp cl, 1
jne 0x4c47ab
movzx edx, byte [edi + ebp + 8]
jmp 0x4c47e3
cmp cl, 2
jne 0x4c47b7
movzx edx, word [ebp + edi*2 + 8]
jmp 0x4c47e3
cmp cl, 3
jne 0x4c47d6
lea eax, [edi*2]
add eax, ebp
movzx edx, byte [edi + eax + 0xa]
movzx eax, word [edi + eax + 8]
shl edx, 8
or edx, eax
jmp 0x4c47e3
cmp cl, 4
jne 0x4c4a10
mov edx, dword [ebp + edi*4 + 8]
mov edi, ecx
imul edi, ebx
add edi, 8
add edi, ebp
mov ecx, dword [edi + edx]
lea ebx, [edi + edx]
mov dword [esp + 0x10], ecx
test cl, 1
je 0x4c48b8
shr ecx, 2
add edx, 5
xor cl, byte [esi]
and cl, 1
xor byte [esi], cl
mov eax, dword [ebx]
shr eax, 4
and eax, 0x1ff
mov dword [esi + 1], eax
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 5], ecx
mov eax, dword [ebx]
shr eax, 0xd
and eax, 0x7ff
add eax, dword [ebp + 4]
mov dword [esi + 9], eax
test byte [ebx], 8
je 0x4c4885
mov ecx, dword [edi + edx]
add edx, 4
test ecx, ecx
jns 0x4c4880
lea eax, [ecx*8]
sar eax, 3
mov dword [esi + 0x19], eax
test ecx, 0x20000000
je 0x4c4868
lea eax, [edi + edx]
add edx, 4
mov eax, dword [eax]
jmp 0x4c486a
xor eax, eax
mov dword [esi + 0x15], eax
test ecx, 0x40000000
je 0x4c489a
mov eax, dword [edi + edx]
add edx, 4
mov dword [esi + 0xd], eax
jmp 0x4c489a
mov dword [esi + 0xd], ecx
jmp 0x4c488c
mov dword [esi + 0xd], 0xffffffff
mov dword [esi + 0x15], 0
mov dword [esi + 0x19], 0xffffffff
test byte [ebx], 2
mov eax, dword [esp + 0x18]
jne 0x4c4967
mov eax, dword [edi + edx]
mov ecx, 0x11
pop edi
mov dword [ecx + esi], eax
pop esi
pop ebp
pop ebx
pop ecx
ret
shr ecx, 3
xor cl, byte [esi]
and cl, 1
xor byte [esi], cl
test byte [esp + 0x10], 2
mov eax, dword [ebx]
jne 0x4c4975
shr eax, 4
add edx, 7
and eax, 0xfff
mov dword [esi + 1], eax
movzx ecx, word [ebx + 4]
movzx eax, byte [ebx + 6]
and ecx, 0xfffffffe
shl ecx, 7
or ecx, eax
mov dword [esi + 5], ecx
movzx eax, word [ebx + 2]
add eax, dword [ebp + 4]
mov dword [esi + 9], eax
test byte [ebx + 4], 1
je 0x4c4946
mov ecx, dword [edi + edx]
add edx, 4
test ecx, ecx
jns 0x4c4941
lea eax, [ecx*8]
sar eax, 3
mov dword [esi + 0x19], eax
test ecx, 0x20000000
je 0x4c4929
lea eax, [edi + edx]
add edx, 4
mov eax, dword [eax]
jmp 0x4c492b
xor eax, eax
mov dword [esi + 0x15], eax
test ecx, 0x40000000
je 0x4c495b
mov eax, dword [edi + edx]
add edx, 4
mov dword [esi + 0xd], eax
jmp 0x4c495b
mov dword [esi + 0xd], ecx
jmp 0x4c494d
mov dword [esi + 0xd], 0xffffffff
mov dword [esi + 0x15], 0
mov dword [esi + 0x19], 0xffffffff
test byte [ebx], 4
mov eax, dword [esp + 0x18]
jne 0x4c4967
mov eax, dword [edi + edx]
mov ecx, 0x11
pop edi
mov dword [ecx + esi], eax
pop esi
pop ebp
pop ebx
pop ecx
ret
shr eax, 5
add edx, 0xc
mov dword [esi + 1], eax
mov eax, dword [ebx + 4]
mov dword [esi + 5], eax
mov eax, dword [ebx + 8]
add eax, dword [ebp + 4]
mov dword [esi + 9], eax
test byte [ebx], 0x10
je 0x4c49d8
mov ecx, dword [edi + edx]
add edx, 4
test ecx, ecx
jns 0x4c49d3
lea eax, [ecx*8]
sar eax, 3
mov dword [esi + 0x19], eax
test ecx, 0x20000000
je 0x4c49bb
lea eax, [edi + edx]
add edx, 4
mov eax, dword [eax]
jmp 0x4c49bd
xor eax, eax
mov dword [esi + 0x15], eax
test ecx, 0x40000000
je 0x4c49ed
mov eax, dword [edi + edx]
add edx, 4
mov dword [esi + 0xd], eax
jmp 0x4c49ed
mov dword [esi + 0xd], ecx
jmp 0x4c49df
mov dword [esi + 0xd], 0xffffffff
mov dword [esi + 0x15], 0
mov dword [esi + 0x19], 0xffffffff
test byte [ebx], 4
mov ecx, 0x11
je 0x4c4a04
mov eax, dword [esp + 0x18]
pop edi
mov dword [ecx + esi], eax
pop esi
pop ebp
pop ebx
pop ecx
ret
mov eax, dword [edi + edx]
pop edi
mov dword [ecx + esi], eax
pop esi
pop ebp
pop ebx
pop ecx
ret
and byte [esi], 0xfe
mov eax, 0x11
pop edi
mov dword [esi + 1], 0
mov dword [esi + 5], 0
mov dword [esi + 9], 0
mov dword [esi + 0xd], 0
mov dword [esi + 0x15], 0
mov dword [esi + 0x19], 0xffffffff
mov dword [eax + esi], 0x80004005
pop esi
pop ebp
pop ebx
pop ecx
ret