Function at 0x418d50
Capabilities:
Copy file
Get common file path
Set file attributes
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4308b1
mov eax, dword fs:[0]
push eax
sub esp, 0x460
mov eax, dword [0x448070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.Entering____UpdateProunstRegistry__
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push 0x435d58
lea eax, [ebp - 0x468]
push 0x448024
push eax
call fcn.0040fb60
push 0x208
lea eax, [ebp - 0x420]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.0041c090
add esp, 0x20
lea eax, [ebp - 0x420]
push 0x208
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov dword [ebp - 0x43c], 7
mov dword [ebp - 0x440], 0
mov word [ebp - 0x450], ax
cmp word [ebp - 0x420], ax
jne 0x418df9
xor ecx, ecx
jmp 0x418e11
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418e02
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x450]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const___unsigned_int_
push 0x435d58
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.0040fb60
add esp, 0xc
cmp dword [ebp - 0x424], 8
lea ecx, [ebp - 0x438]
push 0
cmovae ecx, dword [ebp - 0x438]
lea eax, [ebp - 0x468]
cmp dword [ebp - 0x454], 8
push ecx
cmovae eax, dword [ebp - 0x468]
push eax
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x418f45
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push 0x80
cmovae eax, dword [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x46c]
push eax
push str.SOFTWAREIntelProunstlDins
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x418f39
movdqu xmm0, xmmword [str.SetupBD.Uninstall]
mov eax, dword [0x435dd0]
push 0x1e4
movdqu xmmword [ebp - 0x218], xmm0
mov dword [ebp - 0x1f8], eax
lea eax, [ebp - 0x1f4]
movdqu xmm0, xmmword [0x435dc0]
push 0
push eax
movdqu xmmword [ebp - 0x208], xmm0
call fcn.0041c090
lea ecx, [ebp - 0x218]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418f06
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push str.SetupBD.din
push dword [ebp - 0x46c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x46c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Exiting____UpdateProunstRegistry__
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
cmp dword [ebp - 0x424], 8
jb 0x418f6e
push dword [ebp - 0x438]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0x424], 7
cmp dword [ebp - 0x43c], 8
mov dword [ebp - 0x428], 0
mov word [ebp - 0x438], ax
jb 0x418fa2
push dword [ebp - 0x450]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0x43c], 7
cmp dword [ebp - 0x454], 8
mov dword [ebp - 0x440], 0
mov word [ebp - 0x450], ax
jb 0x418fd6
push dword [ebp - 0x468]
call fcn.0041aa29
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041b486
mov esp, ebp
pop ebp
ret