Function at 0x41c7b0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x4a5fa7
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x4cc850]
xor eax, esp
mov dword [esp + 0x124], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4cc850]
xor eax, esp
push eax
lea eax, [esp + 0x13c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x14c]
mov ebx, ecx
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x68]
add eax, 0x1c
mov edi, edx
push eax
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x58], edi
call fcn.0043cd70
mov ebp, eax
xor esi, esi
cmp ebp, esi
jne 0x41ca4a
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx + 0x30]
add ecx, 0x1c
push str.CanonMDL30__for__ZoomBrowser_EX
mov edi, 0x1f
call fcn.00406a90
test eax, eax
jne 0x41ccc5
push 0xe
mov dword [esp + 0x4c], esi
mov word [esp + 0x3c], si
mov edi, 7
push str.ZoomBrowser_EX
lea esi, [esp + 0x3c]
mov dword [esp + 0x54], edi
call fcn.00406d50
xor esi, esi
lea ecx, [esp + 0x34]
mov dword [esp + 0x144], esi
mov eax, dword [ebx + 0x58]
push ecx
call fcn.0043cd70
mov dword [esp + 0x144], 0xffffffff
cmp dword [esp + 0x4c], 8
mov ebp, eax
jb 0x41c892
mov edx, dword [esp + 0x38]
push edx
call fcn.004692b1
add esp, 4
cmp ebp, esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], esi
mov word [esp + 0x38], si
je 0x41ccc5
push 0x194
call fcn.00469281
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, esi
mov dword [esp + 0x144], 1
je 0x41c8d1
push eax
call fcn.0043d080
mov edi, eax
jmp 0x41c8d3
xor edi, edi
mov dword [esp + 0x144], 0xffffffff
mov eax, dword [ebx + 0x68]
push 0xffffffffffffffff
add eax, 0x1c
push esi
mov ecx, edi
call fcn.00406430
mov edx, str.CanonMDL30
lea eax, [esp + 0x18]
call fcn.00405e60
push 0xffffffffffffffff
push esi
lea ecx, [edi + 0x20]
lea eax, [esp + 0x20]
mov dword [esp + 0x14c], 2
call fcn.00406430
mov dword [esp + 0x144], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x41c935
mov eax, dword [esp + 0x1c]
push eax
call fcn.004692b1
add esp, 4
lea esi, [ebp + 0x104]
push edi
call fcn.0043dda0
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x120]
lea ecx, [edi + 0x120]
call fcn.00406430
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0xa8]
lea ecx, [edi + 0xa8]
call fcn.00406430
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x140]
lea ecx, [edi + 0x140]
call fcn.00406430
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x15c]
lea ecx, [edi + 0x15c]
call fcn.00406430
lea eax, [ebp + 0xe4]
lea ecx, [edi + 0xe4]
cmp ecx, eax
je 0x41c9b4
push 0xffffffffffffffff
push 0
add eax, 4
add ecx, 4
call fcn.00406430
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x178]
lea ecx, [edi + 0x178]
call fcn.00406430
mov edx, str.3.8.0.5
lea eax, [esp + 0x18]
call fcn.00405e60
push 0xffffffffffffffff
push 0
lea ecx, [edi + 0x40]
lea eax, [esp + 0x20]
mov dword [esp + 0x14c], 3
call fcn.00406430
mov dword [esp + 0x144], 0xffffffff
cmp dword [esp + 0x30], 8
mov dword [edi + 0x5c], 0
jb 0x41ca18
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004692b1
add esp, 4
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x64]
lea ecx, [edi + 0x64]
call fcn.00406430
mov dword [edi + 0x80], 1
mov ebx, dword [ebx + 0x58]
lea esi, [ebx + 4]
lea ebx, [esp + 0x14]
mov dword [esp + 0x14], edi
call fcn.0042e240
mov edi, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0xe0], 7
mov dword [esp + 0xdc], esi
mov word [esp + 0xcc], si
mov dword [esp + 0x144], 4
cmp dword [edi + 0x18], 8
lea ebx, [edi + 4]
jb 0x41ca7c
mov ecx, dword [ebx]
jmp 0x41ca7e
mov ecx, ebx
lea edx, [esp + 0xc8]
push edx
mov edx, str.UIWINSTALLCOMMON
call fcn.0043df40
mov eax, 7
add esp, 4
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], esi
mov word [esp + 0x94], si
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], esi
mov word [esp + 0x78], si
mov byte [esp + 0x144], 6
cmp dword [edi + 0x18], 8
jb 0x41cad3
mov ecx, dword [ebx]
jmp 0x41cad5
mov ecx, ebx
lea eax, [esp + 0x90]
push eax
mov edx, str.UIWINSTALL
call fcn.0043df40
add esp, 4
add ebp, 0x15c
push ebp
lea ebx, [esp + 0x1c]
call fcn.0041d030
mov edi, 8
mov byte [esp + 0x144], 7
cmp dword [eax + 0x18], edi
jb 0x41cb11
mov eax, dword [eax + 4]
jmp 0x41cb14
add eax, 4
cmp dword [esp + 0xa8], edi
mov ecx, dword [esp + 0x94]
jae 0x41cb2b
lea ecx, [esp + 0x94]
lea edx, [esp + 0x74]
push edx
mov edx, eax
call fcn.0043df40
add esp, 4
mov byte [esp + 0x144], 6
cmp dword [esp + 0x30], edi
jb 0x41cb55
mov eax, dword [esp + 0x1c]
push eax
call fcn.004692b1
add esp, 4
cmp dword [esp + 0x8c], edi
mov esi, dword [esp + 0x78]
jae 0x41cb66
lea esi, [esp + 0x78]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41cb85
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
setne al
xor ebx, ebx
cmp al, bl
jne 0x41cbb0
jmp 0x41cb87
xor ebx, ebx
cmp dword [esp + 0xa8], edi
mov ecx, dword [esp + 0x94]
jae 0x41cb9e
lea ecx, [esp + 0x94]
lea edx, [esp + 0x74]
push edx
mov edx, str.ENGLISH
call fcn.0043df40
add esp, 4
mov ebp, 7
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc0], ebx
mov word [esp + 0xb0], bx
mov byte [esp + 0x144], 8
cmp dword [esp + 0xe0], edi
mov ecx, dword [esp + 0xcc]
jae 0x41cbea
lea ecx, [esp + 0xcc]
lea eax, [esp + 0xac]
push eax
mov edx, str.setup.dll
call fcn.0043df40
mov eax, dword [esp + 0xb4]
add esp, 4
cmp dword [esp + 0xc4], edi
jae 0x41cc16
lea eax, [esp + 0xb0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41cccc
cmp dword [esp + 0xc4], edi
jb 0x41cc3e
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004692b1
add esp, 4
cmp dword [esp + 0x8c], edi
mov word [esp + 0xb0], bx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebp
jb 0x41cc6a
mov edx, dword [esp + 0x78]
push edx
call fcn.004692b1
add esp, 4
cmp dword [esp + 0xa8], edi
mov word [esp + 0x78], bx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
jb 0x41cc96
mov eax, dword [esp + 0x94]
push eax
call fcn.004692b1
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], ebx
mov word [esp + 0x94], bx
jb 0x41ccc5
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.004692b1
add esp, 4
xor al, al
jmp 0x41cffe
push 9
push str.setup.dll
lea esi, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
call fcn.00406d50
mov edx, esi
mov esi, dword [esp + 0x50]
push edx
push esi
mov byte [esp + 0x14c], 9
call fcn.004235e0
push 0xffffffffffffffff
mov ecx, eax
push ebx
lea eax, [esp + 0xb4]
call fcn.00406430
cmp dword [esp + 0x4c], edi
jb 0x41cd22
mov eax, dword [esp + 0x38]
push eax
call fcn.004692b1
add esp, 4
mov dword [esp + 0xfc], ebp
mov dword [esp + 0xf8], ebx
mov word [esp + 0xe8], bx
mov byte [esp + 0x144], 0xa
cmp dword [esp + 0xe0], edi
mov ecx, dword [esp + 0xcc]
jae 0x41cd57
lea ecx, [esp + 0xcc]
lea edx, [esp + 0xe4]
push edx
mov edx, 0x4b515c
call fcn.0043df40
mov eax, dword [esp + 0xec]
add esp, 4
cmp dword [esp + 0xfc], edi
jae 0x41cd83
lea eax, [esp + 0xe8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41cdc2
cmp dword [esp + 0xfc], edi
jb 0x41cda7
mov eax, dword [esp + 0xe8]
push eax
call fcn.004692b1
add esp, 4
mov dword [esp + 0xfc], ebp
mov dword [esp + 0xf8], ebx
mov word [esp + 0xe8], bx
jmp 0x41cc25
mov edx, 0x4b515c
lea eax, [esp + 0x18]
call fcn.00405e60
lea edx, [esp + 0x18]
push edx
push esi
mov byte [esp + 0x14c], 0xb
call fcn.004235e0
push 0xffffffffffffffff
mov ecx, eax
push ebx
lea eax, [esp + 0xec]
call fcn.00406430
cmp dword [esp + 0x30], edi
jb 0x41ce07
mov eax, dword [esp + 0x1c]
push eax
call fcn.004692b1
add esp, 4
mov dword [esp + 0x118], ebp
mov dword [esp + 0x114], ebx
mov word [esp + 0x104], bx
mov byte [esp + 0x144], 0xc
cmp dword [esp + 0xe0], edi
mov ecx, dword [esp + 0xcc]
jae 0x41ce3c
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x100]
push edx
mov edx, str.UninsVer.txt
call fcn.0043df40
mov eax, dword [esp + 0x108]
add esp, 4
cmp dword [esp + 0x118], edi
jae 0x41ce68
lea eax, [esp + 0x104]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41cf24
mov edx, str.UninsVer.txt
lea eax, [esp + 0x18]
call fcn.00405e60
lea eax, [esp + 0x18]
push eax
push esi
mov byte [esp + 0x14c], 0xd
call fcn.004235e0
push 0xffffffffffffffff
mov ecx, eax
push ebx
lea eax, [esp + 0x108]
call fcn.00406430
lea ecx, [esp + 0x18]
call fcn.00401a00
mov dword [esp + 0x134], ebp
mov dword [esp + 0x130], ebx
mov word [esp + 0x120], bx
mov byte [esp + 0x144], 0xe
cmp dword [esp + 0x8c], edi
mov ecx, dword [esp + 0x78]
jae 0x41cee1
lea ecx, [esp + 0x78]
lea edx, [esp + 0x11c]
push edx
mov edx, str.UninstRsc.dll
call fcn.0043df40
mov eax, dword [esp + 0x124]
add esp, 4
cmp dword [esp + 0x134], edi
jae 0x41cf0d
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41cf70
lea ecx, [esp + 0x11c]
call fcn.00401a00
lea ecx, [esp + 0x100]
call fcn.00401a00
lea ecx, [esp + 0xe4]
call fcn.00401a00
lea ecx, [esp + 0xac]
call fcn.00401a00
lea ecx, [esp + 0x74]
call fcn.00401a00
lea ecx, [esp + 0x90]
call fcn.00401a00
lea ecx, [esp + 0xc8]
call fcn.00401a00
xor al, al
jmp 0x41cffe
mov edx, str.UninstRsc.dll
lea eax, [esp + 0x58]
call fcn.00405e60
lea eax, [esp + 0x58]
push eax
push esi
mov byte [esp + 0x14c], 0xf
call fcn.004235e0
push 0xffffffffffffffff
mov ecx, eax
push ebx
lea eax, [esp + 0x124]
call fcn.00406430
lea ecx, [esp + 0x58]
call fcn.00401a00
lea ecx, [esp + 0x11c]
call fcn.00401a00
lea ecx, [esp + 0x100]
call fcn.00401a00
lea ecx, [esp + 0xe4]
call fcn.00401a00
lea ecx, [esp + 0xac]
call fcn.00401a00
lea ecx, [esp + 0x74]
call fcn.00401a00
lea ecx, [esp + 0x90]
call fcn.00401a00
lea ecx, [esp + 0xc8]
call fcn.00401a00
mov al, 1
mov ecx, dword [esp + 0x13c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x124]
xor ecx, esp
call fcn.00483bf3
add esp, 0x134
ret 4