Function at 0x408b45
Capabilities:
Decompress data using ucl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
xor edx, edx
xor ecx, ecx
push edi
xor eax, eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], esi
test ecx, ecx
jbe 0x408b77
dec ecx
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x408b85
mov eax, dword [edx + ebx]
push 0x1f
mov esi, eax
add edx, 4
pop ecx
shr esi, 0x1f
test esi, esi
mov dword [ebp - 4], ecx
je 0x408bb6
cmp edx, dword [ebp + 0xc]
jae 0x408d52
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 8], ecx
jae 0x408d61
mov cl, byte [edx + ebx]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 0x10]
inc dword [ebp - 8]
mov byte [esi + edi], cl
inc edx
mov ecx, dword [ebp - 4]
jmp 0x408b69
mov dword [ebp - 0xc], 1
test ecx, ecx
jbe 0x408bcb
dec ecx
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x408bd9
mov eax, dword [edx + ebx]
push 0x1f
mov esi, eax
add edx, 4
pop ecx
shr esi, 0x1f
cmp edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0xc]
lea esi, [esi + edi*2]
mov dword [ebp - 0xc], esi
jae 0x408d52
cmp esi, 0x1000002
ja 0x408d68
test ecx, ecx
jbe 0x408c05
dec ecx
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x408c13
mov eax, dword [edx + ebx]
push 0x1f
mov esi, eax
add edx, 4
pop ecx
shr esi, 0x1f
test esi, esi
je 0x408bbd
mov edi, dword [ebp - 0xc]
cmp edi, 2
jne 0x408c24
mov esi, dword [ebp - 0x14]
jmp 0x408c47
cmp edx, dword [ebp + 0xc]
jae 0x408d52
movzx esi, byte [edx + ebx]
add edi, 0xfffffffd
shl edi, 8
add esi, edi
inc edx
cmp esi, 0xffffffff
je 0x408d6f
inc esi
mov dword [ebp - 0x14], esi
test ecx, ecx
mov dword [ebp - 0xc], esi
jbe 0x408c58
dec ecx
mov edi, eax
shr edi, cl
and edi, 1
jmp 0x408c66
mov eax, dword [edx + ebx]
push 0x1f
mov edi, eax
add edx, 4
pop ecx
shr edi, 0x1f
test ecx, ecx
jbe 0x408c77
dec ecx
mov esi, eax
shr esi, cl
mov dword [ebp - 4], ecx
and esi, 1
jmp 0x408c89
mov eax, dword [edx + ebx]
mov esi, eax
add edx, 4
mov dword [ebp - 4], 0x1f
shr esi, 0x1f
lea edi, [esi + edi*2]
test edi, edi
jne 0x408cfa
inc edi
cmp dword [ebp - 4], 0
jbe 0x408ca6
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x408cb8
mov eax, dword [edx + ebx]
mov esi, eax
add edx, 4
mov dword [ebp - 4], 0x1f
shr esi, 0x1f
cmp edx, dword [ebp + 0xc]
lea edi, [esi + edi*2]
jae 0x408d52
cmp edi, dword [ebp - 0x10]
jae 0x408d61
cmp dword [ebp - 4], 0
jbe 0x408ce2
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x408cf4
mov eax, dword [edx + ebx]
mov esi, eax
add edx, 4
mov dword [ebp - 4], 0x1f
shr esi, 0x1f
test esi, esi
je 0x408c91
inc edi
inc edi
mov esi, dword [ebp - 8]
mov ecx, 0xd00
cmp ecx, dword [ebp - 0xc]
sbb ecx, ecx
neg ecx
add edi, ecx
mov dword [ebp - 0x18], edi
add edi, esi
cmp edi, dword [ebp - 0x10]
ja 0x408d61
cmp dword [ebp - 0xc], esi
ja 0x408d92
sub esi, dword [ebp - 0xc]
mov edi, dword [ebp + 0x10]
add esi, dword [ebp + 0x10]
mov cl, byte [esi]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
inc dword [ebp - 8]
inc dword [ebp - 0xc]
mov byte [esi + edi], cl
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
inc dword [ebp - 8]
mov cl, byte [ecx]
mov edi, dword [ebp + 0x10]
inc dword [ebp - 0xc]
dec dword [ebp - 0x18]
mov byte [esi + edi], cl
jne 0x408d34
jmp 0x408bb1
mov eax, 0xffffff37
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x14]
mov dword [edx], ecx
jmp 0x408d9c
mov eax, 0xffffff36
jmp 0x408d57
mov eax, 0xffffff35
jmp 0x408d57
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, edx
sub eax, dword [ebp + 0xc]
cmp edx, dword [ebp + 0xc]
sbb ecx, ecx
and ecx, 0xfffffffc
add ecx, 0xffffff37
neg eax
sbb eax, eax
and eax, ecx
jmp 0x408d9c
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
mov eax, 0xffffff35
pop edi
pop esi
pop ebx
leave
ret