Function at 0x4525c0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51677e
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x558438]
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 esi, ecx
mov dword [ebp - 0x224], esi
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0049ed70
add esp, 0xc
lea eax, [ebp - 0x218]
push str.Anything.exe
push dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
call fcn.00405110
mov ecx, eax
test ecx, ecx
je 0x452aa6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22c], eax
lea edi, [ebp - 0x218]
mov dword [ebp - 4], 0
shr edi, 0x10
test edi, edi
jne 0x452668
lea eax, [ebp - 0x218]
movzx eax, ax
lea ecx, [ebp - 0x22c]
push eax
call fcn.004055a0
jmp 0x452693
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452671
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00405ba0
or ebx, 0xffffffff
mov dword [ebp - 4], 1
cmp dword [esi + 0x10], 0
je 0x452a68
mov eax, dword [ebp - 0x22c]
mov esi, dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.DisplayIcon
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallAnything
push reloc.OLEAUT32.dll_SysReAllocString
call esi
call fcn.00405110
mov ecx, eax
test ecx, ecx
je 0x452ab0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x228], eax
mov eax, 0x526480
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x228]
test eax, 0xffff0000
jne 0x45270b
movzx eax, ax
push eax
call fcn.004055a0
jmp 0x452717
push 8
push 0x526480
call fcn.00405ba0
mov eax, dword [ebp - 0x228]
mov byte [ebp - 4], 3
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.DisplayName
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallAnything
push reloc.OLEAUT32.dll_SysReAllocString
call esi
call fcn.00405110
mov ecx, eax
test ecx, ecx
je 0x452aba
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 4
call fcn.00405110
mov ecx, eax
test ecx, ecx
je 0x452ac4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x220], eax
mov byte [ebp - 4], 5
test edi, edi
jne 0x452798
lea eax, [ebp - 0x218]
movzx esi, ax
lea ecx, [ebp - 0x220]
push esi
call fcn.004055a0
jmp 0x4527cc
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4527a1
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.00405ba0
lea eax, [ebp - 0x218]
movzx esi, ax
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00421e60
mov edx, dword [ebp - 0x220]
add esp, 8
mov byte [ebp - 4], 4
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x452807
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.DisplayVersion
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallAnything
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.00405110
mov ecx, eax
test ecx, ecx
je 0x452ace
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x220], eax
mov byte [ebp - 4], 7
test edi, edi
jne 0x45286b
push esi
lea ecx, [ebp - 0x220]
call fcn.004055a0
jmp 0x452896
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x452874
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.00405ba0
mov edi, dword [ebp - 0x220]
mov byte [ebp - 4], 8
mov eax, dword [edi - 0xc]
add eax, eax
push eax
push edi
push 1
push str.InstallLocation
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallAnything
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov ecx, dword [ebp - 0x224]
mov eax, dword [ecx]
sub eax, 0x10
push eax
call fcn.00404b30
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x224], esi
mov eax, dword [esi - 0xc]
mov byte [ebp - 4], 9
mov dword [ebp - 0x234], eax
cmp eax, 1
jg 0x4528fe
add esi, 0xfffffff0
push esi
call fcn.00404b30
add esp, 4
lea esi, [eax + 0x10]
jmp 0x45297b
mov ecx, dword [esi - 0x10]
test ecx, ecx
je 0x452910
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x45291e
call fcn.00405110
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
mov eax, dword [ebp - 0x234]
dec eax
lea eax, [esi + eax*2]
mov dword [ebp - 0x234], eax
test ecx, ecx
je 0x452ad8
test eax, eax
je 0x452ae2
mov eax, dword [ecx]
push 2
push 1
call dword [eax]
test eax, eax
je 0x452aec
cmp dword [eax + 8], 1
lea esi, [eax + 0x10]
jl 0x452ae2
push 1
push dword [ebp - 0x234]
xor eax, eax
mov dword [esi - 0xc], 1
push 1
push esi
mov word [esi + 2], ax
call fcn.00404c70
add esp, 0x10
cmp dword [esi - 0xc], 1
jne 0x45298e
cmp word [esi], 0x5c
mov byte [ebp - 0x219], 1
je 0x452995
mov byte [ebp - 0x219], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4529ac
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x219], 0
lea ecx, [ebp - 0x224]
je 0x4529c2
push 0x5282bc
jmp 0x4529c7
push str.uninst.exe
call fcn.0040d840
mov esi, dword [ebp - 0x224]
mov eax, dword [esi - 0xc]
add eax, eax
push eax
push esi
push 1
push str.UninstallString
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallAnything
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov byte [ebp - 4], 8
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x452a0b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x452a26
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x230]
mov eax, ebx
mov byte [ebp - 4], 3
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x452a47
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x228]
mov eax, ebx
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x452a68
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x452a8a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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.0046d3b6
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404a70
push 0x80004005
call fcn.00404a70
push 0x80004005
call fcn.00404a70
push 0x80004005
call fcn.00404a70
push 0x80004005
call fcn.00404a70
push 0x80004005
call fcn.00404a70
push 0x80070057
call fcn.00404a70
call fcn.00405d00
int3