Function at 0x4062d0
Capabilities:
Delete registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x624
mov eax, dword [0x41507c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x206
xor ebx, ebx
lea ecx, [ebp - 0x412]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x414], ax
call fcn.0040ca90
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 0xc
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea edx, [ebp - 0x414]
push edx
call esi
push 0x206
lea ecx, [ebp - 0x61a]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x61c], ax
call fcn.0040ca90
mov ax, word [0x415c9e]
movzx edx, ah
push edx
movzx eax, al
push eax
mov eax, dword [0x415c9c]
mov ecx, eax
shr ecx, 8
movzx edx, cl
push edx
movzx eax, al
push eax
mov ax, word [0x415c9a]
movzx ecx, ah
push ecx
movzx edx, al
mov eax, dword [0x415c98]
push edx
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, word [0x415c96]
push edx
movzx edx, word [0x415c94]
movzx eax, al
push eax
mov eax, dword [0x415c90]
push ecx
push edx
push eax
lea ecx, [ebp - 0x61c]
push str._08X__04X__04X__02X_02X__02X_02X_02X_02X_02X_02X
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x40
lea edx, [ebp - 0x61c]
push edx
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x206
lea edx, [ebp - 0x20a]
xor ecx, ecx
push ebx
push edx
mov dword [ebp - 0x620], ebx
mov dword [ebp - 0x624], ebx
mov word [ebp - 0x20c], cx
call fcn.0040ca90
add esp, 0xc
lea eax, [ebp - 0x624]
push eax
lea ecx, [ebp - 0x620]
push ecx
push ebx
push 0x20006
push ebx
push ebx
push ebx
lea edx, [ebp - 0x414]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x40655d
cmp dword [0x415cc4], 8
mov eax, dword [0x415cb0]
jae 0x406422
mov eax, 0x415cb0
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.Iime
lea ecx, [ebp - 0x20c]
push ecx
call edi
push str.Uninst.exe
lea edx, [ebp - 0x20c]
push edx
call edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x20c]
push eax
call edi
lea ecx, [eax + eax + 2]
mov eax, dword [ebp - 0x620]
push ecx
lea edx, [ebp - 0x20c]
push edx
push 1
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.DisplayIcon
push eax
call ebx
test eax, eax
jne 0x406525
lea ecx, [ebp - 0x20c]
push ecx
call edi
mov ecx, dword [ebp - 0x620]
lea edx, [eax + eax + 2]
push edx
lea eax, [ebp - 0x20c]
push eax
push 1
push 0
push str.UninstallString
push ecx
call ebx
test eax, eax
jne 0x406525
push 0x412478
lea edx, [ebp - 0x20c]
push edx
call esi
lea eax, [ebp - 0x20c]
push eax
call edi
lea ecx, [eax + eax + 2]
mov eax, dword [ebp - 0x620]
push ecx
lea edx, [ebp - 0x20c]
push edx
push 1
push 0
push str.DisplayName
push eax
call ebx
test eax, eax
jne 0x406525
push 0x412cf8
lea ecx, [ebp - 0x20c]
push ecx
call esi
lea edx, [ebp - 0x20c]
push edx
call edi
mov edx, dword [ebp - 0x620]
lea eax, [eax + eax + 2]
push eax
lea ecx, [ebp - 0x20c]
push ecx
push 1
push 0
push str.Publisher
push edx
call ebx
test eax, eax
je 0x40655d
mov eax, dword [ebp - 0x620]
test eax, eax
je 0x40654a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x620]
lea eax, [ebp - 0x414]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00408d89
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.00408d89
mov esp, ebp
pop ebp
ret