Function at 0x407990
Capabilities:
Packed with generic packer

Disassembly:
stosd dword es:[edi], eax
xor esp, dword [eax + 0x4564aef2]
aam 0xf7
shl dword [ebp + 0x4d899985], 1
cld
and al, 0x22
push 0x2e
push esi
call dword [sym.imp.MSVCRT.dll_strchr]
sub dword [eax + 0x75c08508], 0x3d
test al, 8
test eax, eax
jne 0x4077cc
mov eax, dword [ebp - 4]
mov byte [eax + esi], 0x2e
mov eax, dword [ebp - 4]
inc eax
mov edx, ecx
cld
mov byte [eax + esi], 0
int3
cmp byte [ecx], 0x47
jne 0x40776d
push 0x65
push esi
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x40780c
mov byte [eax], 0x45
mov al, byte [ebp - 5]
test byte [edx - 0x17ee38c], al
jns 0x407789
add byte cs:[esp + edx - 0x73], dh
inc ebp
ljmp 0x4d8a
and eax, dword [ebp - 0x34]
je 0x4077a4
je 0x407af8
cmp dword [ebp - 0x40], 1
invalid
mov al, byte [ebp - 5]
pop ecx
mov ebx, 0x208e6e0f
fadd qword [eax]
invalid
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
mov bh, byte [edx - 0x7c3741f0]
stc
je 0x40791a
xchg dword [ebx + 1], esp
add byte [eax], al
xor edx, edx
and dl, byte [ecx + 0x407c51]
adc dword [ecx], ebp
xchg ebp, eax
cmp byte [eax + eax*2], 0x8b
add ecx, dword [ebp - 0x3c7c03b3]
das
lea edx, [ebp - 0x54]
push ecx
push edx
push 0x78
in al, dx
sbb edx, dword [eax - 0x18]
pop edx
or al, 0
add byte [ebx - 0xf74eb3c], al
invalid
mov esp, dword [ecx - 0x75]
inc ebp
in al, 0x83
les ecx, [eax*4 - 0x2a7bf040]
add byte [eax], al
jnp 0x4078fb
inc ebp
insd dword es:[edi], dx
mov ecx, dword [ebp - 4]
cmp esi, dword [ebx + 0xf]
xor dword [eax], 0
add byte [eax], al
mov dword [eax], eax
cld
mov byte [ebp + 0x17], 0x20
jmp 0x4077df
popfd
jg 0x4079db
dec ebp
cld
lea edx, [ebp - 0x64]
push ecx
push edx
push eax
sub al, 0x80
fild word [eax]
add bl, ch
mov ebp, 0xc383038b
add al, 0xcd
sal byte [esi + 0x62], 0x10
lea ecx, [ebp - 0x269]
push 0x30001a4
push ecx
cmp al, 4
and dword [edi - 0xfb0ff65], esi
sub dword [edi + edi*8 - 0x3fcc0175], 0x7a
scasb al, byte es:[edi]
mov edx, ecx
dec ecx
mov byte [ebp + 0x17], 0x20
mov dword [ebp - 4], ecx
cmp al, 6
invalid
add ebx, 4
sbb eax, eax
scasb al, byte es:[edi]
das
lea ecx, [ecx - 0xc]
lea edx, [ebp - 0x54]
mov edx, 0x50495052
push ebx
add byte [eax], al
jmp 0x40795f
mov dword [ebp - 4], 2
lds eax, [ebp + 0x17]
and cl, ch
cmp bh, ch
invalid
cmp byte fs:[ecx + 0x4af0ff9a], dh
add esp, 4
scasb al, byte es:[edi]
ror byte [edi], 0x85
invalid
adc byte [eax - 0x23], al
inc ebp
hlt
cld
test edi, edi
je 0x407b0e
test eax, eax
je 0x407ab3
cmp eax, dword [ebp - 0x24]
jb 0x407a95
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
push eax
mov dword [eax], ecx
call dword [ebp + 8]
or dword [ebp - 0x173f7afc], 0xffffff85
cmpsb byte [esi], byte es:[edi]
add byte [eax], al
or bh, bh
push ebp
or byte [ebx - 0x3f7afb73], al
call 0x4121a1
add byte [eax], cl
inc ebp
or al, 0xb0
adc byte [ebx + 0x45896940], cl
fmul qword [ecx + 0x4c8b9e55]
mov cl, byte [esi]
mov byte [eax], cl
inc eax
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x14]
inc ecx
call 0xec8e048d
jne 0x407ad1
mov esp, dword [ebx]
scasb al, byte es:[edi]
test dword [esp + esi*2 - 0x3fb273a8], esp
enter 0x75c9, 0x51
mov ecx, dword [ebx - 0x20]
clc
dec ebp
push 0x3b
sub ebx, dword [edx + 0x33762e47]
sar dword [ebx], 0x45
fdiv qword [edx + 0x20]
mov edi, dword [ebp + 0xc]
mov edi, dword [ecx + 0x22]
push edi
mov dword [edi], eax
call dword [ebp + 8]
add esp, 4
test eax, eax
jne 0x407bc3
fimul word [edi]
sub dword [edi + 4], edx
push ebx
dec ebp
inc ebp
out dx, eax
mov ah, bl
mov eax, ecx
mov cl, byte [ebp - 0x6f]
mov bh, al
inc eax
mov dword [ebp - 0x11], eax
mov esp, ebx
in al, dx
mov esp, edx
cld
inc ecx
push ecx
pop es
in al, dx
mov ecx, dword [ebp + 2]
dec ecx
cmp ebp, dword [esi - 0x78]
dec ebp
loopne 0x407c15
invalid
push ecx
pop esi
add dword [edi - 1], 0x5b
mov esp, ebp
pop ebp
adc byte [eax], al
nop
mov byte [0x7d00407b], al
pop edi
inc eax
add byte [ebp + 0x6a00cf3f], dl
ja 0x407c1f
add byte [ebp + 0x62004075], cl
fiadd dword [eax]
push esp
xchg ecx, eax
inc eax
add byte [esi - 0x6a], dh
inc eax
add bh, ch
je 0x407c33
add bl, bh
push ds
push ecx
xor byte [esi + esi*2], bh
or eax, 0x4073bd00
add byte [ebx + 0x407a], cl
or al, 0xc
or al, 0xc
fmul dword [esp + ecx]
or al, 0x22
or al, 1
or al, 0x23
adc ecx, dword [esp + ecx]
or al, 0x1d
scasd eax, dword es:[edi]
or al, 0xc
or al, 0xc
jmp 0x407c2a
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
add dword [edx], edx
or al, 0x45
or al, 0xc
or al, 0xc
adc cl, byte [eax*2 + 0xc0c0c0c]
or al, 0xc
in eax, 0xc
dec edi
test eax, 0xc0c0c0c
or al, 0xc
push ecx
or al, 0xc
or al, 0xd8
or al, 0xc
or al, 0xc
sub al, 0xc
add bh, byte [edx + 0xc0c0c03]
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 4
or al, 0xc
or al, 0xc
push ebp
or al, 0x9a
cmp cl, byte [esp + ecx]
add eax, 0x3f10206
or al, 0xbb
or al, 0x67
fsubr qword [ebp + 7]
or byte [ecx], cl
or al, 0x86
inc ecx
loope 0x407c85
or al, 0xc
add al, 0x8d
dec ecx
add byte [edx - 0x76ffb485], ah
jns 0x407cc7
add byte [edx + 0x7a], cl
inc eax
add byte [ecx + edi*2 + 0x40], al
add cl, bl
jns 0x407cef
pop es
mov byte [0x1f004055], al
jns 0x407d16
add byte [ebp + 0x73004079], bh
jp 0x407ce3
add byte [eax], al
or byte [edx], bl
or byte [eax + 0x8813b08], bh
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [esi + 0x8080808], bh
cmp eax, 0x808b008
or byte [ecx + 0x5408085e], dh
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
loop 0x407cd8
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or dl, ah
or bh, ch
out dx, eax
add al, 8
or byte [esi + 0x8080808], dh
or byte [eax], cl
or byte [eax], cl
or byte [eax], 8
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [edx + 0x8080808], al
or byte [eax], cl
ja 0x407ce7
or byte [edi + 1], dh
add ah, cl
or byte [edx + eax + 8], cl
loope 0x407cf1
dec esp
add cl, byte [eax]
or byte [ebx], al
or byte [eax], cl
or byte [eax], cl
or byte [eax + 8], bl
scasb al, byte es:[edi]
cmp al, 2
xlatb
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [ecx + 8], dh
or byte [eax], cl
or byte [eax], cl
pop eax
or byte [esi + 0x8d7023c], ch
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
jno 0x407d0a
mov byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [ebp + 8], bh
or byte [eax], cl
or bh, ch
or byte [eax], cl
or byte [eax], cl
out dx, eax
or byte [eax], cl
add eax, 0xdf060808
or byte [eax], cl
pop es
popal
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
jae 0x407d11
pop eax
aas
lea eax, [ebp - 0x58]
push edi
mov edi, dword [ebp - 0x33]
lea ecx, [ebp - 4]
push eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push edx
push edi
push eax
push ecx
call fcn.00407ec0
mov ecx, dword [ebp - 4]
adc byte [ebp + 0x14], 0x96
les ebx, [eax]
mov dword [ebp - 8], eax
cmp ecx, ecx
leave
mov esi, edx
je 0x407d5d
xor byte [edx], al
sub eax, 0x8d01728d
dec edi
call dword [ebx - 0x7b]
sar dword [esi + 0xf], 0x80
push cs
add dword [eax], esi
jne 0x407dc2
lea ecx, [edi - 1]
push ebx
test ecx, eax
jle 0x407d74
or byte [esi], 1
xor byte [ebp + 0x57], dh
dec edi
aaa
test ecx, ebx
jg 0x407d65
in al, 0x7d
adc byte [ebx - 0x247a37a3], cl
mov ebx, dword [ebp - 0x38]
test ebx, ebx
jl 0x407e33
mov ecx, ebx
jns 0x407d52
cmp ecx, 4
jg 0xca397e3c
test ebx, ebx
jg 0x407d9d
cmp byte [eax], 0xca
je 0x407d99
mov byte [esi], 0x2e
inc esi
test ebx, ebx
jge 0x407dde
mov ecx, ebx
bound esi, qword [ebx + 0x66]
xor byte [eax], dh
neg ecx
mov dword [ebp + 0xc], ecx
mov edx, ecx
sub al, 0x30
rcl dword [ecx], 0x24
rep stosd dword es:[edi], eax
mov ecx, edx
cmp dword [edi + edx*8], 0xfffffff3
stosb byte es:[edi], al
mov edi, dword [ebp + 0x10]
mov eax, edx
mov edx, dword [ebp - 0x4a]
sub eax, 0x8bf00300
call 0x2e9e07c3
mov ecx, 1
cmp edi, ecx
mov edx, dword [esi]
mov dl, byte [eax]
mov byte [ecx], ch
inc esi
inc eax
cmp ecx, ebx
jne 0x407de2
add byte [ebx], al
invalid
mov byte [esi], 0x44
inc esi
inc ecx
cmp ecx, edi
dec edx
in eax, dx
mov edi, dword [esp + edx + 0x4b]
or al, 0x7d
and ch, byte [ebx]
fistp qword [eax + 0x30303030]
mov ecx, ebx
mov edi, esi
mov edx, ecx
rcl dword [ecx - 0x74548bfe], 0xca
push ebx
loope 0x407dfa
rol ecx, 1
xchg ecx, eax
add dh, byte [ebx + ebp*4 - 0x75]
retf 0xe153
add ecx, dword [edx]
rep stosb byte es:[edi], al
invalid
cmp dword [edx], 0xfffffffd
jge 0x297d8c
wait
inc esi
pop ds
pop ebp
or al, 0x8a
cmp al, 0x88
push esi
inc eax
mov byte [esi], 0x2e
inc esi
cmp edi, 1
jle 0x407e5a
dec edi
mov bh, dh
mov byte [esi], cl
inc esi
inc eax
dec edi
xor dh, bh
mov byte [esi], 0x55
inc esi
test ebx, ebx
jge 0x407e69
xchg ebp, eax
fcmovnb st(0), st(6)
push es
sub eax, 0x6c603eb
fisttp qword [ebx + 0x6487d2]
add byte [ecx], cl
cdq
neg dword [edx]
inc esi
test eax, eax
mov edi, edx
mov byte [esi], 0xdd
mov edx, edx
xchg dword [eax + eax], esp
or dword [ecx - 0x7ab9e509], ebx
ror byte [ebx + 0x45b7efa], 0x30
jle 0x407ed8
add al, 0x30
pushal
push es
inc esi
mov eax, ebx
mov ebp, 0xa3000080
cdq
idiv ecx
test eax, eax
fmul st(2), st(0)
jle 0x407ea9
invalid