Function at 0x45dd80
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 0x45ddb9
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 0x45dddc
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 0x45de05
cmp eax, dword [ebp + 0x10]
jae 0x45dfd7
cmp ebx, edi
jae 0x45dfe8
cmp ebx, eax
ja 0x45e074
inc ebx
inc eax
jmp 0x45ddc0
mov edi, 1
lea ebx, [ebx]
lea esi, [ecx + ecx]
test si, si
jne 0x45de2d
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 0x45dfd7
cmp edi, 0x1000002
ja 0x45dff9
add esi, esi
test si, si
jne 0x45de69
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 0x45dea3
lea ecx, [esi + esi]
test cx, cx
jne 0x45de92
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 0x45de10
cmp edi, 2
jne 0x45dede
mov ecx, dword [ebp - 8]
add esi, esi
mov dword [ebp + 0xc], ecx
test si, si
je 0x45debf
mov edi, esi
shr edi, 0x10
and edi, 1
jmp 0x45df0d
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 0x45df0d
cmp eax, dword [ebp + 0x10]
jae 0x45e00a
movzx ecx, byte [eax + edx]
add edi, 0xfffffffd
shl edi, 8
add ecx, edi
inc eax
cmp ecx, 0xffffffff
je 0x45e01b
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 0x45df2a
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 0x45dfa6
mov edi, 1
mov edi, edi
lea esi, [ecx + ecx]
test si, si
jne 0x45df5d
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 0x45e041
cmp edi, dword [ebp - 4]
jae 0x45e052
lea ecx, [esi + esi]
test cx, cx
jne 0x45df97
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 0x45df40
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 0x45e063
cmp dword [ebp + 0xc], ebx
ja 0x45dff9
lea ebx, [esi + 1]
cmp ebx, eax
ja 0x45e074
mov edi, dword [ebp - 4]
jmp 0x45ddc0
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 0x45e030
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