Function at 0x415cd5
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x380
mov esi, esp
mov eax, dword [0x6f4e3c]
xor eax, ebp
mov dword [esi + 0x378], eax
call fcn.00436db0
call fcn.0044562c
test al, al
je 0x415d06
call fcn.00445718
mov edi, dword [ebp + 0xc]
cmp byte [0x6f22f5], 0
jne 0x415d1f
push edi
call fcn.00447612
add esp, 4
test al, al
je 0x415d28
push edi
call fcn.00447e4e
add esp, 4
cmp byte [0x6f22f6], 0
jne 0x415d42
push edi
call fcn.00447192
add esp, 4
test al, al
je 0x415dc9
call fcn.004175be
lea ebx, [esi + 0x170]
push dword [ebp + 0x10]
push edi
push ebx
call fcn.00418416
add esp, 0xc
lea edi, [esi + 0xc8]
mov ecx, edi
push str.setup64.exe
call fcn.00401a6c
push edi
push ebx
call fcn.00442e67
add esp, 8
cmp byte [edi + 0xb], 0
jns 0x415d8a
push dword [esi + 0xc8]
call fcn.00517bd6
add esp, 4
mov dword [esi + 0x10], esp
push eax
sub esp, 0xc
mov ebx, esp
lea ecx, [ebx + 4]
lea eax, [esi + 0x170]
push eax
call fcn.00468aa8
mov edi, dword [ebp + 0xc]
mov dword [ebx], edi
call fcn.004478e0
add esp, 0x10
mov esp, dword [esi + 0x10]
cmp byte [esi + 0x17b], 0
jns 0x415dc9
push dword [esi + 0x170]
call fcn.00517bd6
add esp, 4
cmp byte [0x899a3c], 0
jne 0x415ddf
push edi
call fcn.004475ac
add esp, 4
test al, al
je 0x415de8
push edi
call fcn.00447f3e
add esp, 4
push edi
call fcn.0044802e
add esp, 4
lea edi, [esi + 0xbc]
mov ecx, edi
call fcn.0046ed20
push edi
push 0x6c
call fcn.00476650
add esp, 8
test al, al
je 0x415e8a
call fcn.00415b8a
mov byte [esi + 7], al
push 4
call fcn.0044600e
add esp, 4
lea eax, [esi + 0xb0]
mov ecx, 0x770d84
push eax
call fcn.004103ea
lea eax, [esi + 0xa4]
mov ecx, 0x770d84
push eax
call fcn.00416cc0
lea ebx, [esi + 0x98]
push 0x157e
push ebx
call fcn.00498905
add esp, 8
call fcn.0044669a
test al, al
je 0x415ed5
lea ecx, [esi + 0x170]
push edi
call fcn.0046ed40
movzx eax, byte [esi + 0xa3]
test al, al
jns 0x415f25
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x9c]
jmp 0x415f2b
push 2
call fcn.00473360
add esp, 4
test al, al
je 0x415ece
lea edi, [esi + 0x170]
mov ecx, edi
push 2
push 0x2a1
push str..._.._chrome_installer_tdsetup_tdsetup_ee_install_write_config.cpp
call fcn.004733f0
lea eax, [esi + 0x178]
push 0x24
push str.Failed_to_get_location_for_shortcut.
push eax
call fcn.00403cc6
add esp, 0xc
mov ecx, edi
call fcn.00473790
xor ebx, ebx
jmp 0x416c7e
movzx eax, byte [esi + 0xa3]
test al, al
jns 0x415eec
mov ebx, dword [esi + 0x98]
mov eax, dword [esi + 0x9c]
lea edi, [esi + 0x170]
lea ecx, [esi + 0xbc]
push eax
push ebx
push edi
call fcn.0046fbd0
lea ecx, [esi + 0xbc]
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
mov dword [esi + 0x14], 0
lea ebx, [esi + 0xb0]
jmp 0x415fc5
lea edx, [esi + 0x98]
lea edi, [esi + 0x8c]
lea ecx, [esi + 0x170]
push eax
push edx
mov ebx, edi
push edi
call fcn.0046fbd0
movzx eax, byte [esi + 0xbb]
test al, al
jns 0x415f5a
mov edx, dword [esi + 0xb0]
mov eax, dword [esi + 0xb4]
jmp 0x415f60
lea edx, [esi + 0xb0]
lea edi, [esi + 0xc8]
mov ecx, ebx
push eax
push edx
push edi
call fcn.0046fbd0
lea ebx, [esi + 0x170]
mov ecx, ebx
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
lea ecx, [esi + 0x8c]
call fcn.0046ee40
push ebx
call fcn.00482720
add esp, 4
test al, al
je 0x415fad
push ebx
call fcn.00482020
add esp, 4
mov al, 1
mov dword [esi + 0x14], eax
jmp 0x415fb4
mov dword [esi + 0x14], 0
lea ebx, [esi + 0xb0]
lea ecx, [esi + 0x170]
call fcn.0046ee40
mov eax, ebx
mov dword [esi + 0x10], ebx
movzx eax, byte [ebx + 0xb]
mov dword [esi + 0xc], ebx
mov edx, ebx
test al, al
jns 0x415fe3
mov edx, dword [esi + 0xb0]
mov eax, dword [esi + 0xb4]
lea edi, [esi + 0x170]
lea ebx, [esi + 0xbc]
mov ecx, ebx
push eax
push edx
push edi
call fcn.0046fbd0
mov ecx, ebx
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
lea ecx, [esi + 0x8c]
push ebx
call fcn.0046ed40
xor eax, eax
mov dword [esi + 0xcc], eax
mov dword [esi + 0xc8], eax
mov dword [esi + 0xd0], eax
mov edi, dword [esi + 0x10]
movzx ebx, byte [edi + 0xb]
mov ecx, dword [esi + 0xc]
test bl, bl
jns 0x416042
mov ebx, dword [esi + 0xb4]
mov ecx, dword [esi + 0xb0]
lea eax, [ebx + 4]
cmp eax, 0x7ffffff0
jae 0x416ca0
cmp eax, 5
jae 0x41606a
lea eax, [esi + 0xc8]
mov byte [eax + 0xb], bl
test ebx, ebx
lea edi, [esi + 0x170]
jne 0x4160a0
jmp 0x4160b8
mov dword [esi + 8], ecx
lea edi, [ebx + 0xc]
and edi, 0xfffffff8
js 0x416cab
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esi + 0xc8], eax
or edi, 0x80000000
mov dword [esi + 0xd0], edi
mov dword [esi + 0xcc], ebx
mov ecx, dword [esi + 8]
lea edx, [ebx + ebx]
push edx
push ecx
push eax
mov edi, eax
call fcn.006025b0
mov eax, edi
lea edi, [esi + 0x170]
add esp, 0xc
mov word [eax + ebx*2], 0
lea ebx, [esi + 0xc8]
mov ecx, ebx
push 4
push 0x642dde
call fcn.00468fc8
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x4160e6
mov ebx, dword [esi + 0xc8]
mov eax, dword [esi + 0xcc]
lea ecx, [esi + 0x8c]
push eax
push ebx
push edi
call fcn.0046fbd0
lea ecx, [esi + 0x8c]
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
cmp byte [esi + 0xd3], 0
jns 0x41611e
push dword [esi + 0xc8]
call fcn.00517bd6
add esp, 4
lea ebx, [esi + 0x80]
mov ecx, ebx
push dword [ebp + 0xc]
call fcn.00468aa8
lea edi, [esi + 0xc8]
mov ecx, edi
push str.360chrome.exe
call fcn.00401a6c
mov dword [esi + 0x18], edi
push edi
push ebx
lea eax, [esi + 0x170]
push eax
call fcn.0041543f
add esp, 0xc
cmp byte [ebx + 0xb], 0
js 0x41616c
mov word [esi + 0x80], 0
mov byte [esi + 0x8b], 0
jmp 0x4161a2
mov eax, dword [esi + 0x80]
mov word [eax], 0
mov dword [esi + 0x84], 0
cmp byte [esi + 0x8b], 0
jns 0x4161a2
push dword [esi + 0x80]
call fcn.00517bd6
add esp, 4
mov dword [esi + 0x88], 0
mov eax, dword [esi + 0x178]
mov dword [esi + 0x88], eax
movsd xmm0, qword [esi + 0x170]
movsd qword [esi + 0x80], xmm0
xor eax, eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x178], eax
cmp byte [esi + 0xd3], 0
lea edi, [esi + 0xbc]
jns 0x4161ef
push dword [esi + 0xc8]
call fcn.00517bd6
add esp, 4
call fcn.00418a10
mov ecx, eax
call fcn.00418be6
test al, al
je 0x41627b
cmp byte [0x6f22f7], 0
je 0x416306
push edi
call fcn.00482720
add esp, 4
test al, al
jne 0x416222
push edi
call fcn.004714a0
add esp, 4
push 0
call fcn.00473360
add esp, 4
test al, al
je 0x416432
lea ebx, [esi + 0x170]
mov ecx, ebx
push 0
push 0x2d5
push str..._.._chrome_installer_tdsetup_tdsetup_ee_install_write_config.cpp
call fcn.004733f0
lea eax, [esi + 0x178]
push 0x15
push str.Creating_shortcut_to
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x8b], 0
jns 0x4163ea
mov ecx, dword [esi + 0x80]
jmp 0x4163f0
call fcn.00418a10
mov ecx, eax
call fcn.00418c64
cmp byte [esi + 0x14], 0
jne 0x4161ff
or al, byte [esi + 7]
jne 0x4161ff
lea edi, [esi + 0x8c]
push edi
call fcn.00482720
add esp, 4
test al, al
je 0x41630d
push 0
call fcn.00473360
add esp, 4
test al, al
je 0x41648a
lea ebx, [esi + 0x170]
mov ecx, ebx
push 0
push 0x2dc
push str..._.._chrome_installer_tdsetup_tdsetup_ee_install_write_config.cpp
call fcn.004733f0
lea eax, [esi + 0x178]
push 0x15
push str.Updating_shortcut_at
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x97], 0
jns 0x416442
mov ecx, dword [esi + 0x8c]
jmp 0x416448
mov bl, 1
jmp 0x4164ab
mov bl, 1
push edi
call fcn.00482720
add esp, 4
test al, al
jne 0x4164ab
lea edi, [esi + 0xbc]
push edi
call fcn.00482720
add esp, 4
test al, al
jne 0x41633c
push edi
call fcn.004714a0
add esp, 4
push 0
call fcn.00473360
add esp, 4
test al, al
lea edi, [esi + 0x8c]
je 0x4163d4
lea ebx, [esi + 0x170]
mov ecx, ebx
push 0
push 0x2e6
push str..._.._chrome_installer_tdsetup_tdsetup_ee_install_write_config.cpp
call fcn.004733f0
lea eax, [esi + 0x178]
push 0x15
push str.Creating_shortcut_to
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x8b], 0
lea ecx, [esi + 0x80]
jns 0x416398
mov ecx, dword [esi + 0x80]
push ecx
push eax
call fcn.00473e90
add esp, 8
push 4
push str._at
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x97], 0
mov ecx, edi
jns 0x4163c3
mov ecx, dword [esi + 0x8c]
push ecx
push eax
call fcn.00473e90
add esp, 8
mov ecx, ebx
call fcn.00473790
push 1
lea eax, [esi + 0xa4]
push eax
push edi
lea eax, [esi + 0x80]
push eax
jmp 0x4164a1
lea ecx, [esi + 0x80]
push ecx
push eax
call fcn.00473e90
add esp, 8
push 4
push str._at
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x97], 0
jns 0x41641b
mov ecx, dword [esi + 0x8c]
jmp 0x416421
lea ecx, [esi + 0x8c]
push ecx
push eax
call fcn.00473e90
add esp, 8
mov ecx, ebx
call fcn.00473790
lea eax, [esi + 0x8c]
lea ecx, [esi + 0x80]
push 1
jmp 0x416498
lea ecx, [esi + 0x8c]
push ecx
push eax
call fcn.00473e90
add esp, 8
push 0xd
push str._to_point_to
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x8b], 0
jns 0x416473
mov ecx, dword [esi + 0x80]
jmp 0x416479
lea ecx, [esi + 0x80]
push ecx
push eax
call fcn.00473e90
add esp, 8
mov ecx, ebx
call fcn.00473790
lea eax, [esi + 0x8c]
lea ecx, [esi + 0x80]
push 0
lea edx, [esi + 0xa4]
push edx
push eax
push ecx
call fcn.00446f4a
add esp, 0x10
mov ebx, eax
mov byte [esi + 8], bl
xor ebx, ebx
push 0x208
push ebx
lea edi, [esi + 0x170]
push edi
call fcn.006030b0
add esp, 0xc
mov dword [esi + 0x74], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x78], ebx
sub esp, 0x14
mov dword [esp + 0x10], edi
movaps xmm0, xmmword [0x642c20]
movups xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x416569
mov eax, dword [esi + 0x14]
or al, byte [0x6f22f7]
je 0x41666e
lea ebx, [esi + 0x70]
mov ecx, ebx
lea eax, [esi + 0x170]
push eax
call fcn.0046930c
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x416518
mov ebx, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
lea ecx, [esi + 0xc8]
push eax
push ebx
call fcn.0046ed80
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x10]
movzx ebx, byte [eax + 0xb]
test bl, bl
jns 0x41654a
mov ebx, dword [esi + 0xb4]
mov eax, dword [esi + 0xb0]
mov dword [esi + 0xc], eax
lea eax, [ebx + 4]
cmp eax, 0x7ffffff0
jae 0x416cb8
cmp eax, 5
jae 0x416574
lea edi, [esi + 0x58]
mov byte [edi + 0xb], bl
test ebx, ebx
jne 0x41659d
jmp 0x4165ad
lea edi, [esi + 0xbc]
jmp 0x4167f3
lea edi, [ebx + 0xc]
and edi, 0xfffffff8
js 0x416cab
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esi + 0x58], eax
or edi, 0x80000000
mov dword [esi + 0x60], edi
mov edi, eax
mov dword [esi + 0x5c], ebx
lea eax, [ebx + ebx]
push eax
push dword [esi + 0xc]
push edi
call fcn.006025b0
add esp, 0xc
mov word [edi + ebx*2], 0
lea ebx, [esi + 0x58]
mov ecx, ebx
push 4
push 0x642dde
call fcn.00468fc8
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x4165d2
mov ebx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
lea edx, [esi + 0x64]
lea edi, [esi + 0xc8]
mov ecx, edi
push eax
push ebx
push edx
mov ebx, edx
call fcn.0046fbd0
mov ecx, edi
mov edi, ebx
push ebx
call fcn.0046ee80
mov ecx, ebx
call fcn.0046ee40
cmp byte [esi + 0x63], 0
jns 0x416609
push dword [esi + 0x58]
call fcn.00517bd6
add esp, 4
push 5
call fcn.0044600e
add esp, 4
call fcn.0044669a
mov cl, byte [esi + 8]
mov ebx, ecx
and bl, al
test al, al
jne 0x416660
xor cl, 1
jne 0x416660
mov ecx, edi
push 0x6390a0
call fcn.00401a6c
lea eax, [esi + 0x80]
push 1
push edi
lea ecx, [esi + 0xc8]
push ecx
push eax
call fcn.00446f4a
add esp, 0x10
mov ebx, eax
cmp byte [esi + 0x6f], 0
jns 0x416660
push dword [esi + 0x64]
call fcn.00517bd6
add esp, 4
lea ecx, [esi + 0xc8]
call fcn.0046ee40
mov byte [esi + 8], bl
lea edi, [esi + 0xbc]
push 0x13e4
lea eax, [esi + 0xc8]
push eax
call fcn.00498905
add esp, 8
lea ecx, [esi + 0x64]
push str.http:__chrome.360.cn_features_
call fcn.00401a6c
lea ecx, [esi + 0x58]
push edi
call fcn.0046ed40
xor eax, eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x48], eax
movzx ebx, byte [esi + 0xd3]
test bl, bl
jns 0x4166c3
mov ebx, dword [esi + 0xcc]
mov eax, dword [esi + 0xc8]
mov dword [esi + 0x18], eax
lea eax, [ebx + 4]
cmp eax, 0x7ffffff0
jae 0x416cb0
cmp eax, 5
jae 0x4166e2
lea edi, [esi + 0x40]
mov byte [edi + 0xb], bl
test ebx, ebx
jne 0x41670b
jmp 0x41671b
lea edi, [ebx + 0xc]
and edi, 0xfffffff8
js 0x416cab
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esi + 0x40], eax
or edi, 0x80000000
mov dword [esi + 0x48], edi
mov edi, eax
mov dword [esi + 0x44], ebx
lea eax, [ebx + ebx]
push eax
push dword [esi + 0x18]
push edi
call fcn.006025b0
add esp, 0xc
mov word [edi + ebx*2], 0
lea edi, [esi + 0x40]
mov ecx, edi
push 4
push 0x642dde
call fcn.00468fc8
movzx eax, byte [edi + 0xb]
test al, al
jns 0x416740
mov edi, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
lea edx, [esi + 0x4c]
lea ebx, [esi + 0x58]
mov ecx, ebx
push eax
push edi
push edx
mov edi, edx
call fcn.0046fbd0
mov ecx, ebx
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
cmp byte [esi + 0x4b], 0
jns 0x416772
push dword [esi + 0x40]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 8], 0
lea edi, [esi + 0xbc]
je 0x4167a7
cmp byte [esi + 0x6f], 0
lea ecx, [esi + 0x64]
jns 0x41678a
mov ecx, dword [esi + 0x64]
cmp byte [esi + 0x63], 0
lea edx, [esi + 0x58]
jns 0x416796
mov edx, dword [esi + 0x58]
cmp byte [esi + 0x8b], 0
jns 0x4167ab
mov eax, dword [esi + 0x80]
jmp 0x4167b1
xor ebx, ebx
jmp 0x4167c3
lea eax, [esi + 0x80]
push 0
push ecx
push edx
push eax
call fcn.00447064
add esp, 0x10
test eax, eax
setne bl
lea ecx, [esi + 0x58]
call fcn.0046ee40
cmp byte [esi + 0x6f], 0
jns 0x4167dc
push dword [esi + 0x64]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0xd3], 0
jns 0x4167f3
push dword [esi + 0xc8]
call fcn.00517bd6
add esp, 4
cmp byte [0x6f22f7], 0
je 0x416c01
call fcn.0044669a
test al, al
jne 0x416c01
lea ecx, [esi + 0x64]
push edi
call fcn.0046ed40
lea edi, [esi + 0x4c]
mov ecx, 0x770d84
push edi
call fcn.00416d14
mov dword [esi + 0xc], edi
mov ecx, edi
push 0x642dde
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esi + 0x60], ecx
movsd xmm0, qword [eax]
movsd qword [esi + 0x58], xmm0
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
movzx eax, byte [esi + 0x63]
test al, al
jns 0x41685c
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
jmp 0x41685f
lea edx, [esi + 0x58]
lea edi, [esi + 0xc8]
lea ecx, [esi + 0x64]
push eax
push edx
push edi
call fcn.0046fbd0
lea ecx, [esi + 0x64]
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
cmp byte [esi + 0x63], 0
jns 0x416891
push dword [esi + 0x58]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0x57], 0
jns 0x4168a2
push dword [esi + 0x4c]
call fcn.00517bd6
add esp, 4
lea edi, [esi + 0x58]
mov ecx, edi
lea eax, [esi + 0x64]
push eax
call fcn.0046ed40
call fcn.00418a10
mov ecx, eax
call fcn.00418be6
test al, al
jne 0x416902
call fcn.00418a10
mov ecx, eax
call fcn.00418c64
test al, al
jne 0x416902
call fcn.00418a10
mov ecx, eax
call fcn.00418c50
or byte [esi + 7], al
jne 0x416902
push edi
call fcn.00482720
add esp, 4
test al, al
jne 0x416902
lea eax, [esi + 0x64]
push eax
call fcn.00482720
add esp, 4
test al, al
je 0x416bf1
mov dword [esi + 8], ebx
push edi
call fcn.00482720
add esp, 4
test al, al
je 0x41691b
push edi
call fcn.00481cb0
add esp, 4
mov ebx, dword [ebp + 8]
lea edi, [esi + 0xbc]
push edi
call fcn.00482720
add esp, 4
test al, al
jne 0x41693a
push edi
call fcn.004714a0
add esp, 4
call fcn.004175be
push dword [ebp + 0x10]
push dword [ebp + 0xc]
lea eax, [esi + 0x4c]
push eax
call fcn.00418416
add esp, 0xc
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x41695e
mov eax, dword [ebx + 4]
mov ebx, dword [ebx]
lea edi, [esi + 0x40]
mov ecx, edi
push eax
push ebx
call fcn.0046ed80
mov ecx, edi
lea ebx, [esi + 0xc8]
push ebx
call fcn.0046f820
push ebx
lea eax, [esi + 0x4c]
push eax
call fcn.00442e67
add esp, 8
mov ecx, ebx
call fcn.0046ee40
mov ecx, edi
call fcn.0046ee40
xor ebx, ebx
mov dword [edi + 4], ebx
mov dword [edi], ebx
mov dword [edi + 8], ebx
push ebx
push edi
call fcn.004154c6
add esp, 8
push ebx
call fcn.00473360
add esp, 4
test al, al
je 0x416a00
lea edi, [esi + 0xc8]
mov ecx, edi
push 0
push 0x331
push str..._.._chrome_installer_tdsetup_tdsetup_ee_install_write_config.cpp
call fcn.004733f0
lea eax, [esi + 0xd0]
push 0x24
push str.Creating_updating_uninstall_link_at
push eax
call fcn.00403cc6
add esp, 0xc
cmp byte [esi + 0x6f], 0
lea ecx, [esi + 0x64]
jns 0x4169ef
mov ecx, dword [esi + 0x64]
push ecx
push eax
call fcn.00473e90
add esp, 8
mov ecx, edi
call fcn.00473790
movzx eax, byte [esi + 0x57]
test al, al
jns 0x416a11
mov eax, dword [esi + 0x4c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x50]
lea ebx, [esi + 0x34]
mov ecx, ebx
push eax
push dword [esi + 0xc]
call fcn.0046ed80
lea edi, [esi + 0x28]
mov ecx, ebx
push edi
call fcn.0046f6e0
lea ebx, [esi + 0x1c]
mov ecx, ebx
push str.uninstall.ico
call fcn.00401a6c
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x416a47
mov ebx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov ecx, edi
push eax
push ebx
lea ebx, [esi + 0xc8]
push ebx
call fcn.0046fbd0
mov ecx, edi
push ebx
call fcn.0046ee80
mov ecx, ebx
call fcn.0046ee40
cmp byte [esi + 0x27], 0
jns 0x416a77
push dword [esi + 0x1c]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0x33], 0
jns 0x416a80
mov edi, dword [esi + 0x28]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x416aaf
lea edi, [esi + 0xc8]
mov ecx, edi
call fcn.00485d70
movzx eax, byte [esi + 0x57]
test al, al
jns 0x416b40
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
jmp 0x416b43
lea ebx, [esi + 0xc8]
mov ecx, ebx
call fcn.00485d70
lea edx, [esi + 0x4c]
movzx eax, byte [edx + 0xb]
test al, al
jns 0x416acd
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
lea edi, [esi + 0x1c]
mov ecx, edi
push eax
push edx
call fcn.0046ed80
mov ecx, ebx
push edi
call fcn.0046ee60
lea ebx, [esi + 0xe0]
or byte [ebx + 0x48], 1
mov ecx, edi
call fcn.0046ee40
mov ecx, ebx
lea eax, [esi + 0x40]
push eax
call fcn.00468c2e
or byte [ebx + 0x48], 4
movzx eax, byte [esi + 0x57]
test al, al
lea edx, [esi + 0x4c]
jns 0x416b12
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
lea edi, [esi + 0x1c]
mov ecx, edi
push eax
push edx
call fcn.0046ed80
lea ebx, [esi + 0xf8]
mov ecx, ebx
push edi
call fcn.0046ee60
mov dword [ebx + 0xc], 1
or byte [ebx + 0x30], 0x10
mov ecx, edi
call fcn.0046ee40
jmp 0x416b93
lea edx, [esi + 0x4c]
lea ebx, [esi + 0x1c]
mov ecx, ebx
push eax
push edx
call fcn.0046ed80
mov ecx, edi
push ebx
call fcn.0046ee60
lea edi, [esi + 0xe0]
or byte [edi + 0x48], 1
mov ecx, ebx
call fcn.0046ee40
mov ecx, edi
lea eax, [esi + 0x40]
push eax
call fcn.00468c2e
or byte [edi + 0x48], 4
lea edi, [esi + 0xf8]
lea eax, [esi + 0x28]
mov ecx, edi
push eax
call fcn.0046ee60
mov dword [edi + 0xc], 0
or byte [edi + 0x30], 0x10
cmp byte [esi + 8], 0
je 0x416bb2
push 0
lea eax, [esi + 0xc8]
push eax
lea eax, [esi + 0x64]
push eax
call fcn.00485e30
add esp, 0xc
mov ebx, eax
jmp 0x416bb4
xor ebx, ebx
lea ecx, [esi + 0xc8]
call fcn.00485dd0
lea ecx, [esi + 0x28]
call fcn.0046ee40
lea ecx, [esi + 0x34]
call fcn.0046ee40
cmp byte [esi + 0x4b], 0
jns 0x416be0
push dword [esi + 0x40]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0x57], 0
jns 0x416bf1
push dword [esi + 0x4c]
call fcn.00517bd6
add esp, 4
lea ecx, [esi + 0x58]
call fcn.0046ee40
lea ecx, [esi + 0x64]
call fcn.0046ee40
test bl, bl
setne bl
cmp byte [esi + 0x7b], 0
jns 0x416c17
push dword [esi + 0x70]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0x8b], 0
jns 0x416c2e
push dword [esi + 0x80]
call fcn.00517bd6
add esp, 4
lea ecx, [esi + 0x8c]
call fcn.0046ee40
cmp byte [esi + 0xa3], 0
jns 0x416c50
push dword [esi + 0x98]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0xaf], 0
jns 0x416c67
push dword [esi + 0xa4]
call fcn.00517bd6
add esp, 4
mov eax, dword [esi + 0x10]
cmp byte [eax + 0xb], 0
jns 0x416c7e
push dword [esi + 0xb0]
call fcn.00517bd6
add esp, 4
lea ecx, [esi + 0xbc]
call fcn.0046ee40
mov ecx, dword [esi + 0x378]
xor ecx, ebp
call fcn.00517c1a
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esi + 0xc8]
call fcn.00467d64
call fcn.0061842c
lea ecx, [esi + 0x40]
call fcn.00467d64
lea ecx, [esi + 0x58]
call fcn.00467d64