Function at 0x40a595
Capabilities:
Check if file exists
Copy file
Create a process with modified i/o handles and window
Create process on windows
Delete directory
Get common file path
Get file attributes
Self delete
Set file attributes

Disassembly:
push 0xed8
mov eax, 0x449476
call fcn.004386f7
mov ebx, ecx
mov dword [ebp - 0xe84], ebx
mov esi, 0x4676b0
push esi
lea ecx, [ebp - 0xe80]
call fcn.0040620b
xor edi, edi
push esi
lea ecx, [ebp - 0xe9c]
mov dword [ebp - 4], edi
call fcn.0040620b
push esi
lea ecx, [ebp - 0xea0]
mov byte [ebp - 4], 1
call fcn.0040620b
lea ecx, [ebp - 0xaac]
mov byte [ebp - 4], 2
call fcn.0042c4b9
lea ecx, [ebp - 0xb34]
mov byte [ebp - 4], 3
call fcn.0042c4b9
lea ecx, [ebp - 0xba0]
mov byte [ebp - 4], 4
call fcn.0042e0d0
push esi
lea ecx, [ebp - 0xe8c]
mov byte [ebp - 4], 5
call fcn.0040620b
push esi
lea ecx, [ebp - 0xe88]
mov byte [ebp - 4], 6
call fcn.0040620b
push dword [ebp + 8]
mov esi, str.CDelDrvApp::UnregisterUninstaller
push str.bCleanupShortcutOnly___1_d__n
push esi
push 5
mov byte [ebp - 4], 7
mov dword [ebp - 0xe7c], edi
call fcn.00405a24
mov eax, dword [ebx + 0x2c]
add esp, 0x10
cmp dword [eax - 0xc], edi
jne 0x40a670
push str.Uninstaller_GUID_is_not_defined._Exit._n
push esi
push 5
call fcn.00405a24
mov ebx, dword [ebp - 0xe80]
add esp, 0xc
jmp 0x40b611
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
lea ecx, [ebp - 0xe80]
call fcn.00409f9c
push 0x44d8a8
lea ecx, [ebp - 0xe80]
call fcn.00406767
mov eax, dword [ebx + 0x2c]
lea ecx, [ebp - 0xe80]
push dword [eax - 0xc]
push eax
call fcn.00406790
mov ebx, dword [ebp - 0xe80]
push 0x2000000
push ebx
push 0x80000002
lea ecx, [ebp - 0xaac]
call fcn.0042cc14
test eax, eax
jne 0x40a6d7
push str.Uninstaller_GUID_is_not_registered._Exit._n
push esi
push 5
call fcn.00405a24
add esp, 0xc
jmp 0x40b611
push str.Shortcut
push eax
lea ecx, [ebp - 0xba0]
call fcn.0042f52a
push 1
lea ecx, [ebp - 0xba0]
call fcn.0042e1c4
cmp dword [ebp + 8], 0
je 0x40a710
push str.Cleanup_shortcut_only._Done._n
push esi
push 5
call fcn.00405a24
add esp, 0xc
jmp 0x40b606
push str.UninstallerVersion
lea ecx, [ebp - 0xaac]
call fcn.0042caac
push eax
lea ecx, [ebp - 0xea0]
call fcn.00409f9c
mov esi, dword [ebp - 0xea0]
cmp dword [esi - 0xc], 0
je 0x40a7df
push 0x105
lea eax, [ebp - 0x42c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0xa48]
push eax
lea eax, [ebp - 0xa4c]
push eax
lea eax, [ebp - 0xa50]
push eax
lea eax, [ebp - 0xa54]
push eax
push str._d._d._d._d
push esi
call fcn.0043a53b
mov edi, dword [ebp - 0xa54]
mov esi, dword [ebp - 0xa4c]
push 0
lea eax, [ebp - 0xe94]
push eax
lea eax, [ebp - 0xe90]
push eax
lea eax, [ebp - 0x42c]
shl edi, 0x10
add edi, dword [ebp - 0xa50]
shl esi, 0x10
add esi, dword [ebp - 0xa48]
push eax
call fcn.00434391
push 1
push dword [ebp - 0xe94]
push dword [ebp - 0xe90]
push esi
push edi
call fcn.004344ec
add esp, 0x3c
test eax, eax
jne 0x40a7dd
push str.Exist_a_newer_version_uninstaller.
push str.CDelDrvApp::UnregisterUninstaller
push 4
jmp 0x40a703
xor edi, edi
mov esi, str.UninstallerCommonDir
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40a872
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042caac
push eax
lea ecx, [ebp - 0xe8c]
call fcn.00409f9c
push 0x44d8a8
lea ecx, [ebp - 0xe8c]
call fcn.00406767
lea eax, [ebp - 0xe8c]
push eax
lea ecx, [ebp - 0xe88]
call fcn.004065c3
mov esi, dword [ebp - 0xe84]
lea ecx, [ebp - 0xe88]
mov eax, dword [esi + 0x2c]
push dword [eax - 0xc]
push eax
call fcn.00406790
push 0x44d8a8
lea ecx, [ebp - 0xe88]
call fcn.00406767
push dword [ebp - 0xe88]
push str.strGuidDir___1_s_._n
push str.CDelDrvApp::UnregisterUninstaller
push 4
call fcn.00405a24
add esp, 0x10
jmp 0x40a878
mov esi, dword [ebp - 0xe84]
mov eax, dword [esi + 0x398]
cmp dword [eax - 0xc], 0
jne 0x40b133
xor eax, eax
push 0xf
pop ecx
mov esi, eax
mov dword [ebp - 0xaf8], ecx
mov dword [ebp - 0xafc], eax
mov byte [ebp - 0xb0c], al
mov dword [ebp - 0xae0], ecx
mov dword [ebp - 0xae4], eax
mov byte [ebp - 0xaf4], al
push 7
pop edx
xor ecx, ecx
mov dword [ebp - 0xa70], edx
mov dword [ebp - 0xa74], eax
mov word [ebp - 0xa84], cx
mov dword [ebp - 0xab0], edx
mov dword [ebp - 0xab4], eax
mov word [ebp - 0xac4], ax
push 0x4676b0
lea ecx, [ebp - 0xe98]
mov byte [ebp - 4], 0xb
call fcn.0040620b
lea ecx, [ebp - 0xe78]
mov byte [ebp - 4], 0xc
call fcn.004264d8
push str.Entered..._Create_duplicate_executable._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
mov byte [ebp - 4], 0xd
call fcn.00405a24
push 0x20a
xor edi, edi
lea eax, [ebp - 0x42c]
push edi
push eax
call fcn.00438dc0
push 0x20a
lea eax, [ebp - 0x638]
push edi
push eax
call fcn.00438dc0
add esp, 0x24
lea eax, [ebp - 0x42c]
push 0x105
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x638]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x42c]
push eax
push str.szFileNameMyselfW___1_ls_._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
lea eax, [ebp - 0x638]
push eax
push str.szTempW___1_ls_._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x20
cmp word [ebp - 0x638], di
jne 0x40a9a4
mov eax, edi
jmp 0x40a9b1
lea eax, [ebp - 0x638]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x638]
push eax
lea ecx, [ebp - 0xac4]
call fcn.00401db2
push edi
push edi
push edi
push edi
push 0x101
lea eax, [ebp - 0x83c]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.0043967a
add esp, 0x24
cmp word [ebp - 0x18], di
jne 0x40a9f3
mov eax, edi
jmp 0x40a9fd
lea eax, [ebp - 0x18]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0xa84]
call fcn.00401db2
cmp word [ebp - 0x83c], di
jne 0x40aa1a
mov eax, edi
jmp 0x40aa27
lea eax, [ebp - 0x83c]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x83c]
push eax
lea ecx, [ebp - 0xa84]
call fcn.004053dd
cmp dword [ebp - 0xa70], 8
lea eax, [ebp - 0xa84]
cmovae eax, dword [ebp - 0xa84]
push eax
push str.strFileNameW___1_ls_._n
push str.CDelDrvApp::UnregisterUninstaller
push 4
call fcn.00405a24
add esp, 0x10
cmp dword [ebp - 0xa70], 8
lea eax, [ebp - 0xa84]
cmovae eax, dword [ebp - 0xa84]
push eax
lea ecx, [ebp - 0xe88]
call fcn.004069bd
test eax, eax
jne 0x40add4
cmp dword [ebp - 0xab0], 8
lea eax, [ebp - 0xac4]
cmovae eax, dword [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xe78]
mov dword [ebp - 0xe7c], 1
call fcn.004265bd
push 0x208
lea eax, [ebp - 0x220]
push edi
push eax
call fcn.00438dc0
push esi
lea eax, [ebp - 0x220]
push str..MPDD_04d.exe
push eax
call fcn.004061ef
add esp, 0x18
lea eax, [ebp - 0x220]
push eax
inc esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40aaf7
cmp esi, 0x270f
jle 0x40aab5
lea ecx, [ebp - 0xe78]
call fcn.00426b97
cmp word [ebp - 0x220], di
jne 0x40ab0f
mov eax, edi
jmp 0x40ab1c
lea eax, [ebp - 0x220]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0xa84]
call fcn.00401db2
lea eax, [ebp - 0x220]
push eax
push str.szFileName___1_s_._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x10
lea ecx, [ebp - 0xe78]
cmp esi, 0x2710
jle 0x40abaa
mov byte [ebp - 4], 0xc
call fcn.00426564
mov ecx, dword [ebp - 0xe98]
lea ecx, [ecx - 0x10]
call fcn.00409a06
push edi
push 1
lea ecx, [ebp - 0xac4]
call fcn.00401ba5
push edi
push 1
lea ecx, [ebp - 0xa84]
call fcn.00401ba5
lea ecx, [ebp - 0xaf4]
call fcn.004010d7
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], 7
call fcn.004010d7
jmp 0x40b5a0
cmp dword [ebp - 0xab0], 8
lea eax, [ebp - 0xac4]
cmovae eax, dword [ebp - 0xac4]
push eax
call fcn.004265bd
cmp dword [ebp - 0xa70], 8
lea eax, [ebp - 0xa84]
cmovae eax, dword [ebp - 0xa84]
push 1
push eax
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40ac12
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.pCopyFileW_failed.__0x_1_x___n
push str.CDelDrvApp::UnregisterUninstaller
push 2
call fcn.00405a24
add esp, 0x10
lea ecx, [ebp - 0xe78]
jmp 0x40ab58
lea eax, [ebp - 0x220]
push eax
push str.set___1_s___file_attribute_to_normal._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x10
lea eax, [ebp - 0x220]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x208
lea eax, [ebp - 0xa44]
push edi
push eax
call fcn.00438dc0
mov eax, dword [ebp - 0xe84]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add esp, 0xc
push dword [eax + 0x388]
push dword [eax + 0x2c]
lea eax, [ebp - 0x220]
push eax
call esi
push eax
lea eax, [ebp - 0xa44]
push str.__S:_lu__s__s__d
push eax
call fcn.004061ef
add esp, 0x18
call esi
push eax
push str.ProcessId__0x_1_lx__n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
lea eax, [ebp - 0xa44]
push eax
lea eax, [ebp - 0x220]
push 0x104
push eax
call fcn.004391ef
mov esi, dword [ebp - 0xe84]
lea eax, [ebp - 0x220]
push eax
push str.Launch_the_duplicated_executable._CommandLine____1_s__._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
mov dword [esi + 0x3a0], 1
call fcn.00405a24
add esp, 0x2c
lea ecx, [ebp - 0xe78]
call fcn.00426b97
push 0x44
pop esi
push esi
lea eax, [ebp - 0xee4]
push edi
push eax
call fcn.00438dc0
push 0x10
lea eax, [ebp - 0xa64]
push edi
push eax
call fcn.00438dc0
add esp, 0x18
mov dword [ebp - 0xee4], esi
mov esi, str.UninstallString
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40ad4b
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40ad4b
push str.DeleteValue__UninstallString__error._n
push str.CDelDrvApp::UnregisterUninstaller
push 2
call fcn.00405a24
add esp, 0xc
cmp dword [ebp - 0xab0], 8
lea eax, [ebp - 0xac4]
cmovae eax, dword [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xe78]
call fcn.004265bd
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xee4]
push eax
push edi
push edi
push 0x20
push 1
push edi
push edi
lea eax, [ebp - 0x220]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x40ac07
push str.Wait_and_close_the_duplicated_file._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0xc
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0xa60]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0xa64]
call esi
lea ecx, [ebp - 0xe78]
call fcn.00426b97
lea eax, [ebp - 0xe80]
push eax
lea ecx, [ebp - 0xe9c]
call fcn.004065c3
push 0x44d8a8
lea ecx, [ebp - 0xe9c]
call fcn.00406767
push str.DriverStore
lea ecx, [ebp - 0xe9c]
call fcn.00406767
push str.Delete_DriverStore_n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0xc
lea ecx, [ebp - 0xb34]
push 0x2000000
push dword [ebp - 0xe9c]
push 0x80000002
call fcn.0042cc14
test eax, eax
je 0x40b0d3
mov dword [ebp - 0xa50], edi
mov dword [ebp - 0xa4c], edi
mov dword [ebp - 0xa48], edi
xor eax, eax
mov dword [ebp - 0xac8], 7
mov dword [ebp - 0xacc], edi
mov word [ebp - 0xadc], ax
push 0x44d8ac
lea ecx, [ebp - 0xb34]
mov byte [ebp - 4], 0xf
call fcn.0042caac
mov dword [ebp - 0xe94], eax
test eax, eax
je 0x40b0ba
lea eax, [ebp - 0xa50]
push eax
lea ecx, [ebp - 0xb34]
call fcn.0042c7b6
mov esi, dword [ebp - 0xa50]
cmp esi, dword [ebp - 0xa4c]
je 0x40b003
mov ebx, dword [ebp - 0xe94]
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
jb 0x40aec1
mov ecx, dword [esi]
jmp 0x40aec3
mov ecx, esi
test ecx, ecx
je 0x40afec
inc eax
push eax
push ecx
call fcn.0043965b
pop ecx
pop ecx
test eax, eax
je 0x40afec
cmp dword [esi + 0x14], 8
jb 0x40aee7
mov eax, dword [esi]
jmp 0x40aee9
mov eax, esi
push eax
push str.Delete_DriverStore_1_s__n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x10
cmp word [ebx], di
jne 0x40af07
mov eax, edi
jmp 0x40af0e
push ebx
call fcn.0043860f
pop ecx
push eax
push ebx
lea ecx, [ebp - 0xadc]
call fcn.00401db2
cmp dword [esi + 0x14], 8
jb 0x40af2b
mov eax, dword [esi]
mov dword [ebp - 0xe90], eax
jmp 0x40af33
mov eax, esi
mov dword [ebp - 0xe90], esi
cmp word [eax], di
jne 0x40af3c
mov ecx, edi
jmp 0x40af4b
push eax
call fcn.0043860f
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xe90]
push ecx
push eax
lea ecx, [ebp - 0xadc]
call fcn.004053dd
cmp dword [ebp - 0xac8], 8
lea eax, [ebp - 0xadc]
cmovae eax, dword [ebp - 0xadc]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40afc0
cmp dword [ebp - 0xac8], 8
lea eax, [ebp - 0xadc]
cmovae eax, dword [ebp - 0xadc]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x40afc0
cmp dword [ebp - 0xac8], 8
lea eax, [ebp - 0xadc]
cmovae eax, dword [ebp - 0xadc]
push 1
push eax
call fcn.00434b4f
pop ecx
pop ecx
test eax, eax
je 0x40afec
push str.___Delete_succeeded._n
jmp 0x40afc5
push str.___The_directory_is_not_found._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x40afde
mov eax, dword [esi]
jmp 0x40afe0
mov eax, esi
push eax
lea ecx, [ebp - 0xb34]
call fcn.0042c759
push 0x18
pop eax
add esi, eax
cmp esi, dword [ebp - 0xa4c]
jne 0x40aeb4
mov ebx, dword [ebp - 0xe80]
lea eax, [ebp - 0xa50]
push eax
lea ecx, [ebp - 0xb34]
call fcn.0042c7b6
mov eax, dword [ebp - 0xa4c]
sub eax, dword [ebp - 0xa50]
push 0x18
cdq
pop ecx
idiv ecx
cmp eax, 1
jne 0x40b0ba
mov esi, dword [ebp - 0xe94]
push esi
push str.Delete_DriverStore_Root___1_s_._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40b07b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x40b07b
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x40b074
push str.___Delete_succeeded._n
jmp 0x40b080
push str.___Used_by_other_device__._n
jmp 0x40b080
push str.___The_directory_is_not_found._n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0xc
lea ecx, [ebp - 0xb34]
push 0x44d8ac
call fcn.0042c759
lea ecx, [ebp - 0xb34]
call fcn.0042c5a8
push str.DriverStore
lea ecx, [ebp - 0xaac]
call fcn.0042c611
push edi
push 1
lea ecx, [ebp - 0xadc]
call fcn.00401ba5
lea ecx, [ebp - 0xa50]
call fcn.004052ea
lea ecx, [ebp - 0xe78]
mov byte [ebp - 4], 0xc
call fcn.00426564
mov ecx, dword [ebp - 0xe98]
lea ecx, [ecx - 0x10]
call fcn.00409a06
push edi
lea ecx, [ebp - 0xac4]
push 1
call fcn.00401ba5
push edi
lea ecx, [ebp - 0xa84]
push 1
call fcn.00401ba5
lea ecx, [ebp - 0xaf4]
call fcn.004010d7
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], 7
call fcn.004010d7
cmp dword [ebp - 0xe7c], 0
jne 0x40b606
mov esi, str.UninstallerCommonDir
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b4b1
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b166
push str.DeleteValue__UninstallerCommonDir__error._n
jmp 0x40b591
mov eax, dword [ebp - 0xe84]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [eax + 0x50], 0
je 0x40b186
push dword [eax + 0x50]
call esi
mov eax, dword [ebp - 0xe84]
mov dword [eax + 0x50], edi
cmp dword [eax + 0x380], edi
je 0x40b1ad
push dword [0x4690d0]
push 0x4690d4
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov eax, dword [ebp - 0xe84]
push dword [eax + 0x380]
call esi
mov esi, edi
push 1
push dword [ebp - 0xe88]
call fcn.00434b4f
pop ecx
pop ecx
test eax, eax
jne 0x40b1ee
push esi
push dword [ebp - 0xe88]
push str.DeleteDirectoryFiles__1_s___retry_nCount___2_d__._n
push str.CDelDrvApp::UnregisterUninstaller
push 2
call fcn.00405a24
add esp, 0x14
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 3
jl 0x40b1af
push dword [ebp - 0xe8c]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push eax
push dword [ebp - 0xe8c]
mov dword [ebp - 0xe94], eax
push str.RemoveDirectory___1_s_____2_d___n
push str.CDelDrvApp::UnregisterUninstaller
push 5
call fcn.00405a24
add esp, 0x14
mov esi, str.UninstallerRemoveDir
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b4b1
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042caac
push eax
lea ecx, [ebp - 0xaf4]
call fcn.00403477
push edi
xor eax, eax
push 0x44d8ac
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0xa58], 7
mov dword [ebp - 0xa5c], edi
mov word [ebp - 0xa6c], ax
call fcn.00401db2
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], 0x11
call fcn.00430fac
cmp dword [ebp - 0xae0], 8
lea eax, [ebp - 0xaf4]
cmovae eax, dword [ebp - 0xaf4]
push 0x7c
push eax
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], 0x12
call fcn.0043250a
lea ecx, [ebp - 0xb0c]
call fcn.00431332
cmp eax, 2
jne 0x40b482
push edi
lea ecx, [ebp - 0xb0c]
call fcn.004315c5
mov esi, eax
cmp word [esi], di
jne 0x40b2da
mov eax, edi
jmp 0x40b2e1
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0xa6c]
call fcn.00401db2
mov eax, dword [ebp - 0xa5c]
push 1
lea ecx, [ebp - 0xb0c]
mov dword [ebp - 0xe90], eax
call fcn.004315c5
mov esi, eax
cmp word [esi], di
jne 0x40b312
mov eax, edi
jmp 0x40b319
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0xa6c]
call fcn.004053dd
push 1
push edi
lea eax, [ebp - 0xe7c]
push eax
lea ecx, [ebp - 0xaf4]
mov dword [ebp - 0xe7c], 0x7c
call fcn.0040baaf
mov dword [ebp - 0xe7c], eax
cmp eax, 0xffffffff
je 0x40b482
cmp dword [ebp - 0xa5c], eax
jbe 0x40b482
mov ebx, eax
cmp dword [ebp - 0xa58], 8
lea eax, [ebp - 0xa6c]
cmovae eax, dword [ebp - 0xa6c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x40b411
cmp dword [ebp - 0xa58], 8
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0xa6c]
cmovae eax, dword [ebp - 0xa6c]
push eax
call esi
cmp eax, 0xffffffff
je 0x40b47c
cmp dword [ebp - 0xa58], 8
lea eax, [ebp - 0xa6c]
cmovae eax, dword [ebp - 0xa6c]
push eax
call esi
test al, 0x10
je 0x40b47c
push dword [ebp - 0xe94]
lea esi, [ebp - 0xa6c]
sub esp, 0x18
push 6
pop ecx
mov edi, esp
push str.RemoveDirectory___1_s_____2_d___n
push str.CDelDrvApp::UnregisterUninstaller
push 5
rep movsd dword es:[edi], dword [esi]
call fcn.00405a24
add esp, 0x28
cmp dword [ebp - 0xa58], 8
lea eax, [ebp - 0xa6c]
cmovae eax, dword [ebp - 0xa6c]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor edi, edi
push 1
push 0xffffffffffffffff
lea eax, [ebp - 0xe7c]
push eax
lea ecx, [ebp - 0xa6c]
mov dword [ebp - 0xe7c], 0x5c
call fcn.0040bbab
mov esi, eax
cmp esi, 0xffffffff
je 0x40b47c
push esi
push edi
lea eax, [ebp - 0xadc]
push eax
lea ecx, [ebp - 0xa6c]
call fcn.004058e2
push eax
lea ecx, [ebp - 0xa6c]
call fcn.00406613
push edi
push 1
lea ecx, [ebp - 0xadc]
call fcn.00401ba5
mov eax, dword [ebp - 0xe90]
cmp dword [ebp - 0xa5c], eax
jb 0x40b47c
cmp esi, ebx
ja 0x40b362
mov ebx, dword [ebp - 0xe80]
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], 0x11
call fcn.00431063
push edi
push 1
lea ecx, [ebp - 0xa6c]
call fcn.00401ba5
push edi
push 1
lea ecx, [ebp - 0xaf4]
mov byte [ebp - 4], 7
call fcn.00401ba5
mov esi, str.Version
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b4e0
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b4e0
push str.DeleteValue__Version__error._n
jmp 0x40b591
mov esi, str.UninstallerVersion
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b50f
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b50f
push str.DeleteValue__UninstallerVersion__error._n
jmp 0x40b591
mov esi, str.DisplayName
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b53b
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b53b
push str.DeleteValue__DisplayName__error._n
jmp 0x40b591
mov esi, str.DisplayIcon
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b567
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b567
push str.DeleteValue__DisplayIcon__error._n
jmp 0x40b591
mov esi, str.UninstallString
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042cb68
test eax, eax
je 0x40b5ad
push esi
lea ecx, [ebp - 0xaac]
call fcn.0042c759
test eax, eax
jne 0x40b5ad
push str.DeleteValue__UninstallString__error._n
push str.CDelDrvApp::UnregisterUninstaller
push 2
call fcn.00405a24
add esp, 0xc
lea ecx, [ebp - 0xaac]
call fcn.0042c5a8
jmp 0x40b614
push edi
lea ecx, [ebp - 0xba0]
call fcn.0042e1c4
push str.Shortcut
lea ecx, [ebp - 0xaac]
call fcn.0042c611
lea ecx, [ebp - 0xaac]
call fcn.0042c5a8
push 0x2000000
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
lea ecx, [ebp - 0xaac]
call fcn.0042cc14
test eax, eax
je 0x40b606
mov eax, dword [ebp - 0xe84]
lea ecx, [ebp - 0xaac]
push dword [eax + 0x2c]
call fcn.0042c611
lea ecx, [ebp - 0xaac]
call fcn.0042c5a8
xor edi, edi
inc edi
mov ecx, dword [ebp - 0xe88]
lea ecx, [ecx - 0x10]
call fcn.00409a06
mov ecx, dword [ebp - 0xe8c]
lea ecx, [ecx - 0x10]
call fcn.00409a06
lea ecx, [ebp - 0xba0]
mov byte [ebp - 4], 4
call fcn.0042e16a
lea ecx, [ebp - 0xb34]
mov byte [ebp - 4], 3
call fcn.0042c507
lea ecx, [ebp - 0xaac]
mov byte [ebp - 4], 2
call fcn.0042c507
mov ecx, dword [ebp - 0xea0]
lea ecx, [ecx - 0x10]
call fcn.00409a06
mov ecx, dword [ebp - 0xe9c]
add ecx, 0xfffffff0
call fcn.00409a06
lea ecx, [ebx - 0x10]
call fcn.00409a06
mov eax, edi
call fcn.004386a6
ret 4