Function at 0x4027c0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572ea1
mov eax, dword fs:[0]
push eax
sub esp, 0x838
mov eax, dword [0x5f4900]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x748], ecx
call fcn.00405330
mov dword [ebp - 0x7bc], eax
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cda0
cmp eax, 1
jl 0x402846
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cfe0
movzx eax, al
test eax, eax
je 0x40283f
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cd70
jmp 0x402846
mov al, 1
jmp 0x40306f
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d0b0
mov ecx, eax
call fcn.00419e90
push eax
lea ecx, [ebp - 0x75c]
call fcn.00403a10
mov dword [ebp - 4], 0
push 0x5882e8
lea ecx, [ebp - 0x75c]
push ecx
call fcn.00403e30
add esp, 8
movzx edx, al
test edx, edx
je 0x402897
mov ecx, dword [ebp - 0x748]
call fcn.004032f0
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cda0
cmp eax, 0xffffffff
je 0x4028b9
mov dword [ebp - 0x778], 1
jmp 0x4028c3
mov dword [ebp - 0x778], 0
mov al, byte [ebp - 0x778]
mov byte [ebp - 0x755], al
movzx ecx, byte [ebp - 0x755]
test ecx, ecx
jne 0x402a94
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041ceb0
push eax
lea ecx, [ebp - 0x750]
call fcn.00403a10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x750]
call fcn.00403e60
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x402960
xor edx, edx
mov word [ebp - 0x218], dx
push 0x206
push 0
lea eax, [ebp - 0x216]
push eax
call fcn.00550230
add esp, 0xc
lea ecx, [ebp - 0x750]
call fcn.00403e60
push eax
push 0x104
lea ecx, [ebp - 0x218]
push ecx
call fcn.005508be
add esp, 0xc
lea edx, [ebp - 0x218]
push edx
call fcn.00409900
lea ecx, [ebp - 0x750]
call fcn.00403e60
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40298c
lea ecx, [ebp - 0x750]
call fcn.00403e60
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4029bf
mov byte [ebp - 0x751], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x750]
call fcn.00403b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x75c]
call fcn.00403b70
mov al, byte [ebp - 0x751]
jmp 0x40306f
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d100
movzx eax, al
test eax, eax
jne 0x402a85
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d770
test eax, eax
jne 0x402a85
push 0
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
push ecx
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d450
push eax
lea ecx, [ebp - 0x744]
call fcn.00408770
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x744]
call fcn.00423710
cmp eax, 2
jne 0x402a76
mov byte [ebp - 0x752], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x744]
call fcn.00408890
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x750]
call fcn.00403b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x75c]
call fcn.00403b70
mov al, byte [ebp - 0x752]
jmp 0x40306f
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x744]
call fcn.00408890
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x750]
call fcn.00403b70
push 0
mov edx, dword [ebp - 0x748]
add edx, 0xd0
push edx
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d470
push eax
lea ecx, [ebp - 0x4b0]
call fcn.00409170
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
call fcn.00405440
mov byte [ebp - 4], 4
lea eax, [ebp - 0x4b0]
test eax, eax
je 0x402af1
lea ecx, [ebp - 0x4b0]
add ecx, 0x294
mov dword [ebp - 0x774], ecx
jmp 0x402afb
mov dword [ebp - 0x774], 0
mov edx, dword [ebp - 0x774]
push edx
mov eax, dword [ebp - 0x748]
add eax, 0xd0
push eax
lea ecx, [ebp - 0x844]
call fcn.004055a0
movzx ecx, al
test ecx, ecx
jne 0x402c11
lea ecx, [ebp - 0x768]
call fcn.00403a90
mov byte [ebp - 4], 5
lea edx, [ebp - 0x7ac]
push edx
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041ce00
mov dword [ebp - 0x7b0], eax
mov eax, dword [ebp - 0x7b0]
mov dword [ebp - 0x77c], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x77c]
call fcn.00403e60
push eax
push str.error_codeServiceDownipm_message_id_s
lea ecx, [ebp - 0x768]
push ecx
call fcn.00404760
add esp, 0xc
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7ac]
call fcn.00403b70
lea ecx, [ebp - 0x768]
call fcn.00403e60
push eax
push 0x5882f4
mov edx, dword [ebp - 0x748]
mov eax, dword [edx + 0x1a8]
mov ecx, dword [ebp - 0x748]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x1a8]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 0x753], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x768]
call fcn.00403b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
call fcn.00405500
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4b0]
call fcn.00409200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x75c]
call fcn.00403b70
mov al, byte [ebp - 0x753]
jmp 0x40306f
push 0
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cd70
lea ecx, [ebp - 0x844]
call fcn.00405ae0
movzx ecx, al
test ecx, ecx
jne 0x402ef2
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d100
movzx edx, al
test edx, edx
je 0x402ee0
push 1
push str.Downloading_silently
call fcn.00419830
add esp, 8
push 0
lea eax, [ebp - 0x788]
push eax
mov ecx, dword [ebp - 0x748]
call fcn.00403760
mov dword [ebp - 0x798], eax
mov ecx, dword [ebp - 0x798]
mov dword [ebp - 0x7a0], ecx
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x7a0]
call fcn.00403e60
push eax
push 0
push 0
lea ecx, [ebp - 0x7b8]
call fcn.0042d5fb
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x788]
call fcn.00403b70
lea ecx, [ebp - 0x844]
call fcn.00405ae0
movzx edx, al
test edx, edx
jne 0x402d44
lea ecx, [ebp - 0x844]
call fcn.00405d60
movzx eax, al
test eax, eax
jne 0x402d44
push 0x1f4
mov ecx, dword [ebp - 0x7b4]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x7a4], eax
cmp dword [ebp - 0x7a4], 0
jne 0x402d34
push 1
push str.Notification_received_to_become_visible
call fcn.00419830
add esp, 8
push 0
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041d120
lea edx, [ebp - 0x4b0]
push edx
mov ecx, dword [ebp - 0x748]
call fcn.00403710
jmp 0x402d44
lea ecx, [ebp - 0x844]
call fcn.00405c90
jmp 0x402cb9
lea ecx, [ebp - 0x844]
call fcn.00405d60
movzx eax, al
test eax, eax
je 0x402ecf
push 1
push str.Error_during_silent_downloading___making_next_run_non_silent
call fcn.00419830
add esp, 8
mov ecx, dword [ebp - 0x748]
add ecx, 0x16c
call fcn.00407a10
push eax
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041e0a0
lea ecx, [ebp - 0x844]
call fcn.00405d90
mov dword [ebp - 0x790], eax
lea ecx, [ebp - 0x760]
call fcn.00403a90
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x790]
mov dword [ebp - 0x770], ecx
cmp dword [ebp - 0x770], 1
je 0x402dd5
cmp dword [ebp - 0x770], 2
je 0x402de7
cmp dword [ebp - 0x770], 3
je 0x402df9
jmp 0x402e09
push str.ServiceDown
lea ecx, [ebp - 0x760]
call fcn.00403d90
jmp 0x402e09
push str.LocalFolderProblem
lea ecx, [ebp - 0x760]
call fcn.00403d90
jmp 0x402e09
push str.AccessProblem
lea ecx, [ebp - 0x760]
call fcn.00403d90
lea ecx, [ebp - 0x76c]
call fcn.00403a90
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x7a8]
push edx
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041ce00
mov dword [ebp - 0x794], eax
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x79c], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x79c]
call fcn.00403e60
push eax
lea ecx, [ebp - 0x760]
call fcn.00403e60
push eax
push str.error_code_sipm_message_id_s
lea ecx, [ebp - 0x76c]
push ecx
call fcn.00404760
add esp, 0x10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x7a8]
call fcn.00403b70
lea ecx, [ebp - 0x76c]
call fcn.00403e60
push eax
push 0x588500
mov edx, dword [ebp - 0x748]
mov eax, dword [edx + 0x1a8]
mov ecx, dword [ebp - 0x748]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x1a8]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x76c]
call fcn.00403b70
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x760]
call fcn.00403b70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7b8]
call fcn.0042d6c7
jmp 0x402ef2
lea ecx, [ebp - 0x4b0]
push ecx
mov ecx, dword [ebp - 0x748]
call fcn.00403710
lea ecx, [ebp - 0x844]
call fcn.00405ae0
movzx edx, al
test edx, edx
jne 0x402f56
lea ecx, [ebp - 0x844]
call fcn.00405930
mov byte [ebp - 0x754], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
call fcn.00405500
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4b0]
call fcn.00409200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x75c]
call fcn.00403b70
mov al, byte [ebp - 0x754]
jmp 0x40306f
push 0
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041ca30
push 1
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041cd70
mov ecx, dword [ebp - 0x748]
call fcn.004035e0
lea ecx, [ebp - 0x764]
call fcn.00403a90
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x78c]
push eax
mov ecx, dword [ebp - 0x748]
add ecx, 0xd0
call fcn.0041ce00
mov dword [ebp - 0x780], eax
mov ecx, dword [ebp - 0x780]
mov dword [ebp - 0x784], ecx
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x784]
call fcn.00403e60
push eax
push str.error_codesuccessipm_message_id_s
lea edx, [ebp - 0x764]
push edx
call fcn.00404760
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x78c]
call fcn.00403b70
lea ecx, [ebp - 0x764]
call fcn.00403e60
push eax
push str.patch_downloaded
mov eax, dword [ebp - 0x748]
mov ecx, dword [eax + 0x1a8]
mov edx, dword [ebp - 0x748]
mov eax, dword [ecx]
mov ecx, dword [edx + 0x1a8]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x764]
call fcn.00403b70
mov byte [ebp - 0x749], 1
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
call fcn.00405500
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4b0]
call fcn.00409200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x75c]
call fcn.00403b70
mov al, byte [ebp - 0x749]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005502f8
mov esp, ebp
pop ebp
ret