Function at 0x409f20
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
cli
jne 0x409f33
push edi
mov ecx, 0xe5000018
xor eax, eax
mov edi, ebx
pushal
stosd dword es:[edi], eax
mov ebp, dword [edi]
adc byte [ecx + 0x20b9d2], dh
add byte [eax], al
mov dword [esi + ebp - 0x4983b977], esi
push esi
cmp al, 0xe8
and dword [ecx], ebx
sub byte [eax], al
mov dword [edx], ebx
cmp byte [ecx + 0x4b8bd756], cl
or al, 0x8b
ror byte [ebx - 0x29ccc3ba], 1
or edx, ecx
or eax, edi
mov dword [esi + 0x38], edx
mov dword [esi - 4], eax
push edi
mov edx, eax
rol byte [esi + 0x38], cl
push 0xa
push edx
push eax
call fcn.0040b650
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x3c]
insb byte es:[edi], dx
ror byte [ecx - 0x3d7ec7f1], 1
add al, al
pop eax
mov bh, 0x81
shr dword [ecx - 0x7a], 1
salc
dec dword [ecx + 0x4e893856]
mov ebp, 0x89084b0d
dec esi
dec eax
mov eax, ecx
mov edx, edi
mov ecx, 0x86de
mov dword [esi + 0x4c], edi
call 0x9e40b870
mov edi, ebx
dec eax
mov dword [esi + 0x50], edx
mov edx, dword [ebx + 4]
xor eax, 0xc20b4c82
or ecx, edi
mov dword [esi + 0x48], eax
mov dword [esi], ecx
push edi
xor al, 0xc1
mov ecx, dword [esi + 0x48]
push 0xa
push eax
push ecx
call 0x410990
mov dword [edi + 0x4700c748], ebx
jns 0x40a00d
je 0x40a031
dec esp
mov dword [esi + 0x48], eax
pop edi
shl byte [edx], cl
mov eax, dword [0x20b92f3f]
add byte [eax], al
add byte [ecx + 0x538b4c56], cl
sbb byte [ecx - 0x3d74bfaa], cl
mov edx, edi
mov dword [esi + 0x44], edi
call 0x411d70
mov dword [esi - 0x30], eax
mov ecx, dword [esi + 0x6b]
mov dword [esi + 0x44], edx
mov edi, dword [edi]
adc al, 0xb
xor dl, byte [edx + eax*8 - 0x77]
push esp
ret 0x4e89
dec esi
inc eax
mov edi, dword [edx + 0x57c7e440]
or cl, al
push 0x25
push ecx
push edx
mov dword [esi + 0x77], eax
or eax, 0x9f6a
mov ecx, ebx
inc esp
mov ecx, dword [esi + 0x44]
mov esp, dword [ebx - 0x77]
inc esi
inc eax
mov eax, dword [ebp - 0x55]
add edx, 0xb779c000
adc ecx, 0xffd6a169
mov dword [esi + 0x40], edx
cmc
inc edi
inc esp
push esi
push esp
sbb dword [ebx + ecx*4], 0xfffffffe
cmp dword [ebx - 0x284136cd], 0xffffffeb
enter 0x458b, 0x33
mov dword [esi + 0x3d], edx
mov edx, 0x3c01
mov dword [esi - 0x25], ecx
and eax, edx
jle 0x40a010
mov esp, dword [edx + 0x74be58f6]
rol bh, 0x46
or al, 6
adc eax, 0x3ceb0000
mov ecx, dword [ebx]
cmp cl, al
adc byte [eax], bh
or dword [edx + 0x46], edx
or al, 2
add byte [eax], al
add byte [ebp + 0x2c], bl
test cl, 0x40
je 0x40a094
mov dword [esi + 0xc], 0xba0003
jmp 0x40a0b2
lds ecx, [ebx + 0x14]
test ecx, ecx
jne 0x40a0af
test eax, 0xc985184b
jne 0x40a0af
out dx, eax
dec esi
mov dl, 0x8b
jle 0x40a0d4
popal
iretd
mov dword [esi + 0x7413840c], ebp
pop es
test byte [ebx], dl
je 0x40a0bd
mov dword [esi + 8], 0x10008700
mov ecx, dword [ebp + 0x10]
mov dh, 0x46
add al, 0x70
sbb dword [edx], 0x39dac985
test eax, eax
je 0x40a0d6
mov dword [esi + 4], 0x23cb
add byte [eax], al
mov eax, dword [ebp + 0xc]
test eax, 0xc35d5b5e
sal bh, 0x55
mov esi, dword [edi]
sub esp, 0x34
push esi
push edi
in al, dx
jge 0x40a0fb
mov al, byte [edi + 0x2c]
test al, al
je 0x40a100
push edi
call fcn.0040b2d0
test eax, eax
ret
test dword [edi - 0x74010000], esp
dec edi
add al, 0x8d
inc ebp
stosd dword es:[edi], eax
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x55]
aad 0x14
call 0x41015de7
add byte [ebp + 0x484075c0], al
xor eax, 0x403698
inc ecx
salc
test dword [ebx + 0xb1840f], ecx
add byte [eax], al
call esi
shl bh, cl
cmp ah, 0xf4
push edi
pop esi
mov dword [0xcc25de5], eax
add byte [edx + 0x75f30c55], ch
or byte [edx - 0x73], dl
inc ebp
int3