Function at 0x402b50
Capabilities:
Packed with generic packer

Disassembly:
pop esi
pop edi
mov esp, ebp
pop ebp
ret 8
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
push ebx
call 0x3fafa2
mov eax, dword [ebp - 0x10]
push 1
push eax
push ebx
call 0x408362
add esp, 0x14
cmp dword [ebx + 8], 0
jne 0x402c1e
cmp eax, 0xffffffff
je 0x402c1e
test eax, eax
je 0x402b88
inc dword [ebp - 4]
jmp 0x402ba7
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 8]
mov dword [ecx], 0x4049ff
push 5
mov esi, dword [ebp + 8]
mov ecx, dword [str.MZ_y]
and esi, eax
bswap eax
pop edx
add eax, edx
mov edi, eax
lodsd eax, dword [esi]
cmp cx, ax
mov eax, 0x20
je 0x402d7d
sub esi, edi
jmp 0x402bac
cmp ah, byte [0x12423165]
popal
and al, 0xd
xor dword [ecx], ebx
nop
scasd eax, dword es:[edi]
mov cl, 0x8d
mov al, 0x12
xor dword [edi], ebx
push eax
scasb al, byte es:[edi]
adc byte [ecx - 0x78], 0x87
sub al, byte [esi + 0x39]
ret 0xa220
push eax
mov dword [ebp - 8], esi
push esi
mov eax, dword [esi + 0x38]
and eax, 0xffff
inc eax
mov ecx, esi
add ecx, 0x73
add eax, ecx
mov eax, dword [eax]
pop esi
dec esi
dec esi
dec esi
dec esi
mov edi, esi
add esi, eax
pop ecx
mov eax, dword [ecx + esi]
add edi, eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x14], eax
jmp 0x4037fc
mov ecx, dword [ebp - 4]
push dword [ebp - 0xc]
pop esi
inc esi
mov eax, dword [esi + 0x23]
xchg ecx, eax
add eax, eax
inc esi
add ecx, dword [ebp - 8]
dec ecx
dec ecx
dec ecx
dec ecx
add ecx, eax
movzx eax, word [ecx]
mov ecx, dword [esi + 0x1a]
dec esi
lea eax, [ecx + eax*4]
dec esi
mov ecx, dword [ebp - 8]
dec ecx
dec ecx
dec ecx
dec ecx
mov eax, dword [ecx + eax]
add eax, ecx
test eax, eax
jne 0x402783
js 0x403585
add byte [eax], al
add edx, 7
add edx, ecx
xor ecx, ecx
test al, al
setne cl
lea ecx, [ecx*4 + 3]
sar edx, cl
movzx eax, byte [edx + 0x603a80]
mov eax, dword [eax*4 + 0x603bfc]
pop ebp
ret 4
and ecx, 0xfffff000
add eax, ecx
pop ebp
ret 4
add al, 0
add al, 0xdd
or byte [ebx - 0x22222212], cl
mov eax, dword [eax + ebp*2]
or byte [eax], cl
mov ecx, dword [eax]
or byte [esi*2 - 0x119597fc], al
out dx, al
jne 0x403823
fld qword [eax]
dec dword [ebx + 0x75047500]
mov edi, edi
mov esi, dword [ebp - 0x56]
int3
mov dword [ebp - 0xc], esi
xor eax, eax
and dword [ebp - 4], eax
mov esi, dword [ebp + 0xc]
mov ecx, eax
inc ecx
lodsb al, byte [esi]
test eax, eax
jne 0x403809
mov eax, ecx
dec eax
dec ecx
mov dword [ebp - 0x10], eax
jne 0x4039da
jecxz 0x40379e
cmp dword [edi], ebp
push edi
je 0x40382c
mov edi, ebx
call fcn.004034f0
pop edi
ret
push esi
lea ecx, [ecx]
mov eax, dword [ebx]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x40399d
cmp byte [eax + 1], cl
jne 0x40394d
add eax, 2
mov dword [ebx], eax
jmp 0x403850
mov ecx, dword [ebx]
mov al, byte [ecx]
cmp al, 0x20
je 0x403864
cmp al, 9
jb 0x403860
cmp al, 0xa
jbe 0x403864
cmp al, 0xd
jne 0x40386d
test al, al
je 0x403850
inc ecx
mov dword [ebx], ecx
jmp 0x403850
mov esi, dword [ebx + 0x20]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
cmp dword [esi], eax
jl 0x4038ba
mov ecx, dword [esi + 8]
and al, 0xc0
setnp byte [eax + 0x359a0c99]
jo 0x4038da
push edx
dec esp
dec esi
push 0x3e
rcl dword [ecx], 0x71
jle 0x4038cb
sub al, 0x4d
lea eax, [esi + 0x5f83a16a]
xor eax, 0x48c6bd49
insd dword es:[edi], dx
or eax, 0x7e1ab55e
mov bl, 0xc4
invalid
mov dl, 0x6a
sbb al, 0x44
mov dh, byte [eax]
jge 0x4038de
jno 0x403887
cmp ebp, dword [ebx]
mov ah, 0x76
test eax, 0xb10a2437
xchg dword [edi + eax*8], ebp
cmp al, 0xbd
mov edi, dword [edx + edi - 0x69]
or dh, byte [ecx + 0x3cc72c87]
mov ebp, 0x973a7c8b
and eax, 0x5d9db439
pop ebp
inc edi
mov ebx, 0x839c43bf
mov dword [0x727db432], eax
inc eax
inc ebx
pushfd
and dword [ebx + 0x727db432], 0x40
dec ebx
xchg ebp, eax
lodsd eax, dword [esi]
push edi
stosb byte es:[edi], al
dec edi
mov bl, 0x3a
enter 0x5cad, 0xffffffffffffffa5
cmp byte [esi - 0x69e5e4aa], ah
mov bh, 0xa9
pop edi
push edi
dec ebx
pop ecx
pushal
dec ecx
xchg ebp, eax
inc ebx
sub dword [ebx - 0x57], esi
or dl, byte [ebx - 0x4c]
push cs
test eax, 0xeb4530a
sub byte [ebx - 0x4c61def5], ch
mov eax, 0xb215913f
sbb al, 0x4c
aas
xchg ecx, eax
adc eax, 0x9e4c1cb2
mov dl, 0x1c
dec esp
sahf
or al, 0x16
and byte [esi], bl
arpl word [edi + eax*2 - 0x4e39dfa6], bx
mov eax, dword [0x89838482]
push 0x4b
sbb byte [eax - 0x79cacf85], ch
and eax, 0x91b57561
xchg byte [0x91b57561], ah
xchg ecx, eax
das
jnp 0x4039ae
mov byte [0x3e20a844], al
and dword [ecx - 0x4b686fe4], edi
stosd dword es:[edi], eax
xor dword [ebx + 0x588f344b], 0x76b67e63
jae 0x403911
jle 0x403905
jbe 0x4039c4
mov edi, 0x30118e2b
jb 0x403914
sub ecx, dword [esi + 0x72673011]
mov ebx, 0x6a4f7f9b
push ebp
wait
jg 0x4039ab
push 0x55
sub bl, byte [eax + 0x26]
xchg esi, eax
inc esp
push ds
cmp al, 0x7a
lodsd eax, dword [esi]
or al, 0xa3
push 0x31
dec edi
inc edi
mov dl, 0x3b
sbb eax, 0x273b1a33
dec ebp
mov cs, word [edi + 0x59602a99]
xor eax, 0x1b732c7e
test dword [esi + 0x26], edx
jb 0x40392f
add eax, eax
mov dword [esi + 4], eax
imul eax, eax, 0x2c
push eax
push ecx
call dword [0x5fbd84]
xor ecx, ecx
add esp, 8
cmp eax, ecx
jne 0x4039bd
pop ds
rcr dword [eax + eax + 0x33], 1
imul al
sar dword [edi - 1], cl
inc dword [ebx - 0x1e16fb3c]
add byte [eax], al
add byte [ecx + 0x2eb0846], cl
xor ecx, ecx
mov dword [esi + 8], eax
jmp 0x4039c4
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov dword [esi + 0xc], eax
imul eax, eax, 0x2c
mov dword [eax + edx + 0x28], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0xffffffff
jne 0x4039c9
push dword [ebp - 0x14]
pop eax
mov ecx, eax
mov eax, dword [edi]
dec eax
inc edi
inc edi
mov esi, dword [ebp - 8]
dec eax
dec eax
dec eax
add esi, eax
inc edi
inc edi
push ecx
xor eax, eax
push esi
mov ecx, eax
lodsb al, byte [esi]
inc ecx
test eax, eax
jne 0x4039f5
mov eax, ecx
pop esi
dec eax
cmp dword [ebp - 0x10], eax
je 0x403a5f
pop ecx
inc dword [ebp - 4]
loop 0x4039e0
sub al, 0x89
jl 0x403a1e
add al, 0x8b
push es
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 8], 0xffffffff
mov eax, dword [esi]
mov edx, dword [esi + 8]
dec dword [ebx + 0x8568b06]
imul eax, eax, 0x2c
mov dword [eax + edx], 0xb
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 0xc], 6
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 0x10], 1
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 0x14], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0xc]
call fcn.00403250
test eax, eax
jne 0x403a04
je 0x403510
imul eax, eax, 0x2c
cmp dword [esi + 0x14], ecx
mov dword [eax + edx + 0x18], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 0x1c], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
imul eax, eax, 0x2c
mov dword [eax + edx + 0x20], ecx
inc dword [esi]
jmp 0x403ae0