Function at 0x478340
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x62c
mov eax, dword [0x541f38]
xor eax, esp
mov dword [esp + 0x628], eax
push ebx
mov ebx, dword [esp + 0x63c]
push edi
push str.msimg32.dll
mov dword [esp + 0x18], ebx
call fcn.00475fa0
add esp, 4
push 0x475670
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x22a]
push ecx
mov word [esp + 0x22c], ax
call fcn.004d86e0
push 0x518614
lea edx, [esp + 0x230]
push 0x104
push edx
call fcn.0048b4e0
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x18
lea eax, [esp + 0x220]
push eax
call edi
test eax, eax
je 0x4783f1
push 0x518610
lea ecx, [esp + 0x224]
push str.11.0.0.1240
push ecx
call fcn.0048be50
add esp, 0xc
test eax, eax
je 0x4783f1
xor eax, eax
jmp 0x47864b
call fcn.0048af70
call fcn.00493290
mov ecx, eax
call fcn.00493d10
test eax, eax
je 0x4783ea
push ebp
push esi
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a]
push ecx
mov word [esp + 0x2c], ax
call fcn.004d86e0
push str.sites.dll
lea edx, [esp + 0x30]
push 0x104
push edx
call fcn.0048b4e0
lea eax, [esp + 0x38]
push eax
call fcn.00476860
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 0x1c
test eax, eax
jne 0x478494
lea ecx, [esp + 0x20]
push ecx
call edi
test eax, eax
je 0x47849b
push 1
lea edx, [esp + 0x24]
push 0x53f9d8
push edx
call fcn.00476d50
add esp, 0xc
jmp 0x47849b
lea eax, [esp + 0x20]
push eax
call esi
push 1
call fcn.00477f60
mov ecx, dword [esp + 0x644]
add esp, 4
push 0
push ecx
push 0
mov ecx, 0x5445fc
call fcn.004763a0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x43a]
push eax
mov word [esp + 0x43c], dx
call fcn.004d86e0
push str.CrashReport.dll
lea ecx, [esp + 0x440]
push 0x104
push ecx
call fcn.0048b4e0
add esp, 0x18
lea edx, [esp + 0x430]
push edx
call esi
test eax, eax
je 0x478512
push str.Initialize
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x478512
call eax
push ebx
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0
call fcn.0043a930
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 0xc], 0
jge 0x478533
or ebp, 0xffffffff
jmp 0x478554
push str.pagedownload
push ecx
call fcn.004d7608
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x47854e
or ebp, 0xffffffff
jmp 0x478554
sub eax, ecx
sar eax, 1
mov ebp, eax
cmp dword [ecx - 0xc], 0
jge 0x47855f
or eax, 0xffffffff
jmp 0x47857c
push str.page_backup
push ecx
call fcn.004d7608
add esp, 8
test eax, eax
jne 0x478576
or eax, 0xffffffff
jmp 0x47857c
sub eax, dword [esp + 0x10]
sar eax, 1
xor ebx, ebx
cmp eax, 0xffffffff
setg bl
xor edi, edi
call fcn.0048a960
mov esi, eax
test esi, esi
je 0x4785ac
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4785ac
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4785ac
mov edi, 1
pop esi
cmp ebp, 0xffffffff
pop ebp
jne 0x4785cd
test ebx, ebx
jne 0x4785cd
test edi, edi
jne 0x4785cd
lea eax, [esp + 8]
push edi
push eax
call fcn.0048b950
add esp, 8
test eax, eax
jne 0x478617
mov ecx, dword [esp + 0x644]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00477590
add esp, 8
test byte [0x544588], 1
mov dword [esp + 0xc], eax
jne 0x47860d
or dword [0x544588], 1
mov ecx, 0x544528
call fcn.00478230
push 0x513830
call fcn.004d869c
add esp, 4
mov ecx, 0x544528
call fcn.0049d3b0
mov eax, dword [esp + 8]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x478637
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, 0x5445fc
call fcn.00477170
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x630]
pop edi
pop ebx
xor ecx, esp
call fcn.004d7eb0
add esp, 0x62c
ret 0x10