Function at 0xbc9c00
Capabilities:
Packed with generic packer
Resolve function by parsing pe exports

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x423000]
push edi
mov ebp, esp
lea ebx, [esp - 0x3e80]
xor eax, eax
push eax
cmp esp, ebx
jne 0xbc9c18
inc esi
inc esi
push ebx
push 0x7c728d
push edi
add ebx, 4
push ebx
push 0x3a5bfc
push esi
add ebx, 4
push ebx
push eax
mov dword [ebx], 0x20003
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov edx, dword [esp + 0x90]
mov dword [esp + 0x74], 0
mov byte [esp + 0x73], 0
mov ebp, dword [esp + 0x9c]
lea eax, [edx + 4]
mov dword [esp + 0x78], eax
mov eax, 1
movzx ecx, byte [edx + 2]
mov ebx, eax
shl ebx, cl
mov ecx, ebx
dec ecx
mov dword [esp + 0x6c], ecx
movzx ecx, byte [edx + 1]
shl eax, cl
dec eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa8]
movzx esi, byte [edx]
mov dword [ebp], 0
mov dword [esp + 0x60], 0
mov dword [eax], 0
mov eax, 0x300
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], 1
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], 1
mov dword [esp + 0x50], 1
movzx ecx, byte [edx + 1]
add ecx, esi
shl eax, cl
lea ecx, [eax + 0x736]
cmp dword [esp + 0x74], ecx
jae 0xbc9ced
mov eax, dword [esp + 0x78]
mov word [eax], 0x400
add eax, 2
loop 0xbc9ce3
mov ebx, dword [esp + 0x94]
xor edi, edi
mov dword [esp + 0x48], 0xffffffff
mov edx, ebx
add edx, dword [esp + 0x98]
mov dword [esp + 0x4c], edx
xor edx, edx
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
inc edx
inc ebx
or edi, eax
cmp edx, 4
jle 0xbc9d0d
mov ecx, dword [esp + 0xa4]
cmp dword [esp + 0x74], ecx
jae 0xbca69b
mov esi, dword [esp + 0x74]
and esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x78]
shl eax, 4
mov dword [esp + 0x44], esi
add eax, esi
cmp dword [esp + 0x48], 0xffffff
lea ebp, [edx + eax*2]
ja 0xbc9d75
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov dx, word [ebp]
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0xbc9f6b
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ecx
mov cl, byte [esp + 0x64]
sar eax, 5
mov esi, 1
lea eax, [edx + eax]
movzx edx, byte [esp + 0x73]
mov word [ebp], ax
mov eax, dword [esp + 0x74]
and eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x78]
shl eax, cl
mov ecx, 8
sub ecx, dword [esp + 0x64]
sar edx, cl
add eax, edx
imul eax, eax, 0x600
cmp dword [esp + 0x60], 6
lea eax, [ebp + eax + 0xe6c]
mov dword [esp + 0x14], eax
jle 0xbc9eb2
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xa0]
movzx eax, byte [edx + eax]
mov dword [esp + 0x40], eax
shl dword [esp + 0x40], 1
mov ecx, dword [esp + 0x40]
lea edx, [esi + esi]
mov ebp, dword [esp + 0x14]
and ecx, 0x100
cmp dword [esp + 0x48], 0xffffff
lea eax, [ebp + ecx*2]
mov dword [esp + 0x3c], ecx
lea ebp, [eax + edx]
ja 0xbc9e41
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov cx, word [ebp + 0x200]
shr eax, 0xb
movzx esi, cx
imul eax, esi
cmp edi, eax
jae 0xbc9e7c
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, esi
mov esi, edx
sar eax, 5
cmp dword [esp + 0x3c], 0
lea eax, [ecx + eax]
mov word [ebp + 0x200], ax
je 0xbc9e9c
jmp 0xbc9eaa
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, ecx
lea esi, [edx + 1]
shr ax, 5
sub cx, ax
cmp dword [esp + 0x3c], 0
mov word [ebp + 0x200], cx
je 0xbc9eaa
cmp esi, 0xff
jle 0xbc9dff
jmp 0xbc9f23
cmp esi, 0xff
jg 0xbc9f23
lea edx, [esi + esi]
mov ebp, dword [esp + 0x14]
add ebp, edx
cmp dword [esp + 0x48], 0xffffff
ja 0xbc9edd
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov cx, word [ebp]
shr eax, 0xb
movzx esi, cx
imul eax, esi
cmp edi, eax
jae 0xbc9f0b
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, esi
mov esi, edx
sar eax, 5
lea eax, [ecx + eax]
mov word [ebp], ax
jmp 0xbc9eaa
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, ecx
lea esi, [edx + 1]
shr ax, 5
sub cx, ax
mov word [ebp], cx
jmp 0xbc9eaa
mov edx, dword [esp + 0x74]
mov eax, esi
mov ecx, dword [esp + 0xa0]
mov byte [esp + 0x73], al
mov byte [edx + ecx], al
inc edx
cmp dword [esp + 0x60], 3
mov dword [esp + 0x74], edx
jg 0xbc9f50
mov dword [esp + 0x60], 0
jmp 0xbca66b
cmp dword [esp + 0x60], 9
jg 0xbc9f61
sub dword [esp + 0x60], 3
jmp 0xbca66b
sub dword [esp + 0x60], 6
jmp 0xbca66b
mov ecx, dword [esp + 0x48]
sub edi, eax
mov esi, dword [esp + 0x60]
sub ecx, eax
mov eax, edx
shr ax, 5
sub dx, ax
cmp ecx, 0xffffff
mov word [ebp], dx
mov ebp, dword [esp + 0x78]
lea esi, [ebp + esi*2]
mov dword [esp + 0x38], esi
ja 0xbc9fae
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl ecx, 8
inc ebx
or edi, eax
mov ebp, dword [esp + 0x38]
mov eax, ecx
shr eax, 0xb
mov dx, word [ebp + 0x180]
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0xbca01a
mov esi, eax
mov eax, 0x800
sub eax, ebp
mov ebp, dword [esp + 0x58]
sar eax, 5
mov ecx, dword [esp + 0x54]
lea eax, [edx + eax]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x78]
mov word [edx + 0x180], ax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], eax
xor eax, eax
cmp dword [esp + 0x60], 6
setg al
add ecx, 0x664
lea eax, [eax + eax*2]
mov dword [esp + 0x60], eax
jmp 0xbca28e
mov esi, ecx
sub edi, eax
sub esi, eax
mov eax, edx
shr ax, 5
mov ecx, dword [esp + 0x38]
sub dx, ax
cmp esi, 0xffffff
mov word [ecx + 0x180], dx
ja 0xbca052
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl esi, 8
inc ebx
or edi, eax
mov ebp, dword [esp + 0x38]
mov edx, esi
shr edx, 0xb
mov cx, word [ebp + 0x198]
movzx eax, cx
imul edx, eax
cmp edi, edx
jae 0xbca153
mov ebp, 0x800
mov esi, edx
sub ebp, eax
mov dword [esp + 0x34], 0x800
mov eax, ebp
sar eax, 5
lea eax, [ecx + eax]
mov ecx, dword [esp + 0x38]
mov word [ecx + 0x198], ax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
shl eax, 5
add eax, dword [esp + 0x78]
cmp edx, 0xffffff
lea ebp, [eax + ecx*2]
ja 0xbca0c4
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl esi, 8
inc ebx
or edi, eax
mov dx, word [ebp + 0x1e0]
mov eax, esi
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0xbca13a
sub dword [esp + 0x34], ecx
sar dword [esp + 0x34], 5
mov esi, dword [esp + 0x34]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x74], 0
lea eax, [edx + esi]
mov word [ebp + 0x1e0], ax
je 0xbca693
xor eax, eax
cmp dword [esp + 0x60], 6
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0x74]
setg al
lea eax, [eax + eax + 9]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x5c]
mov al, byte [ebp + eax]
mov byte [esp + 0x73], al
mov byte [edx + ebp], al
inc edx
mov dword [esp + 0x74], edx
jmp 0xbca66b
sub esi, eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov word [ebp + 0x1e0], dx
jmp 0xbca272
mov eax, ecx
sub esi, edx
shr ax, 5
mov ebp, dword [esp + 0x38]
sub cx, ax
sub edi, edx
cmp esi, 0xffffff
mov word [ebp + 0x198], cx
ja 0xbca189
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl esi, 8
inc ebx
or edi, eax
mov ecx, dword [esp + 0x38]
mov eax, esi
shr eax, 0xb
mov dx, word [ecx + 0x1b0]
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0xbca1c6
mov esi, eax
mov eax, 0x800
sub eax, ecx
mov ebp, dword [esp + 0x38]
sar eax, 5
lea eax, [edx + eax]
mov word [ebp + 0x1b0], ax
mov eax, dword [esp + 0x58]
jmp 0xbca266
mov ecx, esi
sub edi, eax
sub ecx, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov eax, dword [esp + 0x38]
cmp ecx, 0xffffff
mov word [eax + 0x1b0], dx
ja 0xbca1fe
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl ecx, 8
inc ebx
or edi, eax
mov esi, dword [esp + 0x38]
mov eax, ecx
shr eax, 0xb
mov dx, word [esi + 0x1c8]
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0xbca238
mov esi, eax
mov eax, 0x800
sub eax, ebp
mov ebp, dword [esp + 0x38]
sar eax, 5
lea eax, [edx + eax]
mov word [ebp + 0x1c8], ax
mov eax, dword [esp + 0x54]
jmp 0xbca25e
mov esi, ecx
sub edi, eax
sub esi, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov eax, dword [esp + 0x38]
mov word [eax + 0x1c8], dx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x54], ecx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebp
xor eax, eax
cmp dword [esp + 0x60], 6
mov ecx, dword [esp + 0x78]
setg al
add ecx, 0xa68
lea eax, [eax + eax*2 + 8]
mov dword [esp + 0x60], eax
cmp esi, 0xffffff
ja 0xbca2ac
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl esi, 8
inc ebx
or edi, eax
mov dx, word [ecx]
mov eax, esi
shr eax, 0xb
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0xbca2ed
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ebp
shl dword [esp + 0x44], 4
sar eax, 5
mov dword [esp + 0x2c], 0
lea eax, [edx + eax]
mov word [ecx], ax
mov eax, dword [esp + 0x44]
lea ecx, [ecx + eax + 4]
mov dword [esp + 0x10], ecx
jmp 0xbca35f
sub esi, eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
cmp esi, 0xffffff
mov word [ecx], dx
ja 0xbca31b
cmp ebx, dword [esp + 0x4c]
je 0xbca693
movzx eax, byte [ebx]
shl edi, 8
shl esi, 8
inc ebx
or edi, eax
mov dx, word [ecx + 2]
mov eax, esi
shr eax, 0xb
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0xbca369
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ebp
shl dword [esp + 0x44], 4
sar eax, 5
mov dword [esp + 0x2c], 8
lea eax, [edx + eax]
mov edx, dword [esp + 0x44]
mov word [ecx + 2], ax
lea ecx, [ecx + edx + 0x104]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], 3
jmp 0xbca398
sub esi, eax
sub edi, eax
mov eax, edx
mov dword [esp + 0x48], esi
shr ax, 5
mov dword [esp + 0x2c], 0x10
sub dx, ax
mov dword [esp + 0x30], 8
mov word [ecx + 2], dx
add ecx, 0x204
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov edx, 1
mov dword [esp + 0x28], ecx
lea ebp, [edx + edx]
mov esi, dword [esp + 0x10]
add esi, ebp
cmp dword [esp + 0x48], 0xffffff
ja 0xbca3d0
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov dx, word [esi]
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0xbca3fc
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
lea eax, [edx + eax]
mov edx, ebp
mov word [esi], ax
jmp 0xbca411
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov word [esi], dx
lea edx, [ebp + 1]
mov esi, dword [esp + 0x28]
dec esi
mov dword [esp + 0x28], esi
jne 0xbca3a5
mov cl, byte [esp + 0x30]
mov eax, 1
shl eax, cl
sub edx, eax
add edx, dword [esp + 0x2c]
cmp dword [esp + 0x60], 3
mov dword [esp + 0xc], edx
jg 0xbca623
add dword [esp + 0x60], 7
cmp edx, 3
mov eax, edx
jle 0xbca44d
mov eax, 3
mov esi, dword [esp + 0x78]
shl eax, 7
mov dword [esp + 0x24], 6
lea eax, [esi + eax + 0x360]
mov dword [esp + 8], eax
mov eax, 1
lea ebp, [eax + eax]
mov esi, dword [esp + 8]
add esi, ebp
cmp dword [esp + 0x48], 0xffffff
ja 0xbca497
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov dx, word [esi]
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0xbca4c3
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
lea eax, [edx + eax]
mov word [esi], ax
mov eax, ebp
jmp 0xbca4d8
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
lea eax, [ebp + 1]
mov word [esi], dx
mov ebp, dword [esp + 0x24]
dec ebp
mov dword [esp + 0x24], ebp
jne 0xbca46c
lea edx, [eax - 0x40]
cmp edx, 3
mov dword [esp], edx
jle 0xbca619
mov eax, edx
mov esi, edx
sar eax, 1
and esi, 1
lea ecx, [eax - 1]
or esi, 2
cmp edx, 0xd
mov dword [esp + 0x20], ecx
jg 0xbca526
mov ebp, dword [esp + 0x78]
shl esi, cl
add edx, edx
mov dword [esp], esi
lea eax, [ebp + esi*2]
sub eax, edx
add eax, 0x55e
mov dword [esp + 4], eax
jmp 0xbca57c
lea edx, [eax - 5]
cmp dword [esp + 0x48], 0xffffff
ja 0xbca54b
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
shr dword [esp + 0x48], 1
add esi, esi
cmp edi, dword [esp + 0x48]
jb 0xbca55e
sub edi, dword [esp + 0x48]
or esi, 1
dec edx
jne 0xbca529
mov eax, dword [esp + 0x78]
shl esi, 4
mov dword [esp], esi
add eax, 0x644
mov dword [esp + 0x20], 4
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 1
mov eax, 1
mov ebp, dword [esp + 4]
add eax, eax
mov dword [esp + 0x18], eax
add ebp, eax
cmp dword [esp + 0x48], 0xffffff
ja 0xbca5b7
cmp ebx, dword [esp + 0x4c]
je 0xbca693
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov dx, word [ebp]
shr eax, 0xb
movzx esi, dx
imul eax, esi
cmp edi, eax
jae 0xbca5e7
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, esi
sar eax, 5
lea eax, [edx + eax]
mov word [ebp], ax
mov eax, dword [esp + 0x18]
jmp 0xbca606
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov eax, dword [esp + 0x18]
mov word [ebp], dx
mov edx, dword [esp + 0x1c]
inc eax
or dword [esp], edx
mov ecx, dword [esp + 0x20]
shl dword [esp + 0x1c], 1
dec ecx
mov dword [esp + 0x20], ecx
jne 0xbca589
mov esi, dword [esp]
inc esi
mov dword [esp + 0x5c], esi
je 0xbca67c
mov ecx, dword [esp + 0xc]
mov ebp, dword [esp + 0x74]
add ecx, 2
cmp dword [esp + 0x5c], ebp
ja 0xbca693
mov eax, dword [esp + 0xa0]
mov edx, ebp
sub eax, dword [esp + 0x5c]
add edx, dword [esp + 0xa0]
lea esi, [eax + ebp]
mov al, byte [esi]
inc esi
mov byte [esp + 0x73], al
mov byte [edx], al
inc edx
inc dword [esp + 0x74]
dec ecx
je 0xbca66b
mov ebp, dword [esp + 0xa4]
cmp dword [esp + 0x74], ebp
jb 0xbca64b
jmp 0xbca67c
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x74], eax
jb 0xbc9d37
cmp dword [esp + 0x48], 0xffffff
ja 0xbca69b
cmp ebx, dword [esp + 0x4c]
mov eax, 1
je 0xbca6ba
jmp 0xbca69a
mov eax, 1
jmp 0xbca6ba
inc ebx
sub ebx, dword [esp + 0x94]
xor eax, eax
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x74]
mov dword [edx], ebx
mov ebx, dword [esp + 0xa8]
mov dword [ebx], ecx
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
add esi, dword [ebx - 4]
add edi, dword [ebx - 8]
xor eax, eax
lea ecx, [esp - 0x100]
mov esp, ebp
push eax
cmp esp, ecx
jne 0xbca6d2
mov esp, ebp
xor ecx, ecx
pop esi
mov edi, esi
mov ecx, 0x1abb6
mov al, 0xe8
repne scasb al, byte es:[edi]
jne 0xbca700
cmp byte [edi], 2
jne 0xbca6e5
mov eax, dword [edi]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
add eax, esi
stosd dword es:[edi], eax
jmp 0xbca6e3
lea edi, [esi + 0x7c7000]
mov eax, dword [edi]
or eax, eax
je 0xbca751
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x7cc0ac]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x7cc0e8]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0xbca706
mov ecx, edi
jns 0xbca735
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x7cc0f0]
or eax, eax
je 0xbca74b
mov dword [ebx], eax
add ebx, 4
jmp 0xbca723
call dword [esi + 0x7cc0ec]
mov ebp, dword [esi + 0x7cc0f4]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1cf]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0xbca785
sub esp, 0xffffff80
jmp 0x4011f0