Function at 0x4745b9
Capabilities:
Packed with generic packer

Disassembly:
push ax
lahf
lock xchg word [esp], ax
push ecx
call fcn.00474645
outsd dx, dword [esi]
bound ecx, qword [ebx + 0x5b]
stosd dword es:[edi], eax
lea eax, [eax + edi*4 + 0xc4]
je 0x47473d
mov eax, ebx
pop edi
push ebp
dec ebx
push ecx
inc eax
outsb dx, byte [esi]
inc ecx
inc eax
push dword [di + 8]
movdqa xmmword [edi + 0x70], xmm7
jmp 0x4d5729
mov eax, dword [edi]
test eax, eax
je 0x4746f5
cmp dword [esp + 0x34], 0x779cfbfd
je 0x474751
call eax
cmp edx, 0x685cb6ef
cmove eax, edx
add edi, 4
cmp edi, esi
jb 0x4746df
cmp eax, 0x2f59c159
jne 0x474755
bound esp, qword [eax + 0x55]
dec eax
pop edi
pop edi
push ebx
jns 0x47475a
inc ax
inc ecx
push eax
pop ebx
dec ebx
push ecx
dec edi
dec edx
dec ebp
pop ecx
jnp 0x47478c
popal
bound ecx, qword [eax + 0x5c]
dec ebp
inc esi
pushal
push esi
push 0x6354
insd dword es:[edi], dx
push 0x5f4f4e46
inc eax
dec esp
jns 0x474799
pop ebx
inc esi
dec esp
insb byte es:[edi], dx
dec ecx
pop edx
bound edx, qword [edx + 0x6d]
outsd dx, dword [esi]
inc ecx
push edi
pop esi
pop ebx
dec edi
push esp
insb byte es:[edi], dx
dec edx
pop esp
push 0x40
push edi
pop edi
cmp dword [esp + 0x48], 0x59090c8d
lea ecx, [ecx + ecx]
pop ecx
cmove edx, edi
pop esi
cmp dword [esp + 0x4c], 0x8fcaa6e1
je 0x474703
ret
and ch, 0x9b
jne 0x4747f5
jmp 0x4747ad
in eax, dx
invalid
lodsd eax, dword [esi]
invalid
xor eax, eax
cmp dword [ebp + 8], eax
push 0
sete al
cmp dword [esp - 0x14], 0x80a760f5
jne 0x474859
push esi
js 0x474852
lea eax, [eax + esi + 0x144]
push esp
inc ecx
sub esi, dword [ebp - 8]
xor byte [ecx + eax], al
add dword [eax], eax
add byte [ecx + eax*2 + 0x2b], dl
jne 0x474814
and edx, ecx
push ebp
cdq
arpl word [ecx + 0x41], di
push esp
push esi
inc ebp
pop edx
inc edx
mov ebp, esp
dec edi
pop esp
outsd dx, dword [esi]
bound eax, qword [ebp + 0x53]
dec esi
dec ecx
inc edx
inc esi
mov edi, 0x80000000
mov dword [0x40b5dc], eax
cmp ecx, dword [edx + 8]
inc ecx
je 0x474849
push ebx
push edi
dec eax
pop ebp
insd dword es:[edi], dx
pop eax
dec ebp
dec ax
push esi
inc edx
inc edx
push dword [esi + 0x44]
push edi
dec esi
ret
push 0x1000
cmp dword [esp - 0x10], 0xe8eaf587
je 0x474888
push eax
cmp dword [esp + 0x5c], 0xb15c2329
je 0x474812
call 0x4748d1
pop ecx
dec ecx
push ebp
inc edx
dec edx
jns 0x4748ce
insb byte es:[edi], dx
inc edx
inc esp
push 0x60
jnp 0x4748ea
push 0x44
push 0x6a
push esp
inc eax
insd dword es:[edi], dx
outsd dx, dword [esi]
push ebx
outsd dx, dword [esi]
dec edx
dec esi
push edi
inc ebx
dec ebp
dec ebx
jns 0x4748e4
dec esi
arpl word [esi + 0x51], bp
dec ebp
push esi
insb byte es:[edi], dx
bound ecx, qword [ecx + ebp*2 + 0x66]
inc edi
pop esp
inc edx
jns 0x474905
push ebx
push ebx
pop edx
push edx
push ebx
imul ecx, dword [eax + 0x5b], 0x6e5d5f69
push esp
pop ebp
push 0x61
pop esp
pushal
js 0x474901
push ebp
push esi
pop edx
inc edi
inc ecx
push esi
dec edi
dec edx
inc sp
bound ebp, qword [edx + 0x6a]
dec edx
inc ecx
inc ecx
pop ecx
arpl word [ecx - 1], dx
xor al, 0x24
call 0x4748d9
mov dword [esp], edi
add dword [esp + 4], 0xfff93834
mov edi, dword [esp + 4]
mov edi, dword [edi]
mov dword [esp + 4], edi
add dword [esp + 8], 0x80
pop edi
ret
jne 0x47491b
jmp dword [edx*4 + 0x406fe4]
xchg ebp, eax
in al, 0x6f
inc eax
add bl, ch
add eax, 0xc0334467
push ecx
inc ecx
dec edi
sub esp, 0x14
cpuid
push dword [ebp + 0xc]
jne 0x474929
push edi
and dword [ecx + 4], ebx
inc sp
mov dword [ebp - 4], ecx
pop eax
push ecx
push ebp
add eax, esi
push dword [ebp + 8]
push eax
call esi
call fcn.00474964
jbe 0x47492e
outsb dx, byte [esi]
outsb dx, byte [esi]
pushal
jns 0x4749ac
insd dword es:[edi], dx
ret
push 0xed238b1
lea esp, [esp - 2]
mov word [esp], ax
lahf
lock xchg word [esp], ax
lea esp, [esp - 4]
mov dword [esp], edx
call 0x4749fb
push 0x58
jns 0x474a48
push esi
pop eax
push esi
jnp 0x474a3d
push 0x5040664d
push ebx
pop ebx
push esi
pop edi
push 0x6140426a
dec edx
dec esi
inc ecx
push ebx
inc esi
push ecx
bound ecx, qword [edi + 0x55]
inc ecx
dec esi
push 0x5e
imul esp, dword [esi + 0x4a], 0x496f6278
push ebp
inc edi
dec ebp
pop edx
push ebx
mov ebx, 0xed238af
cmovne ebx, dword [esp + 0xa]
lea edx, [edx + ebx - 0xed23819]
lock xchg dword [esp + 0xa], edx
mov ebx, dword [esp]
invalid
invalid
invalid