Function at 0x408a97
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x532d0b
mov eax, dword fs:[0]
push eax
sub esp, 0x320
mov eax, dword [0x581a60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push edi
lea ecx, [ebp - 0x324]
call fcn.004025a7
lea ecx, [ebp - 0x324]
mov dword [ebp - 4], 0
call 0x408d47
lea ecx, [ebp - 0x324]
call fcn.00406fe7
push 6
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x324]
call fcn.00401fe7
mov eax, dword [eax]
push 0x55fc94
push eax
call 0x50e230
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x328]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408b38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 5
test bl, bl
je 0x408b75
push edi
call dword [0x536430]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408b6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x408d1f
push 0
push 0
push edi
push 0x55ec64
push 0
call dword [0x5364f4]
mov dword [ebp - 0x328], eax
cmp eax, 0x20
ja 0x408cf0
lea ecx, [ebp - 0x320]
push ecx
push 1
push 0
push 0x55fc9c
push 0x80000000
call dword [0x536020]
test eax, eax
jne 0x408cf0
mov ecx, dword [ebp - 0x320]
mov esi, dword [0x536000]
lea edx, [ebp - 0x32c]
push edx
lea eax, [ebp - 0x31c]
push eax
push 0
push ecx
mov dword [ebp - 0x32c], 0x104
call esi
mov ebx, dword [0x536458]
lea edx, [ebp - 0x31c]
push edx
lea eax, [ebp - 0x218]
push eax
call ebx
mov ecx, dword [ebp - 0x320]
push ecx
jmp [eax + 0x10]
fsub qword gs:[edx]
sub ah, byte [edi + 0x2c]
inc esi
fadd qword [0xd5003379]
stosb byte es:[edi], al
popfd
xlatb
mov cl, 0xd4
mov cl, 0x35
shr dword [ecx - 0x62], cl
push edi
dec esp
cmpsd dword [esi], dword es:[edi]
out dx, eax
sbb byte [ecx], al
dec edi
fcom qword [eax + 0x78]
or byte [ecx], dh
pop eax
stosb byte es:[edi], al
pop es
popal
or byte [ecx - 0x28], ah
pop edi
and byte [eax - 0x72f6a7d9], bl
invalid
outsb dx, byte [esi]
jo 0x408c85
adc eax, 0xa023a091
pop ebx
or al, 0xf6
xchg edx, eax
or esp, dword [eax]
sbb byte [eax + 0x11a84c39], bl
or dword [ebp - 0x3d0484b7], edi
xor dword [ecx - 0x1f8e65e8], 0xa014b8e0
jno 0x408cba
loopne 0x408c94
adc al, 0xa0
xor al, 0x4d
retf 0xa6cf
add dword [edx + 0x6063fdd8], ebp
pop eax
loop 0x408c94
cld
fistp word [ebx + 0x74]
wait
jecxz 0x408d3b
jbe 0x408d05
or al, 0x35
or al, 0x35
adc byte [ecx], bh
push cs
aas
push es
push ebx
jbe 0x408d28
retf
mov dword [0xd00e10e8], eax
mov dh, 0x66
and eax, 0x770e392a
jo 0x408d6d
cmp dword [esi], ecx
ja 0x408d9c
inc eax
inc eax
sub eax, 0xf810d8c5
fidivr word [eax + 0xf2d835]
cmp al, dl
test al, 0x98
mov edi, 0x9deb6638
stosb byte es:[edi], al
xchg dword [esi - 0x3f564fa5], ecx
or byte [esi - 0x7b], ch
xor eax, 0x85fc2518
js 0x408cd8
test dword [eax - 0x7c], edi
ror byte [esi + 0x5f], 0xb1
jne 0x408d62
cmp eax, 0xf8a7d813
rol esp, cl
inc eax
jae 0x408d51
mov bh, 0x25
inc ebx
fist word [eax]
wait
pushal
pop ecx
mov cl, 0xfb
sti
sbb byte [esi + 0x10], dl
xchg ecx, eax
mov word [ebx], es
aaa
xchg edi, eax
push esp
aad 0xa9
cmp al, 0xbf
invalid
imul esi, eax, 0xdbe96d9b
into
add byte [eax], bl
wait
pop ebp
movsb byte es:[edi], byte [esi]
daa
imul edi, dword [edx], 0xffffffb7
pop ebp
mov byte [ecx], bl
and eax, 0x843045a1
inc esi
paddusb mm6, qword [eax + 0x4dedde78]
pushfd
sbb dword [eax + 0x38131a6b], ebx
xchg edi, eax
scasd eax, dword es:[edi]
jne 0x408df7
cli
and al, 0xdf
and al, bh
mov edx, 0xe388f01a
ret
mov word [eax + 0x2b], fs
in eax, dx
cmp byte [eax - 0x3eb78feb], bh
push es
nop
sti
cwde
popfd
shl dword [0xfc28ec], 1
and eax, 0xfc28ec
add ah, 0xec
ror byte [eax + esi - 0x41], 0x2e
pop esp
jo 0x408de6
leave
mov word [edi - 0x3a], ds
nop
or dword [ebp + 0x574b64f0], ebp
insb byte es:[edi], dx
dec esi
push eax
dec esi
imul al
and eax, edx
cmp edx, ebx
aam 0xe5
mov ah, byte [edx + ebp*4]
nop
pop edx
ret