Function at 0x45ce00
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 0x45ce39
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 0x45ce5c
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 0x45ce85
cmp eax, dword [ebp + 0x10]
jae 0x45d057
cmp ebx, edi
jae 0x45d068
cmp ebx, eax
ja 0x45d0f4
inc ebx
inc eax
jmp 0x45ce40
mov edi, 1
lea ebx, [ebx]
lea esi, [ecx + ecx]
test si, si
jne 0x45cead
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 0x45d057
cmp edi, 0x1000002
ja 0x45d079
add esi, esi
test si, si
jne 0x45cee9
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
test ecx, ecx
jne 0x45cf23
lea ecx, [esi + esi]
test cx, cx
jne 0x45cf12
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 - 2]
jmp 0x45ce90
cmp edi, 2
jne 0x45cf5e
mov ecx, dword [ebp - 8]
add esi, esi
mov dword [ebp + 0xc], ecx
test si, si
je 0x45cf3f
mov edi, esi
shr edi, 0x10
and edi, 1
jmp 0x45cf8d
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 edi, esi
shr edi, 0x10
and edi, 1
jmp 0x45cf8d
cmp eax, dword [ebp + 0x10]
jae 0x45d08a
movzx ecx, byte [eax + edx]
add edi, 0xfffffffd
shl edi, 8
add ecx, edi
inc eax
cmp ecx, 0xffffffff
je 0x45d09b
mov edi, ecx
not edi
shr ecx, 1
and edi, 1
inc ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 8], ecx
lea ecx, [esi + esi]
test cx, cx
jne 0x45cfaa
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 0x45d026
mov edi, 1
mov edi, edi
lea esi, [ecx + ecx]
test si, si
jne 0x45cfdd
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 0x45d0c1
cmp edi, dword [ebp - 4]
jae 0x45d0d2
lea ecx, [esi + esi]
test cx, cx
jne 0x45d017
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 0x45cfc0
add edi, 2
mov esi, 0x500
cmp esi, dword [ebp + 0xc]
sbb esi, esi
neg esi
add esi, edi
add esi, ebx
cmp esi, dword [ebp - 4]
ja 0x45d0e3
cmp dword [ebp + 0xc], ebx
ja 0x45d079
lea ebx, [esi + 1]
cmp ebx, eax
ja 0x45d0f4
mov edi, dword [ebp - 4]
jmp 0x45ce40
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 0x45d0b0
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