Function at 0x402d1a
Capabilities:
Packed with generic packer

Disassembly:
xor eax, dword [ebx + 0x7500647f]
cmp byte [ebx + 0x7500687f], al
cmp eax, 0x507f83
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
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [edi + 0x50]
call dword [0x48f63c]
jmp 0x402cc4
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x1c], ecx
jmp 0x402ccd
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x28
push ebx
push esi
mov esi, dword [0x4c681c]
push edi
cmp eax, 0xc
je 0x43cbb1
cmp eax, 0xd
jle 0x402d55
cmp eax, 0xf
jle 0x43cbb1
cmp eax, 0x11
je 0x43cbb1
cmp eax, 0x14
je 0x43cbb1
cmp esi, 0xffffffff
je 0x402ee5
mov eax, dword [0x4c6810]
mov eax, dword [eax + esi*4]
mov ebx, dword [eax]
push ebx
mov dword [ebp - 0x1c], ebx
call fcn.00402519
mov edi, eax
mov dword [ebp - 0x20], edi
cmp edi, 0xffffffff
je 0x402ee5
mov eax, dword [0x4c6824]
mov edx, dword [ebp + 8]
mov eax, dword [eax + edi*4]
mov esi, dword [eax]
mov dword [ebp - 0x24], esi
cmp edx, 0xe
je 0x43cbe0
cmp edx, 0xf
je 0x43cbe0
cmp edx, 0xc
je 0x43cbe0
mov byte [esi + 0x92], 0x50
mov ax, word [0x4c67b8]
mov word [esi + 0x86], ax
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 4], edx
mov edx, dword [ebp + 0x28]
and edx, 2
mov dword [ebp - 0x14], eax
sub byte [ebx + 0x458902e2], al
in al, dx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
jne 0x43cbec
push ebx
push dword [ebp + 0x1c]
push edi
push ecx
push eax
call fcn.00401fd9
mov edi, dword [ebx + 0x60]
mov eax, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
mov dword [ebp - 8], edi
mov edi, dword [ebx + 0x64]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edi
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
cmp edx, 0x1d
ja case.0x402e1f.13
mov dword [ebp - 0xc], 1
jmp dword [edx*4 + 0x402eee]
hlt
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
push esi
push ebx
call fcn.00401bcb
mov edx, dword [ebp + 8]
test al, al
je 0x43cef3
mov ecx, dword [ebp + 0x28]
mov byte [esi + 0x90], dl
mov byte [esi + 0x91], cl
mov eax, dword [0x4c681c]
add byte [eax], al
add byte [eax + 0x918e], cl
add byte [ecx + 0x4c681c], ah
mov dword [0x4c6848], eax
mov dword [0x4c6844], edi
test cl, 1
je 0x43cf19
test cl, 4
je 0x43cf70
cmp dword [ebp - 0x28], 0
jne 0x402e8b
push 0
push esi
push ebx
call fcn.00401db3
cmp byte [ebx + 0x198], 0
cwde
add dword [eax], eax
add byte [eax], al
jne 0x43d059
cmp dword [ebx + 0x50], 0xffffffff
jne 0x402ecf
cmp dword [ebx + 0x54], 0xffffffff
jne 0x402eda
cmp dword [esi], 0
je 0x402eb4
push edi
push 0xffffffffffffffeb
push dword [esi]
call dword [0x48f510]
lea ecx, [ebp + 0x2c]
call fcn.00409a20
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov al, byte [ebp - 0xc]
jmp 0x402e43
push dword [ebx + 0x50]
push edi
call fcn.00488ac0
jmp 0x402e9e
push dword [ebx + 0x54]
push edi
call fcn.004888b4
jmp 0x402ea4
and dword [ebp - 0xc], 0
jmp 0x43d08a
pushal
cld
inc dword [esi + 0x3b]
mov bl, 0x84
add byte [eax], al
add byte [esi - 0x39], bh
jmp 0x402cb1
inc dword [edi + ecx + 0x617d840f]
cld
dec dword [ebx + 0x75e9e075]
popal
cld
inc esi
xchg byte [edx + 0x24000000], dl
jmp 0x402dcf
popal
cld
invalid
jmp 0x402d66
popal
cld
push dword [ebx]
shl byte [esi - 0x77], cl
xchg esi, eax
xchg byte [eax], al
add byte [eax], al
jmp 0x402e1a
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486954
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486f30
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486ba0
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486df0
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486c4f
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486ae5
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00487659
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.0048773b
jmp 0x402e51
in al, dx
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486ce3
jmp 0x402e51
clc
push ecx
push eax
push ecx
push edi
push esi
push ebx
call fcn.0048784d
jmp 0x402e51
clc
push ecx
push eax
push ecx
push edi
push esi
push ebx
call fcn.0048798e
jmp 0x402e51
in al, dx
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486667
jmp 0x402e51
adc bh, bh
jne 0x43cda2
push edi
push esi
push ebx
call fcn.00487e13
jmp 0x402e51
invalid
clc
push ecx
push eax
push ecx
push edi
push esi
push ebx
call fcn.00487a30
jmp 0x402e51
invalid
invalid
or al, 0x75
lock adc byte [edi + 0x56], dl
push ebx
call fcn.004873d2
jmp 0x402e51
invalid
invalid
or al, 0x75
lock adc byte [edi + 0x56], dl
push ebx
call fcn.00487511
jmp 0x402e51
clc
push ecx
push eax
push ecx
push edi
push esi
push ebx
call fcn.00487bc6
jmp 0x402e51
adc bh, bh
jne 0x43ce3c
push edi
push esi
push ecx
call fcn.00487cf1
jmp 0x402e51
invalid
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486e87
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00486836
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.004868d0
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00487900
jmp 0x402e51
push eax
push dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00487000
jmp 0x402e51
adc bh, bh
jne 0x43cee5
push edi
push esi
push ecx
call fcn.004871a3
jmp 0x402e51
invalid
push eax
push dword [ebp + 0xc]
push ecx
push esi
push ebx
call fcn.0048672d
jmp 0x402e51
leave
cmp word [eax], cx
je 0x2443d09b
xor eax, eax
jmp 0x2443d09e
jl 0x43cfc2
push esi
push ebx
call fcn.00486453
mov ecx, dword [ebp + 0x28]
jmp 0x402e84
mov esp, 0x5900027a
push esi
push ebx
call edi
mov esi, dword [ebp - 0x24]
push ebx
push dword [esi]
call dword [0xb448f624]
mov eax, dword [ebp + 8]
sub eax, 0x17
je 0x43d006
dec eax
je 0x43cffe
dec eax
je 0x43cff3
dec eax
jne 0x43d00e
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add edx, 8
jmp 0x43d013
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add edx, 0xc
jmp 0x43d013
mov ecx, dword [ebp - 0x14]
add ecx, 4
jmp 0x43d009
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
jmp 0x43d013
mov ecx, dword [ebp + 0x20]
mov edx, ecx
mov ebx, dword [ebp - 0x1c]
or edi, 0xffffffff
cmp dword [ebp + 0x1c], edi
jne 0x43d032
cmp dword [ebx + 0x64], edi
je 0x43d02c
cmp dword [0x4c67b4], 2
je 0x43d032
lea eax, [ecx + 8]
mov dword [ebx + 0x64], eax
cmp dword [ebp + 0x18], edi
jne 0x43d04b
cmp dword [ebx + 0x60], edi
je 0x43d045
cmp dword [0x4c67b4], 2
je 0x43d04b
lea eax, [edx + 8]
mov dword [ebx + 0x60], eax
push dword [ebp - 0xc]
push dword [ebx + 0x64]
push dword [ebx + 0x60]
push dword [ebx + 0x5c]
push dword [ebx + 0x58]
pop eax
push dword [esi]
call dword [0x1c48f700]
mov edi, dword [ebp - 0x20]
jmp 0x402e8d
mov al, byte [ebx + 0x18c]
mov byte [esi + 0x441c0093], al
jmp 0x402ea9
cld
call dword [edi - 0x47]
mov al, 0x67
dec esp
add al, ch
out 0x53, eax
push ebx