Function at 0x409720
Capabilities:
Set registry value

Disassembly:
sub esp, 0x51c
lea eax, [esp]
push ebx
push ebp
push esi
push edi
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
mov ebx, ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x409782
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x409770
push 0
push 0x4125d4
push 0x4131f8
mov ecx, ebx
call sub.MFC42.DLL_CWnd::MessageBoxA
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
call fcn.00403c20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov edi, 0x412d68
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x18], 0
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov ebp, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x1c]
push ecx
push 1
push eax
push str.DisplayName
push edx
call ebp
test eax, eax
jne 0x409ad1
mov edx, dword [ebx + 0x7c]
or ecx, 0xffffffff
mov edi, edx
mov byte [esp + 0x18], al
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x18]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx - 8]
mov dl, byte [ecx + edx - 1]
cmp dl, 0x5c
je 0x40984b
cmp dl, 0x2f
je 0x40984b
mov edi, 0x412260
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.UnInstall.exe
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.UninstallString
push ecx
call ebp
test eax, eax
je 0x4098bc
call fcn.00403c20
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov edx, dword [ebx + 0x7c]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
mov byte [esp + 0x18], 0
lea ebx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebx
mov ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [edx - 8]
mov dl, byte [eax + edx - 1]
cmp dl, 0x5c
je 0x40992e
cmp dl, 0x2f
je 0x40992e
mov edi, 0x412260
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push eax
push 1
push ebx
push str.SetupPath
push ecx
call ebp
test eax, eax
je 0x409974
call fcn.00403c20
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov edi, 0x412eb8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x18], bl
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push eax
push 1
push ebx
push str.HcNetState
push ecx
call ebp
test eax, eax
je 0x4099e8
call fcn.00403c20
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov edi, str.3.0.0.4
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x18], bl
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
dec ecx
push ecx
push str.3.0.0.4
push 1
push ebx
push str.setupver
push eax
call ebp
test eax, eax
je 0x409a31
call fcn.00403c20
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov edi, str.3.0.0.7
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x18], bl
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x1c]
push ecx
push 1
push ebx
push 0x413430
push edx
call ebp
test eax, eax
jne 0x409ad1
mov edi, str.1.0.0.4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x18]
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x18], bl
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov edx, dword [esp + 0x10]
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x1c]
push ecx
push 1
push ebx
push str.selfUpdate
push edx
call ebp
test eax, eax
je 0x409aee
call fcn.00403c20
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x51c
ret