Function at 0x401140
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x492031
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x4c56f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CDuiString::GetLength_void_const]
mov edi, ecx
call ebx
test eax, eax
jne 0x401183
xor al, al
jmp 0x401339
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp - 0xe0]
push eax
push 0x20006
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x401337
lea ecx, [ebp - 0xe4]
push ecx
lea edx, [ebp - 0xe0]
push edx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall06F57725_D702_43A9_A8D4_40BB36C9B07F
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp - 0xe0]
push eax
push 0x20006
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall06F57725_D702_43A9_A8D4_40BB36C9B07F
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x401337
lea ecx, [ebp - 0x54]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_void_]
mov dword [ebp - 4], 0
mov esi, dword [sym.imp.DuiLib.dll_public:_char_const____thiscall_DuiLib::CDuiString::GetData_void_const]
push str.Unins.exe
mov ecx, edi
call esi
push eax
lea ecx, [ebp - 0x54]
push 0x4a15e0
push ecx
call dword [sym.imp.DuiLib.dll_public:_int___cdecl_DuiLib::CDuiString::Format_char_const__]
mov edi, dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_char_const___int_]
add esp, 0x10
push 0xffffffffffffffff
push 0x4a15e8
lea ecx, [ebp - 0x98]
call edi
push 0xffffffffffffffff
push 0x4a15f0
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 1
call edi
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call ebx
push eax
lea ecx, [ebp - 0x54]
call esi
mov edx, dword [ebp - 0xe0]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
push 1
push 0
push str.DisplayIcon
push edx
call edi
lea ecx, [ebp - 0x98]
call ebx
push eax
lea ecx, [ebp - 0x98]
call esi
push eax
mov eax, dword [ebp - 0xe0]
push 1
push 0
push str.DisplayName
push eax
call edi
lea ecx, [ebp - 0xdc]
call ebx
push eax
lea ecx, [ebp - 0xdc]
call esi
mov ecx, dword [ebp - 0xe0]
push eax
push 1
push 0
push str.DisplayVersion
push ecx
call edi
lea ecx, [ebp - 0x98]
call ebx
push eax
lea ecx, [ebp - 0x98]
call esi
mov edx, dword [ebp - 0xe0]
push eax
push 1
push 0
push str.Publisher
push edx
call edi
lea ecx, [ebp - 0x54]
call ebx
push eax
lea ecx, [ebp - 0x54]
call esi
push eax
mov eax, dword [ebp - 0xe0]
push 1
push 0
push str.UninstallString
push eax
call edi
mov ecx, dword [ebp - 0xe0]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 1
mov esi, dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
lea ecx, [ebp - 0xdc]
call esi
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0
call esi
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
call esi
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046eadd
mov esp, ebp
pop ebp
ret