Function at 0x40f58c
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.004418a6
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.004418a6
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.004427d0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40f638
push ebx
call fcn.004418b2
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 0x40f67a
push 0x59
push 0x408a20d
push 6
call fcn.004418ac
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 0x40f6af
push 0xca
push 0x408a20d
push 6
call fcn.004418ac
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40ff4f
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 0x40f6f8
push 0x16c
push 0x408a20d
push 6
call fcn.004418ac
add esp, 0xc
mov dword [ebp - 0x10], eax
push dword [ebp - 4]
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
mov ecx, 2
call fcn.004047a3
add esp, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40f727
push ebx
call fcn.004418b2
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.004047a3
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 0x40f75f
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f791
push ebx
call fcn.004418b2
add esp, 4
mov eax, dword [ebp - 0x30]
push eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x40f7a5
push ebx
call fcn.004418b2
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 0x40f7da
mov eax, 0x47b310
push eax
push 4
mov ebx, 0x148
call fcn.00443080
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x40f7ff
jmp 0x40ff38
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 0x40f830
mov eax, 0x47b310
push eax
push 4
mov ebx, 0x148
call fcn.00443080
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x40f855
jmp 0x40ff38
push str.UninstallString
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
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 0x40f886
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f8b8
push ebx
call fcn.004418b2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40f8cb
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00441ff0
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40f8f1
push ebx
call fcn.004418b2
add esp, 4
push 0x47b310
push dword [ebp - 0x34]
call fcn.00404698
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 0x40f91f
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x38], 0
je 0x40ff38
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
add esp, 8
mov dword [ebp - 0x2c], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40f954
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 2
mov ebx, 0x6ac
call fcn.004445c0
add esp, 0x1c
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f986
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x30], 1
jne 0x40ff33
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
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 0x40f9c1
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40f9f3
push ebx
call fcn.004418b2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40fa06
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00441ff0
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40fa2c
push ebx
call fcn.004418b2
add esp, 4
mov eax, dword [ebp - 0x34]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40fa40
push ebx
call fcn.004418b2
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
push str.DisplayVersion
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
add esp, 8
mov dword [ebp - 0x2c], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40fa6f
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 2
mov ebx, 0x6ac
call fcn.004445c0
add esp, 0x1c
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40faa1
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x30], 1
jne 0x40fc36
push str.DisplayName
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
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 0x40fadc
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fb0e
push ebx
call fcn.004418b2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40fb21
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00441ff0
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40fb47
push ebx
call fcn.004418b2
add esp, 4
push str.DisplayVersion
push dword [ebp - 0x18]
mov ecx, 2
call fcn.004047a3
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 0x40fb78
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x40fbaa
push ebx
call fcn.004418b2
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x40fbbd
mov eax, 0x47b310
push eax
push 1
mov ebx, 0x174
call fcn.00441ff0
add esp, 0x10
mov dword [ebp - 0x40], eax
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x40fbe3
push ebx
call fcn.004418b2
add esp, 4
push dword [ebp - 0x40]
push 0x47b30c
push dword [ebp - 0x34]
mov ecx, 3
call fcn.004047a3
add esp, 0xc
mov dword [ebp - 0x44], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fc0e
push ebx
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x40]
test ebx, ebx
je 0x40fc1e
push ebx
call fcn.004418b2
add esp, 4
mov eax, dword [ebp - 0x44]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40fc32
push ebx
call fcn.004418b2
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
push 0
mov ebx, 0x350
call fcn.00442460
add esp, 4
cmp dword [ebp + 8], 1
jne 0x40fd5f
push 0xa0000101
push 0
push 0x486594
push 1
mov ebx, 0x168
call fcn.00442940
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.004100c4
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fcab
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x38], 0xffffffff
jne 0x40fd1c
push 0xa0000101
push 0
push 0x4865a0
push 1
mov ebx, 0x168
call fcn.00442940
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.004100c4
mov dword [ebp - 0x4c], eax
mov ebx, dword [ebp - 0x40]
test ebx, ebx
je 0x40fd0e
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x40fd1c
xor eax, eax
jmp 0x40fd21
mov eax, 1
test eax, eax
je 0x40fd5f
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 0x40fd55
push 0x7a8
push 0x408a20d
push 6
call fcn.004418ac
add esp, 0xc
mov eax, 0x4865ac
jmp 0x40fff1
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.004100c4
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fd9f
push ebx
call fcn.004418b2
add esp, 4
cmp dword [ebp - 0x38], 0xffffffff
je 0x40fdae
jmp 0x40ff33
lea eax, [ebp - 0x24]
push eax
push 4
mov eax, 2
call fcn.00441e20
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.00402284
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 0x40fdf1
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.004418b8
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 0x40fe34
push eax
mov ebx, eax
call fcn.00404738
inc eax
push eax
call fcn.004418a6
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.004047a3
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 0x40fe68
mov eax, 0x47b310
push eax
push 0x80000301
push 0
push 4
push 3
mov ebx, 0x698
call fcn.00444430
add esp, 0x28
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x40fe9a
push ebx
call fcn.004418b2
add esp, 4
lea eax, [ebp - 0x28]
push eax
push 4
mov eax, 2
call fcn.00441e20
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.00402284
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 0x40fedd
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.004418b8
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 0x40ff20
push eax
mov ebx, eax
call fcn.00404738
inc eax
push eax
call fcn.004418a6
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 0x40ff33
push ebx
call fcn.004418b2
add esp, 4
jmp 0x40ff38
push 0
mov ebx, 0x350
call fcn.00442460
add esp, 4
jmp 0x40f6b2
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 0x40ff7b
push 0x95b
push 0x408a20d
push 6
call fcn.004418ac
add esp, 0xc
cmp dword [ebp + 8], 1
jne 0x40ff8a
jmp 0x40ffe7
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, 0x44b9b8
call fcn.00441ec0
add esp, 0x28
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push 0x5a3b78
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 0x40ffe7
push ebx
call fcn.004418b2
add esp, 4
mov eax, 0x4865d4
jmp 0x40fff1
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x410002
push ebx
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x410012
push ebx
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x410022
push ebx
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x410032
push ebx
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x24]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x410050
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x41004c
imul eax, dword [ebx]
jmp 0x410041
mov ecx, eax
test ecx, ecx
je 0x41006f
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x410068
push ebx
push eax
call fcn.004418b2
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x410056
call fcn.004418b2
add esp, 4
mov ebx, dword [ebp - 0x28]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x410095
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x410091
imul eax, dword [ebx]
jmp 0x410086
mov ecx, eax
test ecx, ecx
je 0x4100b4
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4100ad
push ebx
push eax
call fcn.004418b2
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x41009b
call fcn.004418b2
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8