Function at 0x45f200
Capabilities:
Decompress data using ucl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov ebx, dword [esi]
add edx, eax
push edi
xor edi, edi
xor ecx, ecx
mov dword [ebp + 0xc], edi
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], ebx
mov dword [ebp + 0x10], edx
cmp ebx, edx
jb 0x45f23c
pop edi
mov dword [esi], ecx
pop esi
mov eax, 0xffffff32
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
nop
add ecx, ecx
test cx, cx
jne 0x45f25c
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 0x45f288
cmp eax, dword [ebp + 0x10]
jae 0x45f4b4
cmp edi, ebx
jae 0x45f4c5
cmp edi, eax
ja 0x45f4d6
inc edi
mov dword [ebp + 0xc], edi
inc eax
jmp 0x45f240
mov edi, 1
lea ecx, [ecx]
lea esi, [ecx + ecx]
test si, si
jne 0x45f2ad
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 ebx, [ecx + edi*2]
mov edi, dword [ebp + 0x10]
cmp eax, edi
jae 0x45f4e7
cmp ebx, 0x1000002
ja 0x45f4fb
add esi, esi
test si, si
jne 0x45f2eb
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 0x45f325
lea ecx, [esi + esi]
test cx, cx
jne 0x45f314
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 + ebx*2 - 2]
jmp 0x45f290
cmp ebx, 2
jne 0x45f360
mov ecx, dword [ebp - 0xc]
add esi, esi
mov dword [ebp - 4], ecx
test si, si
je 0x45f341
mov ecx, esi
shr ecx, 0x10
and ecx, 1
jmp 0x45f38e
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
jmp 0x45f38e
cmp eax, edi
jae 0x45f50f
movzx edi, byte [eax + edx]
add ebx, 0xfffffffd
shl ebx, 8
add edi, ebx
inc eax
cmp edi, 0xffffffff
je 0x45f523
mov ecx, edi
not ecx
shr edi, 1
and ecx, 1
inc edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
test ecx, ecx
lea ecx, [esi + esi]
je 0x45f3bf
test cx, cx
jne 0x45f3af
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 + 1]
jmp 0x45f479
test cx, cx
jne 0x45f3d9
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 0x45f40e
add ecx, ecx
test cx, cx
jne 0x45f401
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 + 3]
jmp 0x45f479
mov edi, 1
lea esi, [ecx + ecx]
test si, si
jne 0x45f430
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 0x45f4e7
cmp edi, dword [ebp - 8]
jae 0x45f54c
lea ecx, [esi + esi]
test cx, cx
jne 0x45f46a
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 0x45f413
add edi, 3
mov ebx, dword [ebp + 0xc]
mov esi, 0x500
cmp esi, dword [ebp - 4]
sbb esi, esi
neg esi
add esi, edi
add esi, ebx
cmp esi, dword [ebp - 8]
ja 0x45f560
cmp dword [ebp - 4], ebx
ja 0x45f571
inc esi
mov dword [ebp + 0xc], esi
cmp esi, eax
ja 0x45f582
mov ebx, dword [ebp - 8]
mov edi, esi
jmp 0x45f240
mov edx, dword [ebp + 0x14]
mov dword [edx], edi
pop edi
pop esi
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], edi
pop edi
pop esi
mov eax, 0xffffff36
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov eax, 0xffffff32
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
mov dword [eax], edx
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [edx], ecx
mov eax, 0xffffff35
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], eax
mov eax, 0xffffff37
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jne 0x45f53b
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 ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [edx], ecx
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, 0xffffff36
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], ebx
mov eax, 0xffffff35
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
pop edi
mov dword [edx], esi
pop esi
mov eax, 0xffffff32
pop ebx
mov esp, ebp
pop ebp
ret