Function at 0x45e200
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 0x45e23c
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 0x45e25c
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 0x45e288
cmp eax, dword [ebp + 0x10]
jae 0x45e4b4
cmp edi, ebx
jae 0x45e4c5
cmp edi, eax
ja 0x45e4d6
inc edi
mov dword [ebp + 0xc], edi
inc eax
jmp 0x45e240
mov edi, 1
lea ecx, [ecx]
lea esi, [ecx + ecx]
test si, si
jne 0x45e2ad
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 0x45e4e7
cmp ebx, 0x1000002
ja 0x45e4fb
add esi, esi
test si, si
jne 0x45e2eb
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 0x45e325
lea ecx, [esi + esi]
test cx, cx
jne 0x45e314
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 0x45e290
cmp ebx, 2
jne 0x45e360
mov ecx, dword [ebp - 0xc]
add esi, esi
mov dword [ebp - 4], ecx
test si, si
je 0x45e341
mov ecx, esi
shr ecx, 0x10
and ecx, 1
jmp 0x45e38e
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 0x45e38e
cmp eax, edi
jae 0x45e50f
movzx edi, byte [eax + edx]
add ebx, 0xfffffffd
shl ebx, 8
add edi, ebx
inc eax
cmp edi, 0xffffffff
je 0x45e523
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 0x45e3bf
test cx, cx
jne 0x45e3af
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 0x45e479
test cx, cx
jne 0x45e3d9
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 0x45e40e
add ecx, ecx
test cx, cx
jne 0x45e401
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 0x45e479
mov edi, 1
lea esi, [ecx + ecx]
test si, si
jne 0x45e430
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 0x45e4e7
cmp edi, dword [ebp - 8]
jae 0x45e54c
lea ecx, [esi + esi]
test cx, cx
jne 0x45e46a
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 0x45e413
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 0x45e560
cmp dword [ebp - 4], ebx
ja 0x45e571
inc esi
mov dword [ebp + 0xc], esi
cmp esi, eax
ja 0x45e582
mov ebx, dword [ebp - 8]
mov edi, esi
jmp 0x45e240
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 0x45e53b
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