Function at 0x407f00
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x40fd01
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x630
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x439]
mov byte [esp + 0x438], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x438]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x650]
lea eax, [esp + 0x438]
push eax
push ebx
push str._ins
push str.ins_
push ecx
call fcn.00407d10
add esp, 0x14
test eax, eax
je 0x407f96
lea edx, [esp + 0x438]
push 0x41595c
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x407fa0
mov eax, 1
jmp 0x4082f9
mov dword [0x416448], 1
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x335]
mov byte [esp + 0x334], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x334]
push 0x103
push eax
call fcn.00407cb0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x545]
mov byte [esp + 0x544], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x544]
push 0x103
push ecx
stosb byte es:[edi], al
call fcn.00407770
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x13d]
mov byte [esp + 0x13c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edx, [esp + 0x344]
push 0x104
lea eax, [esp + 0x140]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
or ebp, 0xffffffff
mov edi, str.msiexec.exe
mov ecx, ebp
xor eax, eax
add esp, 0x1c
lea edx, [esp + 0x12c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x28], bl
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
mov byte [esp + 0x230], bl
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x40
lea edi, [esp + 0x29]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, str.__i
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x40
lea edi, [esp + 0x231]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, str.baselib_vcredist.msi
mov ecx, ebp
xor eax, eax
lea edx, [esp + 0x230]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.00403b00
lea ecx, [esp + 0x230]
push ebx
push ecx
mov dword [esp + 0x650], ebx
call dword [sym.imp.MSVCRT.dll__access]
add esp, 8
cmp eax, ebp
je 0x408195
lea edi, [esp + 0x230]
mov ecx, ebp
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.__quiet__norestart
mov ecx, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x130]
push ecx
push str._s_n_s_n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0xc
lea edx, [esp + 0x28]
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x10]
push edx
push ebp
push 1
push eax
call fcn.00403bd0
test eax, eax
je 0x4081e6
lea ecx, [esp + 0x53c]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push str._baselib_rzxnpf_setup.exe
lea ecx, [esp + 0x18]
mov byte [esp + 0x64c], 1
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x14]
push 0x416340
push ebp
push 1
push edx
lea ecx, [esp + 0x20]
call fcn.00403bd0
test eax, eax
jne 0x4081fd
lea ecx, [esp + 0x14]
mov byte [esp + 0x648], bl
call fcn.0040f288
lea ecx, [esp + 0x10]
mov dword [esp + 0x648], ebp
call fcn.00403b30
xor eax, eax
jmp 0x4082f9
push ebx
push ecx
lea eax, [esp + 0x33c]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_1
push ecx
mov byte [esp + 0x654], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push str.baselib
call sub.MFC42.DLL_CString::CString_1
mov byte [esp + 0x654], 1
call fcn.004078f0
mov ebp, eax
add esp, 0xc
cmp ebp, ebx
je 0x4082d3
mov ecx, dword [str.TRUE]
mov dl, byte [0x415914]
mov dword [esp + 0x1c], ecx
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x20], dl
repne scasb al, byte es:[edi]
lea eax, [esp + 0x18]
push eax
push 0x20006
not ecx
push ebx
dec ecx
push str.SOFTWARERZX_WWM
push reloc.OLEAUT32.dll_SysReAllocString
mov esi, ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x4082af
lea ecx, [esp + 0x24]
lea edx, [esp + 0x18]
push ecx
push edx
push ebx
push 0x20006
push ebx
push ebx
push ebx
push str.SOFTWARERZX_WWM
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4082d3
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push esi
push eax
push 1
push ebx
push str.Baselib
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x14]
mov byte [esp + 0x648], bl
call fcn.0040f288
lea ecx, [esp + 0x10]
mov dword [esp + 0x648], 0xffffffff
call fcn.00403b30
mov eax, ebp
mov ecx, dword [esp + 0x640]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x63c
ret