Function at 0x4015a0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 0
push 0x5c
mov eax, dword [ebp + 0xc]
push eax
call fcn.00401ee0
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4015d0
jmp 0x4017ff
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp + 0xc]
add ecx, 0xc
push ecx
call fcn.004021d7
add esp, 4
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401db0
add esp, 0xc
push str.uninstall.exe
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
push edx
call fcn.00401af0
add esp, 8
push 0
lea eax, [ebp - 4]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSAINT_Asset_Tracker
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x40163f
jmp 0x4017ff
cmp dword [ebp + 8], 0
je 0x401651
mov ecx, dword [ebp - 8]
add ecx, 0xce00
mov dword [ebp - 8], ecx
cmp dword [ebp + 0xc], 0
je 0x40166e
mov edx, dword [ebp - 8]
add edx, 0xce00
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
add eax, 0xce00
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
shr ecx, 0xa
mov dword [ebp - 8], ecx
push 0x426d04
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
push str.SAINT_Asset_Tracker
push 1
push 0
push str.DisplayName
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 1
push 0
push str.UninstallString
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 0x426e60
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
push str.SAINT_Corporation
push 1
push 0
push str.Publisher
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
lea ecx, [ebp - 0x14]
push ecx
push 4
push 0
push str.NoModify
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
lea eax, [ebp - 0x14]
push eax
push 4
push 0
push str.NoRepair
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
lea edx, [ebp - 8]
push edx
push 4
push 0
push str.EstimatedSize
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 0x426ebc
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
push 0x426ec0
push 1
push 0
push str.DisplayVersion
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
lea eax, [ebp - 4]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push str.SOFTWARESAINT_CorporationSAINT_Tracker
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4017f3
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
mov edx, dword [ebp + 0xc]
push edx
push 1
push 0
push str.InstallPath
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp + 8], 0
je 0x4017e9
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401bf0
add esp, 4
add eax, 1
push eax
mov edx, dword [ebp + 8]
push edx
push 1
push 0
push str.StartupPath
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0xc]
push edx
call fcn.0040219f
add esp, 4
mov esp, ebp
pop ebp
ret