Function at 0x4016a0
Capabilities:
Accept command line arguments
Create thread
Delete directory
Delete file
Delete registry key
Enumerate files on windows
Get installed programs
Query or enumerate registry value
Set current directory
Set file attributes

Disassembly:
mov eax, 0x1058
call fcn.00401dd0
mov eax, dword [0x416b7c]
xor eax, esp
mov dword [esp + 0x1054], eax
mov eax, dword [esp + 0x105c]
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push str._silent
push eax
call fcn.00401c69
add esp, 8
test eax, eax
jne 0x40170c
push 0x34
push 0x413938
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 [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x40170c
xor eax, eax
mov ecx, dword [esp + 0x1054]
xor ecx, esp
call fcn.00401db6
add esp, 0x1058
ret 0x10
push esi
push 0
push 0
push 0x401480
call fcn.00402207
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
add esp, 0xc
push 0
lea ecx, [esp + 0x10]
push ecx
push 0
push 0xf003f
push 0
push 0x4137c4
push 0
push str.SoftwareMentorGraphicsMentorGraphicsJI
push 0x80000002
call esi
test eax, eax
je 0x40176e
push 0
lea edx, [esp + 0x10]
push edx
push 0
push 0xf003f
push 0
push 0x4137c4
push 0
push str.SoftwareMentorGraphicsMentorGraphicsJI
push 0x80000001
call esi
mov ecx, dword [esp + 0xc]
push ebx
push ebp
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
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.004020c6
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 [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x4177e0
or ebp, 0xffffffff
push str.._tmp
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileW]
push 0x4177e0
push eax
mov dword [0x416b78], eax
call ebx
test eax, eax
je 0x4018a6
mov edi, dword [sym.imp.KERNEL32.dll_OpenProcess]
push 0x413568
push 0x41780c
call fcn.00402033
add esp, 8
test eax, eax
je 0x401891
push 0x413560
push 0x41780c
call fcn.00402033
add esp, 8
test eax, eax
je 0x401891
push 0x4137c4
push 0x41780c
call fcn.00402033
add esp, 8
test eax, eax
je 0x401891
test byte [0x4177e0], 0x10
je 0x401891
push 0x41780c
call fcn.00401e90
add esp, 4
mov dword [esp + 0x14], ebp
test eax, eax
jle 0x401891
push eax
push 0
push 0x400
call edi
mov esi, eax
test esi, esi
je 0x401891
lea edx, [esp + 0x14]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [esp + 0x14], 0x103
je 0x401b96
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x416b78]
push 0x4177e0
push eax
call ebx
test eax, eax
jne 0x401800
mov edx, dword [0x416b78]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x10]
push eax
push 4
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
je 0x4018f1
lea ecx, [esp + 0x10]
push ecx
push 4
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call esi
test eax, eax
jne 0x4018fd
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 0x40192f
lea ecx, [esp + 0x10]
push ecx
push 4
push 0
push str.SoftwareMentorGraphics
push 0x80000001
call esi
test eax, eax
jne 0x40193b
mov edx, dword [esp + 0x10]
push str.MentorGraphicsJI
push edx
call edi
call fcn.00401000
push str.shfolder.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
push str.SHGetFolderPathW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x17
push 0
call eax
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jl 0x401b19
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x230]
push 0x104
push eax
call fcn.00401d47
push str.Mentor_GraphicsMentor_Install.lnk
lea ecx, [esp + 0x23c]
push 0x104
push ecx
call fcn.00401cca
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.00401d47
push str.Mentor_GraphicsBatch_Tool.lnk
lea edx, [esp + 0xc64]
push 0x104
push edx
call fcn.00401cca
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.00401d47
push str.Mentor_GraphicsMentor_UninstallUninstall_Mentor_Products.lnk
lea eax, [esp + 0x854]
push 0x104
push eax
call fcn.00401cca
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.00401d47
push str.Mentor_GraphicsMentor_UninstallUninstall_Mentor_Install.lnk
lea ecx, [esp + 0x444]
push 0x104
push ecx
call fcn.00401cca
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.00401d47
push str.Mentor_GraphicsMentor_UnInstall.lnk
lea edx, [esp + 0x64c]
push 0x104
push edx
call fcn.00401cca
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.00401d47
push str.Mentor_GraphicsMentor_Uninstall
lea eax, [esp + 0xa5c]
push 0x104
push eax
call fcn.00401cca
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
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.00401d47
push str.Mentor_Graphics
lea ecx, [esp + 0xe6c]
push 0x104
push ecx
call fcn.00401cca
add esp, 0x18
lea edx, [esp + 0xe5c]
push edx
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov esi, section..data
mov eax, dword [esi]
push eax
call edi
test eax, eax
jne 0x401b50
call ebp
cmp eax, 5
jne 0x401b50
mov ecx, dword [esi]
push 0x80
push ecx
call ebx
mov edx, dword [esi]
push edx
call edi
add esi, 4
cmp esi, 0x416ac0
jl 0x401b31
mov edi, 0x416ac0
mov esi, dword [edi]
mov ecx, 0x409854
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401bd5
test dx, dx
je 0x401b92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401bd5
add eax, 4
add ecx, 4
test dx, dx
jne 0x401b70
xor eax, eax
jmp 0x401bda
push 0x34
push 0x413938
push str.It_appears_the_Mentor_Graphics_Installer_may_be_running._Do_you_want_to_continue_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push esi
cmp eax, 6
jne 0x401bbb
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4018a6
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x416b78]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
jmp 0x401c4e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401be9
push esi
call fcn.004012a0
add esp, 4
jmp 0x401c30
mov ecx, str..LOGS
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401c16
test dx, dx
je 0x401c12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401c16
add eax, 4
add ecx, 4
test dx, dx
jne 0x401bf0
xor eax, eax
jmp 0x401c1b
sbb eax, eax
sbb eax, 0xffffffff
push esi
test eax, eax
jne 0x401c2a
call fcn.004012a0
add esp, 4
jmp 0x401c30
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
add edi, 4
cmp edi, 0x416b78
jl 0x401b60
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.00401db6
add esp, 0x1058
ret 0x10