Function at 0x40e480
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 0xc], 1
push ebx
mov ebx, dword [ebp + 0x10]
push esi
jne 0x41251b
stosb byte es:[edi], al
inc ebp
adc al, 0x89
jge 0x40e4a8
add esi, dword [ebp + 0x10]
add ecx, dword [ebx - 0x3ef48a10]
cmpsb byte [esi], byte es:[edi]
add cl, byte [ebx + 0x416d90a7]
add bl, ch
or ecx, eax
out 2, al
mov eax, dword [esi + 0x416dc4]
mov edx, ebx
lodsd eax, dword [esi]
dec eax
cmp dword [ecx - 0x2e], 0x16d
lea eax, [ebx - 1]
push edi
sar eax, 2
mov edi, ecx
push 7
add edi, eax
lea eax, [edx + edi - 0x63db]
pop edi
cdq
idiv edi
mov eax, dword [ebp + 0x19]
pop edi
mov ebx, 0xe7f0c55
arpl cx, ax
pop ss
sub eax, dword [edx - 0x72e3baf5]
dec esp
add ecx, edi
jmp 0x40e4f8
sub dword [ebp + 0x1a], 5
jge 0x40e536
mov dword [0xf5003079], eax
sbb byte [ebx + 0x416d94b6], cl
add bl, ch
push es
mov esi, dword [esi + 0x416dc8]
cmp ecx, esi
jle 0x40e536
sub ecx, 7
stosd dword es:[edi], eax
sbb ecx, dword [ebx - 0x3c09eb9c]
add esi, dword [ebp + 9]
mov ecx, dword [eax*4 + 0x456d90]
sti
add eax, 0xc4870c8b
inc eax
add byte [ebx], al
dec ebp
and byte [ebx + 0x7501087d], al
sub ecx, dword [ebx - 0x7e74d8bb]
jne 0x40e5af
cmp dword [ebp + 8], 1
jne 0x40e567
mov eax, dword [ebp + 0x27]
mov eax, dword [ecx + 0x416c75]
imul eax, eax, 0x3c
add al, byte [ebp - 0x54]
inc ecx
add byte [ebx - 0x40], ch
cmp al, 2
inc ebp
lodsb al, byte [esi]
mov dword [0x1416d78], ebx
imul eax, dword [esp + edi + 3], 0x45
sub al, 0x69
shr al, 3
add byte [eax], al
add eax, dword [ebp + 0x30]
mov dword [0xc56d81], eax
jmp 0x40e5bc
mov eax, dword [ebp + 0x24]
mov dword [0x416d8c], ecx
imul eax, dword [eax + 0x28e0033d], 0x6b
sar byte [ebx + eax], 5
call 0x434126ec
inc ebp
sub al, 0x48
invalid
add byte [ecx + 0x41e98c0c], cl
add cl, cl
sbb eax, 0x494c88
jle 0x40e61d
pop ebp
ret
sar dword [ebx + 0x15180], 0x9b
mov esi, ebx
idiv bh
mov edx, eax
mov dword [0x41751c], eax
imul edx, edx, 0xfffeae80
add ecx, edx
test esi, esi
mov esi, 0x416d94
jne 0x40e645
dec al
insd dword es:[edi], dx
pushal
add byte [edx + 1], ch
push 1
lea edi, [esi + 4]
pop edx
cmp dword [edi], eax
jge 0x40e655
inc edx
add edi, 4
jmp 0x40e64b
dec edx
push 7
mov dword [0x417510], edx
sub eax, dword [esi + ebx*4]
push ds
dec edx
cmp byte [edx + 0x41750c], al
mov eax, dword [ebp]
fincstp
sti
mov byte [0xf79904c0], al
dec byte [ebx + 0x4c10be41]
add byte [eax], al
mov dword [0x417518], edx
cdq
idiv esi
pop esi
pop esi
jnp 0x40e6b0
mov byte [ebp + 0x41], ah
add byte [ecx - 0x40], ch
invalid
add byte [eax + 0xc57501], bh
pop esi
pop ebp
ret
add byte [edx + 0x75], dh
jb 0x412593
outsb dx, byte [esi]
je 0x41258a
insd dword es:[edi], dx
and byte gs:[ebp + 0x72], ah
jb 0x412597
jb 0x41254a
add byte [eax], al
push esp
dec esp
dec edi
push ebx
push ebx
and byte [ebp + 0x72], ah
jb 0x4125a5
jb 0x412545
or al, byte [eax]
add byte [eax], al
push ebx
dec ecx
dec esi
inc edi
and byte [ebp + 0x72], ah
jb 0x4125b4
jb 0x412554
or al, byte [eax]
add byte [eax], al
add byte [edi + ecx*2 + 0x4d], al
inc esp
dec edi
dec ebp
add byte [eax], al
inc esp
dec edi
dec ebp
inc ecx
dec ecx
dec esi
and byte [ebp + 0x72], ah
jb 0x4125c6
jb 0x4125c8
outsd dx, dword [esi]
jb 0x412566
or al, byte [eax]
add byte [edx + 0x36], dl
push edx
xor byte ss:[edx], dh
cmp byte [0x75202d0a], cl
outsb dx, byte [esi]
popal
bound ebp, qword [ebp + 0x20]
je 0x4125dd
and byte [ecx + 0x6e], ch
imul esi, dword [ecx + ebp*2 + 0x61], 0x657a696c
and byte [eax + 0x65], ch
popal
jo 0x41258c
or al, byte [eax]
add byte [eax], al
add byte [edx + 0x36], dl
push edx
xor byte ss:[edx], dh
aaa
or eax, 0x6e202d0a
outsd dx, dword [esi]
or ch, byte [0x746f6e20]
and byte [ebp + 0x6e], ah
and byte [esi + 0x6f], ch
je 0x4125b1
outsb dx, byte gs:[esi]
outsd dx, dword [esi]
jne 0x4125fd
push 0x61707320
and byte [ebx + 0x70], dh
popal
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
jb 0x4125c2
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x41260f
imul ebp, dword [edi + 0x20], 0x74696e69
imul esp, dword [ecx + 0x6c], 0x74617a69
imul ebp, dword [edi + 0x6e], 0xa0d
add byte [eax], al
push edx
xor byte ss:[edx], dh
outsd dx, dword [esi]
and byte [ecx + 0x6e], ch
imul esi, dword [ecx + ebp*2 + 0x61], 0x617a696c
popal
je 0x41261d
outsd dx, dword [esi]
outsb dx, byte [esi]
or eax, 0xa
add byte [edx + 0x36], dl
push edx
xor byte ss:[edx], dh
or eax, 0x6e202d0a
or ch, byte [0x746f6e20]
outsd dx, dword [esi]
je 0x4125e9
and byte [ebp + 0x6e], ah
outsb dx, byte gs:[esi]
outsd dx, dword [esi]
jne 0x412635
push 0x61707320
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
jb 0x4125fa
jae 0x412650
imul ebp, dword fs:[edi + 0x20], 0x74696e69
imul ebp, dword [edi + 0x20], 0x74696e69
imul esp, dword [ecx + 0x6c], 0x74617a69
imul ebp, dword [edi + 0x6e], 0xa0d
add byte [eax], al
push edx
xor byte ss:[edx], dh
popal
je 0x412655
outsd dx, dword [esi]
outsb dx, byte [esi]
or eax, 0xa
add byte [edx + 0x36], dl
push edx
xor byte ss:[edx], dh
xor eax, 0x202d0a0d
or ch, byte [0x72757020]
and byte gs:[esi + 0x69], dh
jo 0x412674
jb 0x412666
and byte [esi + 0x69], dh
jb 0x41267a
jne 0x412669
insb byte es:[edi], dx
and byte [esi + 0x75], ah
outsb dx, byte [esi]
arpl word [ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
and byte [ebx + 0x61], ah
insb byte es:[edi], dx
imul ebp, dword [edi + 0x6e], 0x6c616320
insb byte es:[edi], dx
or eax, 0xa
push edx
xor byte ss:[edx], dh
xor al, 0xd
or ch, byte [0x746f6e20]
and byte [ebp + 0x6e], ah
outsd dx, dword [esi]
jne 0x412695
push 0x61707320
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
and byte [esi + 0x6f], ah
jb 0x41265a
pop edi
outsd dx, dword [esi]
outsb dx, byte [esi]
js 0x4126a9
je 0x412671
popal
je 0x4126aa
js 0x4126b0
je 0x412669
je 0x4126ac
bound ebp, qword [ebp + 0xd]
or al, byte [eax]
add byte [eax], al
add byte [edx + 0x36], dl
push edx
xor byte ss:[ecx], dh
add byte [eax], al
add byte [eax], al
push edx
xor byte ss:[ecx], dh
cmp dword [0x75202d0a], ecx
outsb dx, byte [esi]
popal
or ch, byte [0x616e7520]
bound ebp, qword [ebp + 0x20]
je 0x4126d5
and byte [edi + 0x70], ch
outsb dx, byte gs:[esi]
and byte [ebx + 0x6f], ah
outsb dx, byte [esi]
jae 0x4126e0
insb byte es:[edi], dx
and byte gs:[ebp + 0x76], ah
imul esp, dword [ebx + 0x65], 0xa0d
add byte [eax], al
push edx
xor byte ss:[ecx], dh
jbe 0x4126e1
arpl word [ebp + 0xd], sp
or al, byte [eax]
add byte [eax], al
or eax, 0xa
add byte [edx + 0x36], dl
push edx
xor byte ss:[ecx], dh
cmp byte [0x75202d0a], cl
outsb dx, byte [esi]
js 0x4126fe
arpl word gs:[ebp + 0x64], si
and byte [eax + 0x65], ch
popal
popal
jo 0x4126b9
jb 0x41270e
outsd dx, dword [esi]
jb 0x4126ac
or al, byte [eax]
add byte [eax], al
add byte [edx + 0x36], dl
push edx
xor byte ss:[ecx], dh
aaa
or eax, 0x75202d0a
outsb dx, byte [esi]
or ch, byte [0x656e7520]
and byte [ebp + 0x6e], dh
js 0x412722
js 0x412722
arpl word gs:[ebp + 0x64], si
and byte [ebp + 0x75], ch
insb byte es:[edi], dx
jne 0x412727
je 0x412726
je 0x412727
jb 0x412726
popal
and byte fs:[edi + ebp*2 + 0x63], ch
imul esp, dword [eax], 0x65
jb 0x41273e
outsd dx, dword [esi]
jb 0x4126dc
or al, byte [eax]
add byte [eax], al
add byte [edx + 0x36], dl
push edx
xor byte ss:[ecx], dh
xor byte ss:[ecx], dh
or eax, 0x6e202d0a
outsd dx, dword [esi]
and byte [esi + 0x6f], ch
je 0x412701
and byte [ebp + 0x6e], ah
outsb dx, byte gs:[esi]
outsd dx, dword [esi]
jne 0x41274d
push 0x61707320
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
jb 0x412712
je 0x41275c
jb 0x41275b
popal
and byte fs:[ecx + 0x74], ah
popal
or eax, 0xa0d000a
or eax, 0x6e62610a
outsd dx, dword [esi]
or al, byte [eax]
or eax, 0x6e62610a
or ah, byte [ecx + 0x62]
outsb dx, byte [esi]
outsd dx, dword [esi]
jb 0x412775
popal
insb byte es:[edi], dx
and byte [eax + 0x72], dh
outsd dx, dword [esi]
jb 0x412772
insd dword es:[edi], dx
and byte [ebp + 0x72], dh
insd dword es:[edi], dx
imul ebp, dword [esi + 0x61], 0x6e6f6974
or eax, 0xa
add byte [edx + 0x36], dl
push edx
invalid
add byte [eax], al
push edx
xor byte ss:[eax], dh
xor byte [eax], dh
xor byte [ecx], bh
or eax, 0x6e202d0a
cmp dword [0x6e202d0a], ecx
outsd dx, dword [esi]
je 0x412751
outsb dx, byte gs:[esi]
outsd dx, dword [esi]
jne 0x41279d
push 0x61707320
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
jb 0x412762
outsb dx, byte gs:[esi]
jbe 0x4127af
jb 0x4127b7
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x41275b
or eax, 0x3652000a
push edx
xor byte ss:[eax], dh
or al, byte [eax]
push edx
xor byte ss:[eax], dh
cmp byte [0x6e202d0a], cl
outsd dx, dword [esi]
je 0x41277d
and byte [ebp + 0x6e], ah
outsb dx, byte gs:[esi]
outsd dx, dword [esi]
jne 0x4127c9
push 0x61707320
arpl word [ebp + 0x20], sp
outsw dx, word [esi]
jb 0x41278e
popal
jb 0x4127d8
jne 0x4127e0
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x4127ea
or eax, 0xa
push edx
xor byte ss:[eax], dh
xor cl, byte [0x66202d0a]
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
je 0x4127f4
outsb dx, byte [esi]
and byte [bx + si + 0x6f], dh
jo 0x4127ff
imul ebp, dword [esi + 0x74], 0x746f6e20
and byte [edi + ebp*2 + 0x61], ch
or eax, 0xa
or eax, 0xa
add byte [ebp + 0x69], cl
dec ebp
invalid
arpl word [edx + 0x6f], si
jae 0x41281a
je 0x4127ce
push esi
imul esi, dword [ebx + 0x75], 0x43206c61
sub ebp, dword [ebx]
and byte [edx + 0x75], dl
outsb dx, byte [esi]
sub esp, dword [eax]
push edx
jne 0x41282a
je 0x412827
insd dword es:[edi], dx
and byte gs:[ecx + ebp*2 + 0x62], cl
jb 0x412827
jb 0x412841
add byte [eax], al
add byte [eax], al
or cl, byte [edx]
add byte [eax], al
add byte [edx], cl
or al, byte [eax]
add byte [edx + 0x75], dl
push edx
jne 0x412841
add byte [eax], al
push edx
jne 0x412841
je 0x41283e
insd dword es:[edi], dx
and byte gs:[ebp + 0x72], al
jb 0x41284b
inc ebp
jb 0x41284d
outsd dx, dword [esi]
jb 0x4127ff
or cl, byte [edx]
push eax
jb 0x412852
jb 0x412847
insd dword es:[edi], dx
cmp ah, byte [eax]
add byte [eax], al
add byte [esi], ch
add byte cs:[eax + esi*2], bh
cmp al, 0x70
add byte [eax], al
add byte cs:[eax + esi*2], bh
cmp al, 0x70
jb 0x412863
jb str.GetLastActivePopup
insd dword es:[edi], dx
and byte [esi + 0x61], ch
insd dword es:[edi], dx
and byte gs:[ebp + 0x6e], dh
outsb dx, byte [esi]
imul ebp, dword [esi + 0x6f], 0x77
outsb dx, byte [esi]
add byte ds:[eax], al
push esp
jne 0x412882
push edi
push esp
push 0x69724675
push ebx
popal
je 0x41282a
add byte [eax], al
dec edx
popal
outsb dx, byte [esi]
inc esi
bound ecx, qword gs:[ebp + 0x61]
jb 0x412877
jo 0x4128aa
dec ebp
popal
jns 0x412886
jne str.1SNAN
dec edx
jne 0x4128ad
inc ecx
jne 0x4128ab
push ebx
jo 0x412897
dec edi
arpl word [esi + ecx*2 + 0x6f], si
outsd dx, dword [esi]
jbe 0x412892
inc esp
arpl word gs:[eax], ax
add byte [eax], al
add byte [edx + ebx*2], dl
add byte [edi + 0x65], al
inc edi
je 0x4128a8
add byte [eax], al
push esp
pop edx
add byte [eax], al
inc edi
je 0x4128a8
popal
jae 0x4128d3
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
push eax
jbe 0x4128ca
push eax
outsd dx, dword [esi]
jo 0x4128de
jo 0x41286b
add byte [edi + 0x65], al
inc edi
je 0x4128b1
arpl word [ecx + ebp*2 + 0x76], si
push edi
imul ebp, dword [esi + 0x64], 0x4d00776f
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x41287c
dec ebp
jae 0x4128f3
popal
inc edx
inc edx
outsd dx, dword [esi]
js 0x4128c8
inc ecx
add byte [ebp + 0x73], dh
jne 0x4128fd
jb 0x4128c0
xor ch, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [eax], al
xor dword [ebx], esp
push ecx
dec esi
inc ecx
dec esi
add byte [eax], al
xor dword [ebx], esp
dec ecx
dec esi
inc esi
add byte [eax], al
add byte [ecx], dh
xor dword [ebx], esp
dec ecx
dec esi
inc esp
add byte [eax], al
add byte [eax], al
add byte [ecx], dh
invalid
xor dword [ebx], esp
push ebx
dec esi
and edx, dword [ebx + 0x4e]
inc ecx
dec esi
add byte [eax], al
add byte [eax], al
add byte [eax], al
cmp cl, bh
inc eax
add bh, bh
invalid
mov dword [0xa70040f9], eax
stc
inc eax
add al, al
inc eax
add byte [edi - 0x3fffbf07], ah
inc ebx
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, bh
invalid
invalid
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, ch
sub byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rol byte [ebx + 0x41], 0
lock sub byte [ecx], al
add byte [eax], al
add byte [eax], al
sbb byte [ecx + eax*2], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al