Function at 0x403a90
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cld
mov esi, dword [ebp - 0x59]
push edi
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x403ac4
mov eax, dword [ecx + 0x824]
test eax, eax
je 0x403ac4
mov eax, dword [0xdb02b4]
rol al, 0xf
test byte [ecx + eax], ch
add byte [eax - 0x5d], cl
mov ah, 0x41
adc al, 0
jmp 0x404f25
cmp dword [0x4102b4], 1
sbb ecx, dword [edx]
mov eax, dword [esi + 0x10]
mov dword [0x41028c], eax
jmp 0x403afb
mov eax, dword [0x4102ba]
mov ecx, dword [0x405210]
cmp eax, ecx
jge 0x403c25
mov edx, dword [edx + 0x410bc8]
mov edi, eax
shl edi, 5
add edi, edx
and dword [ebx + 0x1acb84ac], 0x2e41e8
add byte [ebx + 0x410ba0], ah
mov dword [0x5410ba4], edx
mov dword [eax - 0x51fff7b0], edi
mov edx, dword [0x1e0ba4]
mov eax, dword [esi - 0x16fff788]
mov dword [esi + 0x38000854], edx
mov dword [edi], eax
mov ecx, dword [esi + 0x4ea7]
popal
dec edi
add al, 0x8b
invalid
mov eax, dword [0x44117f8]
mov ecx, dword [esi - 0x4c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x10], 0x3c0001
push edx
push eax
mov dword [ebp - 8], ecx
call 0xbf6200
mov ecx, dword [esi + 4]
push ecx
call fcn.00406810
dec ebx
xchg ecx, eax
inc esi
or byte [eax], al
add byte [eax], al
jbe 0x403ccd
xchg edx, eax
cld
invalid
add byte [eax], al
cmp esi, 0xb90b3
je 0xdec54297
mov ecx, dword [ebp + 0x28]
cmp bh, bh
cmp ecx, edi
invalid
push eax
lds edx, [0x80000054]
fcmovnu st(0), st(5)
adc al, 0x8b
xor eax, 0x64c130
mov eax, ebx
bound ebx, qword [ebx]
push eax
call esi
add esp, 4
test ebx, ebx
jne 0x404f73
push edi
sti
pop ecx
stc
invalid
fisttp qword [0x4102dc]
mov dword [ebp + 0xc], ecx
mov esi, dword [ebx + ecx*4 + 0x4d]
adc byte [ebp - 0x7ef58a37], al
sal byte [esi + eax - 0x15], 0x50
and byte [ecx - 0x74acef10], cl
pop ebp
adc al, 0x56
mov dword [ebp - 0x74fc8a25], 0xaa8a1858
mov edi, 1
cmp ebx, dword [eax]
jb 0x404ffe
mov edx, dword [esp + ecx + 0x674c085]
push eax
push edi
popal
push ss
add byte [eax], al
mov esi, 0xb8b4973
lea eax, [ebx + 0x18]
mov edx, edi
test esi, esi
jne 0x404fd1
cmp edx, ecx
jae 0x404fd1
retf
xor byte cs:[ebp + 0x1f], dh
je 0x40502a
fidivr word [esi]
test edi, edi
mov dword [eax], edi
test dword [ebp + 0x8a], 0x820f273b
add byte [eax], 0
add byte [ebx + 0x50], bh
mov al, byte [eax]
add byte [eax], al
cmp esp, dword [edi]
jb 0x40506d
jnp 0x40503d
ret
mov eax, dword [ebx + 0x14]
lea esi, [ebx + 0x14]
mov ah, 0xc0
je 0x405037
mov eax, dword [ebx + 0xf]
test eax, eax
je 0x405015
push eax
call 0xd4d7d0
xchg esp, eax
invalid
mov eax, dword [ebx - 0x3b]
test eax, eax
je 0x404fdf
arpl ax, bp
or dword [ebx], edx
add byte [eax - 0x3f], ch
and byte [eax], al
add bh, bh
push 0x20c1
call dword [0x40c12a]
adc eax, 0x40c12a
mov esi, eax
test esp, 0xff68504
test cl, bl
add cl, ah
add byte [ebp - 0x794ee7aa], cl
add byte [eax], ah
aaa
add bh, al
push es
add byte [eax], al
add byte [esi - 0x76f78177], cl
out 0x10, eax
push edi
stosb byte es:[edi], al
mov cs, word [ecx - 0x1876f782]
adc byte [edi - 0x56], dl
adc al, 0xeb
xor byte [ebx - 0x74ef32ea], cl
jnp 0x405078
mov edi, dword [ebx + 8]
mov eax, dword [esi + 8]
insb byte es:[edi], dx
clc
mov eax, dword [ebx + 4]
mov edi, dword [eax]
and esp, dword [esi + 0x21]
and dh, byte gs:[esi + 3]
jo 0x4050c6
or byte [ebx - 0x417af3bd], cl
je 0x405091
push eax
call 0xd5ac40
lea ecx, [esi + 0x18]
mov dword [esi], 0
or cl, byte [esi - 0x5e]
mov edx, dword [edx]
dec edi
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x72fb89a2], edi
inc edi
int3
add al, 0x89
ja 0x40505d
mov dword [ebx + 0x38778914], eax
mov dword [edi + 0x3c], esi
mov dword [edi + 0x63], esi
mov dword [edi + 0x24], esi
mov esp, esp
sub byte [ecx + 0x362701f], cl
push ebx
push edx
cmp esp, dword [edi]
clc
invalid