Function at 0x40f670
Capabilities:
Get installed programs

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
push 8
call fcn.004418b6
add esp, 4
mov dword [ebp - 0x24], eax
mov edi, eax
mov esi, 0x47b314
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
push 8
call fcn.004418b6
add esp, 4
mov dword [ebp - 0x28], eax
mov edi, eax
mov esi, 0x47b314
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
push 0x80000301
push 0
push 0xff
push 1
mov ebx, 0x184
call fcn.004427e0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40f71c
push ebx
call fcn.004418c2
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0xff
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0xc]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push reloc.OLEAUT32.dll_SysReAllocString
xor eax, eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40f75e
push 0x59
push 0x408a20d
push 6
call fcn.004418bc
add esp, 0xc
mov dword [ebp - 0x2c], esp
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
xor eax, eax
call dword [0x5a3eec]
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40f793
push 0xca
push 0x408a20d
push 6
call fcn.004418bc
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x410033
mov dword [ebp - 8], 0xff
mov dword [ebp - 0x2c], esp
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
xor eax, eax
call dword [0x5a3eec]
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40f7dc
push 0x16c
push 0x408a20d
push 6
call fcn.004418bc
add esp, 0xc
mov dword [ebp - 0x10], eax
push dword [ebp - 4]
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40f80b
push ebx
call fcn.004418c2
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x14]
push str.DisplayIcon
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40f843
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f875
push ebx
call fcn.004418c2
add esp, 4
mov eax, dword [ebp - 0x30]
push eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x40f889
push ebx
call fcn.004418c2
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push 0x80000004
push 0
push str..KB
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x40f8be
mov eax, 0x47b310
push eax
push 4
mov ebx, 0x148
call fcn.00443090
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x40f8e3
jmp 0x41001c
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push 0x80000004
push 0
push 0x48655c
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x40f914
mov eax, 0x47b310
push eax
push 4
mov ebx, 0x148
call fcn.00443090
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x40f939
jmp 0x41001c
push str.UninstallString
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40f96a
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f99c
push ebx
call fcn.004418c2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40f9af
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00442000
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40f9d5
push ebx
call fcn.004418c2
add esp, 4
push 0x47b310
push dword [ebp - 0x34]
call fcn.0040477c
add esp, 8
cmp eax, 0
mov eax, 0
setne al
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fa03
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x38], 0
je 0x41001c
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40fa38
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 2
mov ebx, 0x6ac
call fcn.004445d0
add esp, 0x1c
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fa6a
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x30], 1
jne 0x410017
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40faa5
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fad7
push ebx
call fcn.004418c2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40faea
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00442000
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40fb10
push ebx
call fcn.004418c2
add esp, 4
mov eax, dword [ebp - 0x34]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40fb24
push ebx
call fcn.004418c2
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
push str.DisplayVersion
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40fb53
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 2
mov ebx, 0x6ac
call fcn.004445d0
add esp, 0x1c
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fb85
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x30], 1
jne 0x40fd1a
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40fbc0
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fbf2
push ebx
call fcn.004418c2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40fc05
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00442000
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40fc2b
push ebx
call fcn.004418c2
add esp, 4
push str.DisplayVersion
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x38], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x40fc5c
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x40fc8e
push ebx
call fcn.004418c2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x40fca1
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00442000
add esp, 0x10
mov dword [ebp - 0x40], eax
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x40fcc7
push ebx
call fcn.004418c2
add esp, 4
push dword [ebp - 0x40]
push 0x47b30c
push dword [ebp - 0x34]
mov ecx, 3
call fcn.00404887
add esp, 0xc
mov dword [ebp - 0x44], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fcf2
push ebx
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x40]
test ebx, ebx
je 0x40fd02
push ebx
call fcn.004418c2
add esp, 4
mov eax, dword [ebp - 0x44]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40fd16
push ebx
call fcn.004418c2
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
push 0
mov ebx, 0x350
call fcn.00442470
add esp, 4
cmp dword [ebp + 8], 1
jne 0x40fe43
push 0xa0000101
push 0
push 0x486594
push 1
mov ebx, 0x168
call fcn.00442950
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0
push 0
push dword [ebp - 0x30]
mov dword [ebp - 0x34], 0
push 0
push dword [ebp - 0x34]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004101a8
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fd8f
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x38], 0xffffffff
jne 0x40fe00
push 0xa0000101
push 0
push 0x4865a0
push 1
mov ebx, 0x168
call fcn.00442950
add esp, 0x10
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], 0
push 0
push dword [ebp - 0x44]
mov dword [ebp - 0x48], 0
push 0
push dword [ebp - 0x48]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004101a8
mov dword [ebp - 0x4c], eax
mov ebx, dword [ebp - 0x40]
test ebx, ebx
je 0x40fdf2
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x40fe00
xor eax, eax
jmp 0x40fe05
mov eax, 1
test eax, eax
je 0x40fe43
mov dword [ebp - 0x2c], esp
push dword [ebp - 0xc]
xor eax, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40fe39
push 0x7a8
push 0x408a20d
push 6
call fcn.004418bc
add esp, 0xc
mov eax, 0x4865ac
jmp 0x4100d5
mov dword [ebp - 0x2c], 0
push 0
push dword [ebp - 0x2c]
mov dword [ebp - 0x30], 0
push 0
push dword [ebp - 0x30]
mov eax, str.Microsoft
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004101a8
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fe83
push ebx
call fcn.004418c2
add esp, 4
cmp dword [ebp - 0x38], 0xffffffff
je 0x40fe92
jmp 0x410017
lea eax, [ebp - 0x24]
push eax
push 4
mov eax, 2
call fcn.00441e30
add esp, 8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x30], ebx
call fcn.00402368
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 0x30]
mov dword [edi], 1
add edi, 4
mov eax, ecx
inc eax
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x40fed5
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x34]
inc eax
shl eax, 2
add eax, 8
push eax
push dword [ebp - 0x30]
call fcn.004418c8
add esp, 8
mov dword [ebp - 0x24], eax
mov edi, eax
add edi, 8
mov eax, dword [ebp - 0x34]
shl eax, 2
add edi, eax
mov eax, dword [ebp - 0x2c]
push edi
test eax, eax
je 0x40ff18
push eax
mov ebx, eax
call fcn.0040481c
inc eax
push eax
call fcn.004418b6
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edi], eax
push str.Publisher
push dword [ebp - 0x18]
mov ecx, 2
call fcn.00404887
add esp, 8
mov dword [ebp - 0x2c], eax
push 0
push 0
push 0
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40ff4c
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444440
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40ff7e
push ebx
call fcn.004418c2
add esp, 4
lea eax, [ebp - 0x28]
push eax
push 4
mov eax, 2
call fcn.00441e30
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x38], ebx
call fcn.00402368
mov dword [ebp - 0x3c], ecx
mov edi, dword [ebp - 0x38]
mov dword [edi], 1
add edi, 4
mov eax, ecx
inc eax
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x40ffc1
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x3c]
inc eax
shl eax, 2
add eax, 8
push eax
push dword [ebp - 0x38]
call fcn.004418c8
add esp, 8
mov dword [ebp - 0x28], eax
mov edi, eax
add edi, 8
mov eax, dword [ebp - 0x3c]
shl eax, 2
add edi, eax
mov eax, dword [ebp - 0x34]
push edi
test eax, eax
je 0x410004
push eax
mov ebx, eax
call fcn.0040481c
inc eax
push eax
call fcn.004418b6
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edi], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x410017
push ebx
call fcn.004418c2
add esp, 4
jmp 0x41001c
push 0
mov ebx, 0x350
call fcn.00442470
add esp, 4
jmp 0x40f796
mov dword [ebp - 0x2c], esp
push dword [ebp - 0xc]
xor eax, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x41005f
push 0x95b
push 0x408a20d
push 6
call fcn.004418bc
add esp, 0xc
cmp dword [ebp + 8], 1
jne 0x41006e
jmp 0x4100cb
push 0xa0000004
push 0
push dword [ebp - 0x28]
push 0xa0000004
push 0
push dword [ebp - 0x24]
push 0x80000004
push 0
push str.SoftList
push 3
mov ebx, 0
mov eax, 0x44b9c8
call fcn.00441ed0
add esp, 0x28
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push 0x5a3b88
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x2c]
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x4100cb
push ebx
call fcn.004418c2
add esp, 4
mov eax, 0x4865d4
jmp 0x4100d5
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4100e6
push ebx
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x4100f6
push ebx
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x410106
push ebx
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x410116
push ebx
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x24]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x410134
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x410130
imul eax, dword [ebx]
jmp 0x410125
mov ecx, eax
test ecx, ecx
je 0x410153
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x41014c
push ebx
push eax
call fcn.004418c2
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x41013a
call fcn.004418c2
add esp, 4
mov ebx, dword [ebp - 0x28]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x410179
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x410175
imul eax, dword [ebx]
jmp 0x41016a
mov ecx, eax
test ecx, ecx
je 0x410198
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x410191
push ebx
push eax
call fcn.004418c2
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x41017f
call fcn.004418c2
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8