Function at 0x45ba90
Capabilities:
Decompress data using ucl

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [esi]
add edx, eax
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 8], 1
mov dword [ebp - 4], edi
mov dword [ebp + 0x10], edx
cmp edi, edx
jb 0x45bac9
pop edi
mov dword [esi], ecx
pop esi
mov eax, 0xffffff32
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
lea esp, [esp]
add ecx, ecx
test cx, cx
jne 0x45baec
movzx ecx, byte [eax + edx + 1]
movzx esi, byte [eax + edx]
add eax, 2
shl ecx, 8
add ecx, esi
lea ecx, [ecx + ecx + 1]
mov esi, ecx
shr esi, 0x10
and esi, 1
test esi, esi
je 0x45bb15
cmp eax, dword [ebp + 0x10]
jae 0x45bca7
cmp ebx, edi
jae 0x45bcb8
cmp ebx, eax
ja 0x45bd44
inc ebx
inc eax
jmp 0x45bad0
mov edi, 1
lea ebx, [ebx]
lea esi, [ecx + ecx]
test si, si
jne 0x45bb3d
movzx esi, byte [eax + edx + 1]
movzx ecx, byte [eax + edx]
add eax, 2
shl esi, 8
add esi, ecx
lea esi, [esi + esi + 1]
mov ecx, esi
shr ecx, 0x10
and ecx, 1
lea edi, [ecx + edi*2]
cmp eax, dword [ebp + 0x10]
jae 0x45bca7
cmp edi, 0x1000002
ja 0x45bcc9
lea ecx, [esi + esi]
test cx, cx
jne 0x45bb7a
movzx ecx, byte [eax + edx + 1]
movzx esi, byte [eax + edx]
add eax, 2
shl ecx, 8
add ecx, esi
lea ecx, [ecx + ecx + 1]
mov esi, ecx
shr esi, 0x10
and esi, 1
test esi, esi
je 0x45bb20
cmp edi, 2
jne 0x45bb90
mov esi, dword [ebp - 8]
jmp 0x45bbb3
cmp eax, dword [ebp + 0x10]
jae 0x45bcda
movzx esi, byte [eax + edx]
add edi, 0xfffffffd
shl edi, 8
add esi, edi
inc eax
cmp esi, 0xffffffff
je 0x45bceb
inc esi
mov dword [ebp - 8], esi
add ecx, ecx
mov dword [ebp + 0xc], esi
test cx, cx
jne 0x45bbd2
movzx ecx, byte [eax + edx + 1]
movzx esi, byte [eax + edx]
add eax, 2
shl ecx, 8
add ecx, esi
lea ecx, [ecx + ecx + 1]
mov edi, ecx
shr edi, 0x10
add ecx, ecx
and edi, 1
test cx, cx
jne 0x45bbf6
movzx ecx, byte [eax + edx + 1]
movzx esi, byte [eax + edx]
add eax, 2
shl ecx, 8
add ecx, esi
lea ecx, [ecx + ecx + 1]
mov esi, ecx
shr esi, 0x10
and esi, 1
lea edi, [esi + edi*2]
test edi, edi
jne 0x45bc76
mov edi, 1
lea ebx, [ebx]
lea esi, [ecx + ecx]
test si, si
jne 0x45bc2d
movzx esi, byte [eax + edx + 1]
movzx ecx, byte [eax + edx]
add eax, 2
shl esi, 8
add esi, ecx
lea esi, [esi + esi + 1]
mov ecx, esi
shr ecx, 0x10
and ecx, 1
lea edi, [ecx + edi*2]
cmp eax, dword [ebp + 0x10]
jae 0x45bd11
cmp edi, dword [ebp - 4]
jae 0x45bd22
lea ecx, [esi + esi]
test cx, cx
jne 0x45bc67
movzx ecx, byte [eax + edx + 1]
movzx esi, byte [eax + edx]
add eax, 2
shl ecx, 8
add ecx, esi
lea ecx, [ecx + ecx + 1]
mov esi, ecx
shr esi, 0x10
and esi, 1
test esi, esi
je 0x45bc10
add edi, 2
mov esi, 0xd00
cmp esi, dword [ebp + 0xc]
sbb esi, esi
neg esi
add esi, edi
add esi, ebx
cmp esi, dword [ebp - 4]
ja 0x45bd33
cmp dword [ebp + 0xc], ebx
ja 0x45bcc9
lea ebx, [esi + 1]
cmp ebx, eax
ja 0x45bd44
mov edi, dword [ebp - 4]
jmp 0x45bad0
mov edx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [edx], ebx
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
mov dword [eax], ebx
pop esi
mov eax, 0xffffff36
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
mov dword [eax], ebx
pop esi
mov eax, 0xffffff35
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], ebx
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [edx], ebx
cmp eax, ecx
jne 0x45bd00
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
sbb eax, eax
pop edi
and eax, 0xfffffffc
pop esi
add eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop edi
mov dword [eax], ebx
pop esi
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], ebx
mov eax, 0xffffff36
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [edx], ebx
mov eax, 0xffffff36
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], ebx
mov eax, 0xffffff32
pop ebx
mov esp, ebp
pop ebp
ret