Function at 0x401610
Capabilities:
Create thread
Delete registry key
Get installed programs
Query or enumerate registry value

Disassembly:
mov eax, 0x1058
call fcn.00401d40
mov eax, dword [0x415ad8]
xor eax, esp
mov dword [esp + 0x1054], eax
mov eax, dword [esp + 0x105c]
mov dword [esp + 0x10], eax
call dword [0x409070]
push str._silent
push eax
call fcn.00401bd9
add esp, 8
test eax, eax
jne 0x40167c
push 0x34
push 0x413158
push str.WARNING:_If_the_Mentor_Graphics_Installer_is_uninstalled__nyou_will_not_be_able_to_uninstall_any_Mentor_Graphics_product_s_._n_nDo_you_really_want_to_uninstall_Mentor_Graphics_Installer_
push eax
call dword [0x409168]
cmp eax, 7
jne 0x40167c
xor eax, eax
mov ecx, dword [esp + 0x1054]
xor ecx, esp
call fcn.00401d26
add esp, 0x1058
ret 0x10
push esi
push 0
push 0
push 0x401480
call fcn.00402177
mov esi, dword [0x40900c]
add esp, 0xc
push 0
lea ecx, [esp + 0x10]
push ecx
push 0
push 0xf003f
push 0
push 0x412fe4
push 0
push str.SoftwareMentorGraphicsMentorGraphicsJI
push 0x80000002
call esi
test eax, eax
je 0x4016de
push 0
lea edx, [esp + 0x10]
push edx
push 0
push 0xf003f
push 0
push 0x412fe4
push 0
push str.SoftwareMentorGraphicsMentorGraphicsJI
push 0x80000001
call esi
mov ecx, dword [esp + 0xc]
push ebx
push ebp
push edi
mov edi, dword [section..rdata]
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0
push str.InstPath
push ecx
call edi
mov edx, dword [esp + 0x1c]
inc edx
push edx
push 2
call fcn.00402036
mov ecx, dword [esp + 0x20]
add esp, 8
mov esi, eax
lea eax, [esp + 0x1c]
push eax
push esi
push 0
push 0
push str.InstPath
push ecx
call edi
push esi
call dword [0x40906c]
push 0x1388
call dword [0x409068]
push 0x416720
or ebp, 0xffffffff
push str.._tmp
mov dword [esp + 0x1c], ebp
call dword [0x409020]
mov ebx, dword [0x40901c]
push 0x416720
push eax
mov dword [0x415ad4], eax
call ebx
test eax, eax
je 0x401816
mov edi, dword [0x409064]
push 0x412d88
push 0x41674c
call fcn.00401fa3
add esp, 8
test eax, eax
je 0x401801
push 0x412d80
push 0x41674c
call fcn.00401fa3
add esp, 8
test eax, eax
je 0x401801
push 0x412fe4
push 0x41674c
call fcn.00401fa3
add esp, 8
test eax, eax
je 0x401801
test byte [0x416720], 0x10
je 0x401801
push 0x41674c
call fcn.00401e00
add esp, 4
mov dword [esp + 0x14], ebp
test eax, eax
jle 0x401801
push eax
push 0
push 0x400
call edi
mov esi, eax
test esi, esi
je 0x401801
lea edx, [esp + 0x14]
push edx
push esi
call dword [0x409060]
cmp dword [esp + 0x14], 0x103
je 0x401b06
push esi
call dword [0x409028]
mov eax, dword [0x415ad4]
push 0x416720
push eax
call ebx
test eax, eax
jne 0x401770
mov edx, dword [0x415ad4]
push edx
call dword [0x409014]
mov esi, dword [0x409004]
lea eax, [esp + 0x10]
push eax
push 4
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call esi
mov edi, dword [0x409008]
test eax, eax
je 0x401861
lea ecx, [esp + 0x10]
push ecx
push 4
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call esi
test eax, eax
jne 0x40186d
mov edx, dword [esp + 0x10]
push str.MentorGraphicsJI
push edx
call edi
lea eax, [esp + 0x10]
push eax
push 4
push 0
push str.SoftwareMentorGraphics
push 0x80000002
call esi
test eax, eax
je 0x40189f
lea ecx, [esp + 0x10]
push ecx
push 4
push 0
push str.SoftwareMentorGraphics
push 0x80000001
call esi
test eax, eax
jne 0x4018ab
mov edx, dword [esp + 0x10]
push str.MentorGraphicsJI
push edx
call edi
call entry0
push str.shfolder.dll
call dword [0x40904c]
mov esi, eax
push str.SHGetFolderPathW
push esi
call dword [0x409078]
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x17
push 0
call eax
mov edi, dword [0x40907c]
test eax, eax
jl 0x401a89
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x230]
push 0x104
push eax
call fcn.00401cb7
push str.Mentor_GraphicsMentor_Install.lnk
lea ecx, [esp + 0x23c]
push 0x104
push ecx
call fcn.00401c3a
add esp, 0x18
lea edx, [esp + 0x22c]
push edx
call edi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xc58]
push 0x104
push ecx
call fcn.00401cb7
push str.Mentor_GraphicsBatch_Tool.lnk
lea edx, [esp + 0xc64]
push 0x104
push edx
call fcn.00401c3a
add esp, 0x18
lea eax, [esp + 0xc54]
push eax
call edi
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x848]
push 0x104
push edx
call fcn.00401cb7
push str.Mentor_GraphicsMentor_UninstallUninstall_Mentor_Products.lnk
lea eax, [esp + 0x854]
push 0x104
push eax
call fcn.00401c3a
add esp, 0x18
lea ecx, [esp + 0x844]
push ecx
call edi
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x438]
push 0x104
push eax
call fcn.00401cb7
push str.Mentor_GraphicsMentor_UninstallUninstall_Mentor_Install.lnk
lea ecx, [esp + 0x444]
push 0x104
push ecx
call fcn.00401c3a
add esp, 0x18
lea edx, [esp + 0x434]
push edx
call edi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x640]
push 0x104
push ecx
call fcn.00401cb7
push str.Mentor_GraphicsMentor_UnInstall.lnk
lea edx, [esp + 0x64c]
push 0x104
push edx
call fcn.00401c3a
add esp, 0x18
lea eax, [esp + 0x63c]
push eax
call edi
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xa50]
push 0x104
push edx
call fcn.00401cb7
push str.Mentor_GraphicsMentor_Uninstall
lea eax, [esp + 0xa5c]
push 0x104
push eax
call fcn.00401c3a
mov ebx, dword [0x409080]
add esp, 0x18
lea ecx, [esp + 0xa4c]
push ecx
call ebx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xe60]
push 0x104
push eax
call fcn.00401cb7
push str.Mentor_Graphics
lea ecx, [esp + 0xe6c]
push 0x104
push ecx
call fcn.00401c3a
add esp, 0x18
lea edx, [esp + 0xe5c]
push edx
call ebx
push esi
call dword [0x409088]
mov ebp, dword [0x409018]
mov ebx, dword [0x40905c]
mov esi, section..data
mov eax, dword [esi]
push eax
call edi
test eax, eax
jne 0x401ac0
call ebp
cmp eax, 5
jne 0x401ac0
mov ecx, dword [esi]
push 0x80
push ecx
call ebx
mov edx, dword [esi]
push edx
call edi
add esi, 4
cmp esi, 0x415a20
jl 0x401aa1
mov edi, 0x415a20
mov esi, dword [edi]
mov ecx, 0x40982c
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401b45
test dx, dx
je 0x401b02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401b45
add eax, 4
add ecx, 4
test dx, dx
jne 0x401ae0
xor eax, eax
jmp 0x401b4a
push 0x34
push 0x413158
push str.It_appears_the_Mentor_Graphics_Installer_may_be_running._Do_you_want_to_continue_
push 0
call dword [0x409168]
push esi
cmp eax, 6
jne 0x401b2b
call dword [0x409028]
jmp 0x401816
call dword [0x409028]
mov ecx, dword [0x415ad4]
push ecx
call dword [0x409014]
mov eax, 1
jmp 0x401bbe
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401b59
push esi
call fcn.004012a0
add esp, 4
jmp 0x401ba0
mov ecx, str..LOGS
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401b86
test dx, dx
je 0x401b82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401b86
add eax, 4
add ecx, 4
test dx, dx
jne 0x401b60
xor eax, eax
jmp 0x401b8b
sbb eax, eax
sbb eax, 0xffffffff
push esi
test eax, eax
jne 0x401b9a
call fcn.004012a0
add esp, 4
jmp 0x401ba0
call dword [0x409080]
add edi, 4
cmp edi, 0x415ad4
jl 0x401ad0
mov eax, dword [esp + 0x20]
push eax
call fcn.00401510
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1064]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.00401d26
add esp, 0x1058
ret 0x10