Function at 0x1001b050
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006a68f
mov eax, dword fs:[0]
push eax
sub esp, 0x844
mov eax, dword [0x100891f4]
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
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.10043b10
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x420]
push eax
call edi
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.10043b10
add esp, 0xc
lea ecx, [ebp - 0x831]
call fcn.100181d0
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x628]
push eax
call esi
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5cd
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x844], eax
lea eax, [ebp - 0x628]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x844]
call fcn.10002830
test al, al
jne 0x1001b154
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001b132
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x844]
call fcn.100037a0
mov eax, dword [ebp - 0x844]
mov dword [ebp - 4], 1
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.DisplayIcon
lea ecx, [ebp - 0x831]
call fcn.10018eb0
mov ebx, dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
lea ecx, [ebp - 0x831]
call fcn.100185b0
push eax
lea ecx, [ebp - 0x850]
call fcn.100023e0
mov ecx, dword [ebp - 0x850]
mov byte [ebp - 4], 2
mov eax, dword [ecx - 0xc]
add eax, eax
push eax
push ecx
push 1
push str.DisplayName
lea ecx, [ebp - 0x831]
call fcn.10018c90
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.10043b10
add esp, 0xc
lea ecx, [ebp - 0x831]
call fcn.10017ed0
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call esi
push ecx
mov esi, esp
mov dword [ebp - 0x838], esi
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5d7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 3
push eax
mov ecx, esi
call fcn.10002830
test al, al
jne 0x1001b25e
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001b240
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.100037a0
lea eax, [ebp - 0x84c]
mov byte [ebp - 4], 2
push eax
call fcn.100032a0
add esp, 8
mov ecx, dword [ebp - 0x84c]
mov byte [ebp - 4], 4
mov eax, dword [ecx - 0xc]
add eax, eax
push eax
push ecx
push 1
push str.DisplayVersion
lea ecx, [ebp - 0x831]
call fcn.10019210
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
lea eax, [ebp - 0x218]
push eax
call edi
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5e1
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x840], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x840]
call fcn.10002830
test al, al
jne 0x1001b307
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001b2e5
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x840]
call fcn.100037a0
mov eax, dword [ebp - 0x840]
mov byte [ebp - 4], 6
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.InstallLocation
lea ecx, [ebp - 0x831]
call fcn.10018ad0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5eb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x83c], eax
push 0x1006ecd4
lea ecx, [ebp - 0x83c]
mov byte [ebp - 4], 7
call fcn.10002830
test al, al
jne 0x1001b379
push 0xe
push 0x1006ecd4
lea ecx, [ebp - 0x83c]
call fcn.100037a0
mov eax, dword [ebp - 0x83c]
mov byte [ebp - 4], 8
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push str.Publisher
lea ecx, [ebp - 0x831]
call fcn.10018910
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
push 0x208
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.10043b10
add esp, 0xc
lea eax, [ebp - 0x420]
push str.Uninst.exe
push eax
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5f5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x848], eax
lea eax, [ebp - 0x830]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x848]
call fcn.10002830
test al, al
jne 0x1001b435
lea ecx, [ebp - 0x830]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001b413
sub ecx, edx
lea eax, [ebp - 0x830]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x848]
call fcn.100037a0
mov edi, dword [ebp - 0x848]
lea ecx, [ebp - 0x831]
mov byte [ebp - 4], 0xa
mov eax, dword [edi - 0xc]
add eax, eax
push eax
push edi
push 1
push str.UninstallString
call fcn.10017a10
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
call fcn.100031c0
mov ecx, eax
test ecx, ecx
je 0x1001b5ff
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x838], eax
push 0x1006e1fc
lea ecx, [ebp - 0x838]
mov byte [ebp - 4], 0xb
call fcn.10002830
test al, al
jne 0x1001b4a7
push 0
push 0x1006e1fc
lea ecx, [ebp - 0x838]
call fcn.100037a0
mov esi, dword [ebp - 0x838]
lea ecx, [ebp - 0x831]
mov byte [ebp - 4], 0xc
mov eax, dword [esi - 0xc]
add eax, eax
push eax
push esi
push 1
push str.URLInfoAbout
call fcn.10017fb0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xa
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001b4f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x1001b50b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x83c]
mov eax, esi
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001b52c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x840]
mov eax, esi
mov byte [ebp - 4], 4
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001b54d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x84c]
mov eax, esi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001b56e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x850]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001b58f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x844]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x1001b5b1
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.100264cc
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10002810
push 0x80004005
call fcn.10002810
push 0x80004005
call fcn.10002810
push 0x80004005
call fcn.10002810
push 0x80004005
call fcn.10002810
push 0x80004005
call fcn.10002810
int3