Function at 0x402b90
Capabilities:
Packed with generic packer

Disassembly:
pop esi
pop edi
mov esp, ebp
pop ebp
ret 8
or al, 0xbc
inc dword [ebx + 0x558b08c4]
or al, 0x52
push ebx
call 0x3fafe5
mov eax, dword [ebp - 0x10]
push 1
push eax
push ebx
call 0x4083a5
add esp, 0x14
cmp dword [ebx + 8], 0
jne 0x402c61
cmp eax, 0xffffffff
je 0x402c61
test eax, eax
je 0x402bcb
inc dword [ebp - 4]
jmp 0x402bea
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 8]
mov dword [ecx], 0x405a55
push 5
mov esi, dword [ebp + 8]
mov ecx, dword [str.MZ__n]
and esi, eax
bswap eax
pop edx
add eax, edx
mov edi, eax
lodsd eax, dword [esi]
cmp cx, ax
mov eax, 0x20
je 0x402dbd
sub esi, edi
jmp 0x402bef
add byte [eax], al
add byte [eax], al
cmp dword [edi + 4], 0x12
jne 0x402c16
push edi
call 0x3fbd91
add esp, 4
mov edi, dword [ebp + 0xc]
cmp dword [ebx + 0x10], edi
jne 0x402c35
push ebx
call 0x3fafc1
mov ecx, dword [ebp + 0x18]
mov edi, dword [edi + 4]
push ecx
call 0x3fc711
add esp, 8
jmp 0x402c3c
mov dword [ebp + 0xc], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
inc eax
jl 0x402c65
xchg edi, eax
mov cl, 0xb8
movd mm1, dword [esi]
or al, 0x4d
sbb ecx, dword [eax + 0x24228c62]
cwde
movsb byte es:[edi], byte [esi]
jno 0x402c71
sub edi, dword [edx + 0x2b]
sbb dword ds:[ebp + 0x241b54b1], edi
sbb dword [esi - 0x75a47075], eax
pop eax
push esp
sbb esp, dword [ecx + ebx]
xchg byte [ebx + 0x588a5b8f], cl
jl 0x402c03
mov ebp, 0x166198b6
push ss
xchg esp, eax
or al, 0x3c
inc edi
ret
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 0x40386c
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 0x4035c5
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 byte [eax + 8], al
push 0x6a
add byte [ebx - 0x971156], bh
stosb byte es:[edi], al
mov ebp, dword [edx - 0x22749556]
add ah, cl
stosb byte es:[edi], al
or dh, ch
push 0x68ffbb00
invalid
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 0x403879
mov eax, ecx
dec eax
dec ecx
mov dword [ebp - 0x10], eax
jne 0x403a4a
jecxz 0x40380e
cmp dword [edi], ebp
push edi
je 0x40389c
mov edi, ebx
call 0x403560
pop edi
ret
push esi
lea ecx, [ecx]
mov eax, dword [ebx]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x403a0d
cmp byte [eax + 1], cl
jne 0x4039bd
add dword [edi], ecx
test dword [edi], eax
add dword [eax], eax
add byte [ebx + 0x38902c0], al
add eax, 2
mov dword [ebx], eax
jmp 0x4038c0
mov ecx, dword [ebx]
mov al, byte [ecx]
cmp al, 0x20
je 0x4038d4
cmp al, 9
jb 0x4038d0
cmp al, 0xa
jbe 0x4038d4
cmp al, 0xd
jne 0x4038dd
test al, al
je 0x4038c0
inc ecx
mov dword [ebx], ecx
jmp 0x4038c0
mov esi, dword [ebx + 0x20]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
cmp dword [esi], eax
jl 0x40392a
mov ecx, dword [esi + 8]
xchg ecx, eax
xchg esi, eax
insd dword es:[edi], dx
mov eax, dword [0xc55b6bbf]
xchg esi, eax
dec edi
js 0x4038af
imul edx, dword [esp + ebx*2], 0xcbd1aa4
bound ebp, qword [edx]
mov bl, 0x84
cmp byte [ecx - 0x43], 0xb6
cmp dword [edi + 0x1767215e], eax
pop esi
jle 0x403975
outsb dx, byte [esi]
or bl, byte [ebx]
inc edi
dec esp
and cl, byte [0x861a3340]
dec eax
cmp byte [edx - 0x7b81be62], dl
stosd dword es:[edi], eax
mov cl, 0x46
xchg esi, eax
xor edx, dword [esi]
xchg esp, eax
or dword [esi], 0xffffffc6
pop ebp
imul ebp, dword [esi + ecx*2], 0x30
adc bl, byte [edi - 0x66]
push ecx
invalid
lea ebp, [esi]
sub dword [edi], edx
adc byte [edi + 0x66b72680], ah
insb byte es:[edi], dx
mov bl, 0xbd
lodsd eax, dword [esi]
mov cl, 0x8a
sbb dword [esi], ebx
sub ebp, dword [ebx]
dec edx
push 0xa1828b1b
pop ebx
invalid
xor ebx, dword [edi + 0x7e]
and eax, dword [eax + 0x4c]
insd dword es:[edi], dx
ret 0x398f
pop ds
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 0x403a65
mov eax, ecx
pop esi
dec eax
cmp dword [ebp - 0x10], eax
je 0x403acf
pop ecx
inc dword [ebp - 4]
loop 0x403a50
sub al, 0x89
jl 0x403a8e
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.00403290
test eax, eax
jne 0x403a74
je 0x403550
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 0x403b50