Function at 0x407357
Capabilities:
Create directory
Get file attributes
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov eax, dword [eax + 0xbc]
mov dword [ebp - 4], 0x20a
test eax, eax
je 0x4075ca
push str.UPLAYER
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4075ca
and byte [ebp - 0x210], al
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x210]
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionApp_Pathsuplayer.exe
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
test eax, eax
jne 0x4073da
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
test eax, eax
jle 0x4073da
cmp byte [ebp + eax - 0x210], 0x5c
je 0x4073cf
dec eax
test eax, eax
jg 0x4073be
jmp 0x4073da
and byte [ebp + eax - 0x210], 0
mov dword [ebp - 4], eax
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x210]
push eax
call esi
or ebx, 0xffffffff
cmp eax, ebx
je 0x4073fd
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
jne 0x40740f
lea eax, [ebp - 0x210]
push str.C:Program_FilesUltraPlayer
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x210]
push eax
call esi
cmp eax, ebx
je 0x407429
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
jne 0x40743b
lea eax, [ebp - 0x210]
push str.C:UltraPlayer
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x210]
push eax
call esi
cmp eax, ebx
je 0x407455
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
jne 0x407467
lea eax, [ebp - 0x210]
push 0x4179ac
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
lea eax, [ebp - 0x210]
push str.Please_select_your_UltraPlayer_directory._Press_cancel_if_you_dont_have_UltraPlayer.
push eax
lea eax, [ebp - 0x210]
push eax
push dword [0x42552c]
call fcn.0040bf69
add esp, 0x14
test eax, eax
je 0x407535
lea eax, [ebp - 0x210]
push eax
call esi
cmp eax, ebx
je 0x407535
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
je 0x407535
lea eax, [ebp - 0x210]
push str.plugins
push eax
call edi
lea eax, [ebp - 0x210]
push eax
call esi
cmp eax, ebx
je 0x4074de
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
jne 0x407539
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
and byte [ebp + eax - 0x218], 0
mov dword [ebp - 4], eax
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x41c]
push str.The_directory:_n_n_s_n_ndoes_not_appear_to_be_a_valid_UltraPlayer_installation._n_nWould_you_like_to_select_another_directory__n_nIf_you_select_no__the_UltraPlayer_plugin_will_not_be_installed._n
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x41c]
push 4
push str.Invalid_UltraPlayer_directory
push eax
push dword [0x42552c]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
je 0x40746d
push 8
jmp 0x407591
lea eax, [ebp - 0x210]
push str._vis
push eax
call edi
lea eax, [ebp - 0x210]
push eax
call esi
cmp eax, ebx
je 0x407561
lea eax, [ebp - 0x210]
push eax
call esi
test al, 0x10
jne 0x407574
lea eax, [ebp - 0x210]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x407535
lea eax, [ebp - 0x210]
push eax
push 0x425318
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.0040cd19
test eax, eax
jne 0x407594
push 6
pop eax
jmp 0x4075cc
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
cmp eax, ebx
jle 0x4075ca
mov eax, dword [ecx + eax*4 + 0xf0]
mov dword [eax + 8], 1
lea eax, [ebp - 0x210]
push eax
mov eax, dword [ecx + 0x4c]
mov ecx, dword [ecx + eax*4 + 0xf0]
call fcn.00401e00
test eax, eax
jne 0x4075ca
push 5
jmp 0x407591
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret