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

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1a000]
push edi
mov ebp, esp
lea ebx, [esp - 0x3e80]
xor eax, eax
push eax
cmp esp, ebx
jne 0x424658
inc esi
inc esi
push ebx
push 0x22394
sub ebx, 0xfffffffc
push edi
push ebx
push 0x962f
push esi
add ebx, 4
push ebx
push eax
mov dword [ebx], 0x20003
nop
nop
nop
nop
nop
push ebp
push edi
push esi
mov edi, 1
push ebx
add esp, 0xffffff84
mov ebp, edi
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x74], 0
lea ecx, [ebx + 4]
mov byte [esp + 0x73], 0
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x78], ecx
movzx ecx, byte [ebx + 2]
shl ebp, cl
mov esi, ebp
dec esi
mov dword [esp + 0x6c], esi
movzx ecx, byte [ebx + 1]
shl edi, cl
dec edi
mov dword [esp + 0x68], edi
movzx esi, byte [ebx]
mov edx, dword [esp + 0xa8]
mov edi, 0x300
mov dword [eax], 0
mov dword [esp + 0x60], 0
mov dword [edx], 0
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 [ebx + 1]
add ecx, esi
shl edi, cl
lea ecx, [edi + 0x736]
cmp dword [esp + 0x74], ecx
jae 0x424732
mov edx, dword [esp + 0x78]
mov word [edx], 0x400
add edx, 2
loop 0x424728
xor edi, edi
mov esi, dword [esp + 0x94]
mov eax, esi
mov dword [esp + 0x48], 0xffffffff
add eax, dword [esp + 0x98]
xor edx, edx
mov dword [esp + 0x4c], eax
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl edi, 8
inc edx
movzx ebp, byte [esi]
inc esi
or edi, ebp
cmp edx, 4
jle 0x424752
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x74], eax
jae 0x4250e0
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
and eax, dword [esp + 0x6c]
shl ecx, 4
add ecx, eax
lea ebp, [edx + ecx*2]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x48], 0xffffff
ja 0x4247ba
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
shl edi, 8
movzx eax, byte [esi]
inc esi
or edi, eax
mov dx, word [ebp]
mov eax, dword [esp + 0x48]
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0x4249b0
mov ebx, 0x800
mov dword [esp + 0x48], eax
sub ebx, ecx
mov cl, byte [esp + 0x64]
mov eax, 1
sar ebx, 5
lea ebx, [edx + ebx]
movzx edx, byte [esp + 0x73]
mov word [ebp], bx
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
and ebp, dword [esp + 0x68]
shl ebp, cl
mov ecx, 8
sub ecx, dword [esp + 0x64]
sar edx, cl
add ebp, edx
imul ebp, ebp, 0x600
lea ebp, [ebx + ebp + 0xe6c]
cmp dword [esp + 0x60], 6
mov dword [esp + 0x14], ebp
jle 0x4248f7
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0xa0]
sub ecx, dword [esp + 0x5c]
movzx ecx, byte [ebx + ecx]
mov dword [esp + 0x40], ecx
lea edx, [eax + eax]
shl dword [esp + 0x40], 1
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0x100
lea eax, [ebx + ecx*2]
cmp dword [esp + 0x48], 0xffffff
lea ebp, [eax + edx]
mov dword [esp + 0x3c], ecx
ja 0x424886
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
shl edi, 8
movzx eax, byte [esi]
inc esi
or edi, eax
mov ebx, dword [esp + 0x48]
shr ebx, 0xb
mov cx, word [ebp + 0x200]
movzx eax, cx
imul ebx, eax
cmp edi, ebx
jae 0x4248c1
mov dword [esp + 0x48], ebx
mov ebx, 0x800
sub ebx, eax
mov eax, edx
sar ebx, 5
cmp dword [esp + 0x3c], 0
lea ebx, [ecx + ebx]
mov word [ebp + 0x200], bx
je 0x4248e1
jmp 0x4248ef
lea eax, [edx + 1]
sub dword [esp + 0x48], ebx
sub edi, ebx
mov ebx, ecx
shr bx, 5
sub cx, bx
cmp dword [esp + 0x3c], 0
mov word [ebp + 0x200], cx
je 0x4248ef
cmp eax, 0xff
jle 0x424844
jmp 0x424968
cmp eax, 0xff
jg 0x424968
mov ebp, dword [esp + 0x14]
lea edx, [eax + eax]
add ebp, edx
cmp dword [esp + 0x48], 0xffffff
ja 0x424922
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
shl edi, 8
movzx eax, byte [esi]
inc esi
or edi, eax
mov ebx, dword [esp + 0x48]
shr ebx, 0xb
mov cx, word [ebp]
movzx eax, cx
imul ebx, eax
cmp edi, ebx
jae 0x424950
mov dword [esp + 0x48], ebx
mov ebx, 0x800
sub ebx, eax
sar ebx, 5
mov eax, edx
lea ebx, [ecx + ebx]
mov word [ebp], bx
jmp 0x4248ef
lea eax, [edx + 1]
sub dword [esp + 0x48], ebx
sub edi, ebx
mov ebx, ecx
shr bx, 5
sub cx, bx
mov word [ebp], cx
jmp 0x4248ef
mov ecx, dword [esp + 0xa0]
mov ebx, eax
mov edx, dword [esp + 0x74]
mov byte [esp + 0x73], bl
mov byte [edx + ecx], bl
inc edx
cmp dword [esp + 0x60], 3
mov dword [esp + 0x74], edx
jg 0x424995
mov dword [esp + 0x60], 0
jmp 0x4250b0
cmp dword [esp + 0x60], 9
jg 0x4249a6
add dword [esp + 0x60], 0xfffffffd
jmp 0x4250b0
sub dword [esp + 0x60], 6
jmp 0x4250b0
mov ebx, dword [esp + 0x60]
sub edi, eax
mov ecx, dword [esp + 0x48]
sub ecx, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov word [ebp], dx
mov ebp, dword [esp + 0x78]
lea ebx, [ebp + ebx*2]
mov dword [esp + 0x38], ebx
cmp ecx, 0xffffff
ja 0x4249f3
cmp esi, dword [esp + 0x4c]
je 0x4250d8
movzx ebx, byte [esi]
shl edi, 8
shl ecx, 8
inc esi
or edi, ebx
mov eax, ecx
mov ebx, dword [esp + 0x38]
mov dx, word [ebx + 0x180]
shr eax, 0xb
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0x424a5f
mov ecx, dword [esp + 0x54]
mov ebx, eax
mov eax, 0x800
sub eax, ebp
mov ebp, dword [esp + 0x58]
sar eax, 5
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 0x424cd3
mov ebp, ecx
mov ebx, edx
mov ecx, dword [esp + 0x38]
sub edi, eax
sub ebp, eax
shr bx, 5
sub dx, bx
cmp ebp, 0xffffff
mov word [ecx + 0x180], dx
ja 0x424a97
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl edi, 8
movzx edx, byte [esi]
shl ebp, 8
inc esi
or edi, edx
mov edx, ebp
shr edx, 0xb
mov eax, dword [esp + 0x38]
mov cx, word [eax + 0x198]
movzx eax, cx
imul edx, eax
cmp edi, edx
jae 0x424b98
mov ebp, 0x800
sub ebp, eax
mov eax, ebp
mov dword [esp + 0x34], 0x800
sar eax, 5
mov ebx, edx
lea eax, [ecx + eax]
mov ecx, dword [esp + 0x38]
mov word [ecx + 0x198], ax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x44]
shl ecx, 5
add ecx, dword [esp + 0x78]
lea ebp, [ecx + eax*2]
cmp edx, 0xffffff
ja 0x424b09
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl edi, 8
movzx ecx, byte [esi]
shl ebx, 8
inc esi
or edi, ecx
mov dx, word [ebp + 0x1e0]
mov eax, ebx
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0x424b7f
sub dword [esp + 0x34], ecx
sar dword [esp + 0x34], 5
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x74], 0
lea eax, [edx + ecx]
mov word [ebp + 0x1e0], ax
je 0x4250d8
xor eax, eax
cmp dword [esp + 0x60], 6
setg al
mov edx, dword [esp + 0x74]
lea eax, [eax + eax + 9]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x74]
sub ebx, dword [esp + 0x5c]
mov bl, byte [ecx + ebx]
mov byte [esp + 0x73], bl
mov byte [edx + ecx], bl
inc edx
mov dword [esp + 0x74], edx
jmp 0x4250b0
mov ecx, edx
sub ebx, eax
sub edi, eax
shr cx, 5
sub dx, cx
mov word [ebp + 0x1e0], dx
jmp 0x424cb7
mov eax, ecx
mov ebx, dword [esp + 0x38]
sub ebp, edx
shr ax, 5
sub cx, ax
sub edi, edx
mov word [ebx + 0x198], cx
cmp ebp, 0xffffff
ja 0x424bce
cmp esi, dword [esp + 0x4c]
je 0x4250d8
movzx ecx, byte [esi]
shl edi, 8
shl ebp, 8
inc esi
or edi, ecx
mov ebx, dword [esp + 0x38]
mov dx, word [ebx + 0x1b0]
movzx ecx, dx
mov eax, ebp
shr eax, 0xb
imul eax, ecx
cmp edi, eax
jae 0x424c0b
mov ebx, eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
lea eax, [edx + eax]
mov ecx, dword [esp + 0x38]
mov word [ecx + 0x1b0], ax
mov ecx, dword [esp + 0x58]
jmp 0x424cab
sub edi, eax
mov ecx, ebp
mov ebp, dword [esp + 0x38]
sub ecx, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov word [ebp + 0x1b0], dx
cmp ecx, 0xffffff
ja 0x424c43
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl edi, 8
shl ecx, 8
movzx eax, byte [esi]
inc esi
or edi, eax
mov eax, ecx
shr eax, 0xb
mov ebx, dword [esp + 0x38]
mov dx, word [ebx + 0x1c8]
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0x424c7d
mov ecx, 0x800
sub ecx, ebp
sar ecx, 5
mov ebx, eax
lea ecx, [edx + ecx]
mov eax, dword [esp + 0x38]
mov word [eax + 0x1c8], cx
mov ecx, dword [esp + 0x54]
jmp 0x424ca3
sub edi, eax
mov ebx, ecx
sub ebx, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov eax, dword [esp + 0x38]
mov word [eax + 0x1c8], dx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ebp
xor eax, eax
cmp dword [esp + 0x60], 6
mov ecx, dword [esp + 0x78]
setg al
lea eax, [eax + eax*2 + 8]
mov dword [esp + 0x60], eax
sub ecx, 0xfffff598
cmp ebx, 0xffffff
ja 0x424cf1
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl edi, 8
shl ebx, 8
movzx eax, byte [esi]
inc esi
or edi, eax
mov eax, ebx
mov dx, word [ecx]
shr eax, 0xb
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0x424d32
mov dword [esp + 0x48], eax
mov ebx, 0x800
sub ebx, ebp
shl dword [esp + 0x44], 4
sar ebx, 5
lea ebx, [edx + ebx]
mov dword [esp + 0x2c], 0
mov word [ecx], bx
mov ebp, dword [esp + 0x44]
lea ecx, [ecx + ebp + 4]
mov dword [esp + 0x10], ecx
jmp 0x424da4
sub ebx, eax
sub edi, eax
mov eax, edx
shr ax, 5
sub dx, ax
mov word [ecx], dx
cmp ebx, 0xffffff
ja 0x424d60
cmp esi, dword [esp + 0x4c]
je 0x4250d8
movzx ebp, byte [esi]
shl edi, 8
shl ebx, 8
inc esi
or edi, ebp
mov eax, ebx
shr eax, 0xb
mov dx, word [ecx + 2]
movzx ebp, dx
imul eax, ebp
cmp edi, eax
jae 0x424dae
mov ebx, 0x800
sub ebx, ebp
mov dword [esp + 0x48], eax
shl dword [esp + 0x44], 4
sar ebx, 5
mov dword [esp + 0x2c], 8
mov ebp, dword [esp + 0x44]
lea ebx, [edx + ebx]
mov word [ecx + 2], bx
lea ecx, [ecx + ebp + 0x104]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], 3
jmp 0x424ddd
sub ebx, eax
mov dword [esp + 0x48], ebx
sub edi, eax
mov dword [esp + 0x2c], 0x10
mov dword [esp + 0x30], 8
mov eax, edx
shr ax, 5
sub dx, ax
mov word [ecx + 2], dx
sub ecx, 0xfffffdfc
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov edx, 1
mov dword [esp + 0x28], eax
lea ebp, [edx + edx]
mov eax, dword [esp + 0x10]
add eax, ebp
cmp dword [esp + 0x48], 0xffffff
ja 0x424e15
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
shl edi, 8
movzx ebx, byte [esi]
inc esi
or edi, ebx
mov dx, word [eax]
movzx ecx, dx
mov ebx, dword [esp + 0x48]
shr ebx, 0xb
imul ebx, ecx
cmp edi, ebx
jae 0x424e41
mov dword [esp + 0x48], ebx
mov ebx, 0x800
sub ebx, ecx
sar ebx, 5
lea ebx, [edx + ebx]
mov word [eax], bx
mov edx, ebp
jmp 0x424e56
sub dword [esp + 0x48], ebx
sub edi, ebx
mov ebx, edx
shr bx, 5
sub dx, bx
mov word [eax], dx
lea edx, [ebp + 1]
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x424dea
mov ebp, 1
mov cl, byte [esp + 0x30]
shl ebp, cl
sub edx, ebp
add edx, dword [esp + 0x2c]
cmp dword [esp + 0x60], 3
mov dword [esp + 0xc], edx
jg 0x425068
mov eax, edx
sub dword [esp + 0x60], 0xfffffff9
cmp edx, 3
jle 0x424e92
mov eax, 3
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x24], 6
shl eax, 7
lea eax, [ebp + eax + 0x360]
mov dword [esp + 8], eax
mov eax, 1
lea ebp, [eax + eax]
mov ecx, dword [esp + 8]
add ecx, ebp
cmp dword [esp + 0x48], 0xffffff
ja 0x424edc
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
movzx eax, byte [esi]
shl edi, 8
inc esi
or edi, eax
mov ebx, dword [esp + 0x48]
mov dx, word [ecx]
movzx eax, dx
shr ebx, 0xb
imul ebx, eax
cmp edi, ebx
jae 0x424f08
mov dword [esp + 0x48], ebx
mov ebx, 0x800
sub ebx, eax
mov eax, ebp
sar ebx, 5
lea ebx, [edx + ebx]
mov word [ecx], bx
jmp 0x424f1d
lea eax, [ebp + 1]
sub dword [esp + 0x48], ebx
sub edi, ebx
mov ebx, edx
shr bx, 5
sub dx, bx
mov word [ecx], dx
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x24], ecx
jne 0x424eb1
lea edx, [eax - 0x40]
cmp edx, 3
mov dword [esp], edx
jle 0x42505e
mov ebp, edx
mov eax, edx
sar eax, 1
and ebp, 1
or ebp, 2
lea ecx, [eax - 1]
cmp edx, 0xd
mov dword [esp + 0x20], ecx
jg 0x424f6b
mov ebx, dword [esp + 0x78]
shl ebp, cl
mov dword [esp], ebp
lea eax, [ebx + ebp*2]
add edx, edx
sub eax, edx
add eax, 0x55e
mov dword [esp + 4], eax
jmp 0x424fc1
lea edx, [eax - 5]
cmp dword [esp + 0x48], 0xffffff
ja 0x424f90
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
movzx ebx, byte [esi]
shl edi, 8
inc esi
or edi, ebx
shr dword [esp + 0x48], 1
add ebp, ebp
cmp edi, dword [esp + 0x48]
jb 0x424fa3
sub edi, dword [esp + 0x48]
or ebp, 1
dec edx
jne 0x424f6e
mov eax, dword [esp + 0x78]
shl ebp, 4
mov dword [esp], ebp
mov dword [esp + 0x20], 4
sub eax, 0xfffff9bc
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 1
mov eax, 1
add eax, eax
mov ebp, dword [esp + 4]
mov dword [esp + 0x18], eax
add ebp, eax
cmp dword [esp + 0x48], 0xffffff
ja 0x424ffc
cmp esi, dword [esp + 0x4c]
je 0x4250d8
shl dword [esp + 0x48], 8
movzx ecx, byte [esi]
shl edi, 8
inc esi
or edi, ecx
mov dx, word [ebp]
movzx ecx, dx
mov ebx, dword [esp + 0x48]
shr ebx, 0xb
imul ebx, ecx
cmp edi, ebx
jae 0x42502c
mov dword [esp + 0x48], ebx
mov ebx, 0x800
sub ebx, ecx
sar ebx, 5
lea ebx, [edx + ebx]
mov word [ebp], bx
mov eax, dword [esp + 0x18]
jmp 0x42504b
mov ecx, edx
sub dword [esp + 0x48], ebx
mov eax, dword [esp + 0x18]
sub edi, ebx
shr cx, 5
sub dx, cx
mov word [ebp], dx
inc eax
mov edx, dword [esp + 0x1c]
or dword [esp], edx
mov ebx, dword [esp + 0x20]
shl dword [esp + 0x1c], 1
dec ebx
mov dword [esp + 0x20], ebx
jne 0x424fce
mov eax, dword [esp]
inc eax
mov dword [esp + 0x5c], eax
je 0x4250c1
mov eax, dword [esp + 0xc]
sub eax, 0xfffffffe
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x5c], ebp
ja 0x4250d8
mov edx, ebp
mov ecx, dword [esp + 0xa0]
sub ecx, dword [esp + 0x5c]
lea ebx, [ecx + ebp]
add edx, dword [esp + 0xa0]
mov cl, byte [ebx]
mov byte [esp + 0x73], cl
inc ebx
mov byte [edx], cl
inc edx
inc dword [esp + 0x74]
dec eax
je 0x4250b0
mov ebp, dword [esp + 0xa4]
cmp dword [esp + 0x74], ebp
jb 0x425090
jmp 0x4250c1
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x74], eax
jb 0x42477c
cmp dword [esp + 0x48], 0xffffff
ja 0x4250e0
cmp esi, dword [esp + 0x4c]
mov ebp, 1
je 0x4250ff
jmp 0x4250df
mov ecx, 1
jmp 0x4250ff
inc esi
sub esi, dword [esp + 0x94]
xor ecx, ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x9c]
mov dword [edx], esi
mov eax, dword [esp + 0xa8]
mov dword [eax], ecx
add esp, 0x7c
pop ebx
pop ebp
pop eax
add ebp, dword [ebx - 4]
pop esi
add eax, dword [ebx - 8]
lea ebp, [esp - 0x100]
mov esp, esi
xor eax, eax
push eax
cmp esp, ebp
jne 0x425117
xor ecx, ecx
mov esp, esi
pop ebp
mov edi, ebp
mov ecx, 0xc8
mov al, byte [edi]
inc edi
add al, 0x18
cmp al, 1
ja 0x425128
cmp byte [edi], 4
jne 0x425128
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg al, ah
sub eax, edi
sub bl, 0xe8
add eax, ebp
mov dword [edi], eax
mov al, bl
add edi, 5
loop 0x42512d
lea edi, [ebp + 0x22000]
mov eax, dword [edi]
test eax, eax
je 0x42519c
lea eax, [eax + ebp + 0x25000]
mov ebx, dword [edi + 4]
push eax
add ebx, ebp
add edi, 8
call dword [ebp + 0x25064]
xchg esi, eax
mov al, byte [edi]
inc edi
or al, al
je 0x42515a
mov ecx, edi
dec eax
push edi
repne scasb al, byte es:[edi]
push esi
call dword [ebp + 0x25068]
test eax, eax
je 0x425196
mov dword [ebx], eax
sub ebx, 0xfffffffc
jmp 0x425177
call dword [ebp + 0x25078]
mov ebx, dword [ebp + 0x2506c]
push eax
push esp
lea edi, [ebp - 0x1000]
mov ebp, 0x1000
push 4
push ebp
push edi
call ebx
lea eax, [edi + 0x1ef]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebp
push edi
call ebx
pop edx
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x4251d0
sub esp, 0xffffff80
jmp section.UPX0