Function at 0x402c4c
Capabilities:
Packed with generic packer

Disassembly:
mov ebx, ecx
push edi
push eax
lea eax, [esp + 0x14]
push eax
push esi
call fcn.00402402
test al, al
je 0x402ce1
mov ecx, dword [ebx + 0x60]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
or dword [esp + 0x10], 0xffffffff
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
mov eax, dword [ebx + 0x74]
mov dword [esp + 0xc], ecx
mov eax, dword [eax + edx*4]
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
mov dl, byte [edi + 0x90]
movzx eax, dl
cmp eax, 0x11
jle 0x43c631
sub eax, 0x13
je 0x43cb48
dec eax
je 0x43cb07
dec eax
dec eax
je 0x43ca8e
sub eax, 5
jne 0x43ca78
push edi
push ecx
call fcn.00401b41
push dword [edi]
call dword [0x48f63c]
mov esi, dword [esp + 0xc]
cmp dword [edi + 0x44], 0
jne 0x402ce5
cmp dword [edi + 0x64], 0
jne 0x402cf0
cmp dword [edi + 0x68], 0
jne 0x402cfb
cmp dword [edi + 0x50], 0
jne 0x402d06
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x1c]
je 0x402d11
push eax
mov ecx, ebx
call fcn.0040246d
xor eax, eax
inc eax
push dword [ebx]
rol byte [eax + 0x5f], 0x5e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
add byte [ebx], dh
shr bl, 0xf3
xor eax, eax
jmp 0x402cd8
push dword [edi + 0x44]
call dword [0x48f0c8]
jmp 0x402cb2
push dword [edi + 0x64]
call dword [0x48f0c8]
jmp 0x402cb8
push dword [edi + 0x68]
call dword [0x48f73c]
jmp 0x402cbe
push dword [edi + 0x50]
call dword [0x48f63c]
jmp 0x402cc4
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x1c], ecx
jmp 0x402ccd
mov eax, dword [ebp - 4]
mov dword [esi + 0x24], eax
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 4]
mov dword [edi], eax
add dword [ebp - 0x597af037], 0x65
cld
dec ecx
jne 0x43c660
call 0x9c2dbe73
cld
jmp [edx + 1]
jmp 0x402c2a
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + esi*4]
mov eax, dword [ebx + 0x1874c985]
mov eax, dword [ecx + 0x34]
cmp eax, dword [edi]
jne 0x43c99c
cmp byte [ecx + 0xe00090], 0x11
jne 0x43c99c
push esi
mov ecx, ebx
call fcn.004024a1
inc esi
cmp esi, dword [ebx + 0x3b0084]
jle 0x43c978
jmp 0xe5402cd4
mov ecx, dword [edi + eax*8]
inc esp
and al, 0x3c
add al, 0x75
inc byte [eax]
lea eax, [esp + 0x38]
push eax
push 0
add edi, edi
ja 0x43c9e7
call dword [0x418bf5d4]
jbe 0x43c9a3
je 0x43ca2e
mov ecx, dword [esp + 0x4c]
and al, 0x4c
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x43ca2e
push 3
pop esi
cmp dword [ebx + 0x3b0084], esi
jl 0x43ca2b
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + esi*4]
mov eax, dword [ecx + 0x76]
sal byte [edx + ebx + 0x39], 0x48
or al, 0x75
adc eax, 0x90b880
loopne 0x43ca13
jbe 0x43c9c6
je 0x43ca22
cmp dword [eax + 0xc], ecx
jne 0x43ca22
cmp byte [eax + 0xe00090], 0xf
jne 0x43ca22
pcmpeqw mm1, qword [esi + edx*2]
push esi
mov ecx, ebx
call fcn.004024a1
mov ecx, dword [esp + 0x1c]
inc esi
cmp esi, dword [ebx + 0x3b0084]
jle 0x43c9fc
mov ebp, eax
xchg esp, eax
sbb byte [ebp + 0xc77ff01], cl
call dword [0x418bf5c0]
jbe 0x43c9fc
jne 0x43ca52
push eax
push esi
mov esi, dword [esp + 0x14]
push dword [esi - 0x723efe64]
rcl byte [0x418bf5c0], 0xeb
add al, 0x8b
je 0x43ca79
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x16a019c]
out dx, eax
push dword [edi + 0x50]
or al, 0x8b
xchg byte [ecx + eax - 0x10fe96], bl
je 0x43ca87
push eax
call dword [0x418bf5cc]
jbe 0x43ca29
jne 0x43ca87
push eax
push dword [esi]
call dword [0xc35df574]
push dword [esi - 0x723efe64]
rcl byte [0xe048f570], 0x83
ror dword [ebp - 0xa8fea40], 0x48
loopne 0x43ca04
invalid
cmpsb byte [esi], byte es:[edi]
pushfd
add ecx, eax
lea eax, [eax]
push dword [esi]
call dword [0xe048f56c]
jmp 0x402ce0
loopne 0x43ca79
dec esp
invalid
movsx eax, word [ecx - 0x1f42ff74]
push eax
movsx eax, word [ecx - 0x1f42ff76]
push eax
movsx eax, word [ecx - 0x7affff78]
push eax
push dword [ecx]
call dword [0x8548f700]
jmp 0x402cd4
loopne 0x43cb9a
push dword [esp + 0x14]
mov dword [esp + 0x28], 0x3b0000
push 0x8d1053
push dword [edi + 0x34]
rcl dh, 0x3b
mov ch, byte [eax + edx + 0xf]
test byte [ebx + 0x6afffc61], ch
not byte [eax + 0x68]
or byte [eax], dl
lea eax, [eax]
push dword [edi + 0x34]
rcl dh, 0xe9
pushal
popal
cld
in al, 0x83
jg 0x43cbb7
add byte [ebx + 0x48f08c35], cl
add byte [ebp + eax - 1], dh
ja 0x43cbc3
call esi
cmp dword [edi + 0x3c], 0
je 0x43cb98
push dword [edi + 0x3c]
call esi
push 3
pop esi
cmp dword [ebx + 0x3b0084], esi
jl 0xe5402cd4
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + esi*4]
mov edx, dword [eax]
test edx, edx
je 0x43cbd7
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 4]
cmp eax, dword [ecx + 4]
jne 0x43cbd7
cmp byte [edx + 0xe00090], 0x14
jne 0x43cbd7
loopne 0x43cbc5
adc al, 0x75
jnp 0x77f000f
mov eax, dword [edx + 0x34]
cmp eax, dword [edi]
jne 0x43cbd7
push esi
mov ecx, ebx
call fcn.00402c4c
inc esi
cmp esi, dword [ebx + 0x3b0084]
jle 0x43cba7
jmp 0xe5402cd4