Function at 0x47415a
Capabilities:
Packed with generic packer

Disassembly:
nop
call 0x4046ac
push ebx
add byte [ecx], bh
outsb dx, byte [esi]
add byte [eax + eax + 0x61], dh
add byte [eax], bh
and byte [eax], al
add byte gs:[edx], dh
jb 0x4046a6
outsd dx, dword [esi]
add byte [edx], dh
add byte [eax], al
call fcn.0047680e
call 0x4046d6
push ebp
add byte [esi], ch
add byte fs:[ebp], ah
add byte [ecx], ch
outsb dx, byte [esi]
add byte [ebp], ah
add byte fs:[eax], ah
add byte [eax + eax + 0x61], ch
add byte [edx], ah
add byte gs:[eax + eax], ch
add al, ch
xor esp, dword [ecx]
pop es
add al, ch
and byte [eax], al
add byte [eax], al
call 0x404700
inc esp
add byte [ebp], dh
jo 0x4046e6
insb byte es:[edi], dx
add byte [ecx], ch
arpl word [eax], ax
popal
add byte [eax + eax + 0x65], dh
add byte [eax], ah
add byte [eax + eax + 0x61], ch
add byte [edx], ah
add byte gs:[eax + eax], ch
add al, ch
or dword [ecx], esp
pop es
add al, ch
sub al, byte [eax]
add byte [eax], al
call 0x404734
inc esp
add byte [ebp], dh
jo 0x404710
insb byte es:[edi], dx
add byte [ecx], ch
arpl word [eax], ax
popal
add byte [eax + eax + 0x65], dh
add byte [eax], ah
add byte [ebx], dh
jne 0x404722
bound eax, qword [eax]
jb 0x404726
outsd dx, dword [esi]
add byte [ebp], dh
je 0x40472c
imul eax, dword [eax], 0x65006e
add byte [eax], al
call fcn.0047680e
pushal
push esi
xor ebx, ebx
call fcn.00474395
cmp dword [0x404f6c], 0
je 0x40468c
cmp dword [0x404f6c], 0xc
jne 0x474202
push 5
push 0x403f24
push 0x466fe4
call dword [sym.imp.shlwapi.dll_StrCmpNW]
cmp eax, 0
je 0x4741fd
push 5
push 0x403f30
push 0x466fe4
call dword [sym.imp.shlwapi.dll_StrCmpNW]
cmp eax, 0
je 0x4741fd
call 0x4741b6
inc eax
add byte [eax], al
add byte [eax], al
push 0x466fe4
call dword [sym.imp.kernel32.dll_lstrcmpW]
cmp eax, 0
je 0x4741ee
call fcn.0047437b
test eax, eax
jne 0x404763
push 0
call fcn.0046c902
test eax, eax
jne 0x4046db
push 1
call fcn.0046c902
mov dword [eax + 0x44], esi
jmp 0x4741fd
call fcn.0046ca01
mov dword [eax + 0x44], esi
mov dword [eax + 0x48], 0xffffffff
jmp 0x474311
cmp dword [0x404f6c], 5
jne 0x474221
call fcn.0047437b
cmp eax, 0
jne 0x47421c
push 1
call fcn.0046c8c0
jmp 0x474311
cmp dword [0x404f6c], 0xb
jne 0x474236
push 1
call fcn.0046c864
jmp 0x474311
cmp dword [0x404f6c], 6
jne 0x474311
cmp eax, 0xbe
jne 0x474254
call fcn.0046c5b3
jmp 0x474311
cmp eax, 0xbf
je 0x474262
cmp eax, 0xc2
jne 0x4742b4
mov edi, eax
call fcn.00474395
cmp dword [0x404f6c], 8
je 0x474277
jmp 0x40468c
call fcn.0047437b
test eax, eax
jne 0x404763
push 0
call fcn.0046c945
test eax, eax
jne 0x404705
push 1
call fcn.0046c945
mov dword [eax + 0x44], esi
mov dword [eax + 0x48], edi
cmp edi, 0xbf
jne 0x4742ad
call fcn.0046c773
call fcn.0046c5b3
jmp 0x474311
cmp eax, 0x97
jne 0x4742ee
test ebx, ebx
je 0x404b5d
mov eax, dword [0x404f24]
nop
call 0x4742dc
jae 0x4742d0
add byte gs:[eax + eax + 0x65], ch
add byte [ebx], ah
je 0x4742da
add byte [eax], al
push esi
push eax
call dword [sym.imp.shlwapi.dll_StrRStrIW]
test eax, eax
je 0x404b5d
jmp 0x474311
cmp eax, 0x96
jne 0x4742ff
add ebx, 1
call fcn.0046c737
jmp 0x474311
cmp eax, 0x98
jne 0x474311
test ebx, ebx
je 0x404b5d
sub ebx, 1
cmp eax, 0xfa
jne 0x47415e
pop esi
xor ecx, ecx
call fcn.00474395
cmp dword [0x404f6c], 2
jne 0x474352
mov dx, word [0x466fe4]
cmp dx, 0x28
jne 0x474341
add ecx, 1
mov edi, esi
jmp 0x47434c
cmp dx, 0x29
jne 0x47434c
sub ecx, 1
mov edi, esi
test ecx, ecx
jl 0x474369
jmp 0x474372
cmp dword [0x404f6c], 1
je 0x474364
cmp dword [0x404f6c], 0xffffffff
jne 0x474372
cmp ecx, 0
je 0x474370
mov esi, edi
jmp 0x404953
xor ecx, ecx
cmp eax, 0xfa
jne 0x47431f
popal
ret