Function at 0x486270
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x124c
call fcn.004959d0
mov eax, dword [0x4f3958]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x238], ebx
call fcn.00486200
mov ecx, dword [0x4f7a7c]
mov esi, eax
mov eax, dword [0x4f7a84]
add esp, 4
push eax
push ecx
mov ecx, esi
call fcn.00485bf0
mov edi, 1
push str.silent
mov ecx, esi
mov dword [ebp - 0x230], edi
call fcn.00484750
test eax, eax
je 0x4862e2
mov dword [ebp - 0x230], 3
jmp 0x486334
push str.silent_idle_scan
mov ecx, esi
call fcn.00484750
test eax, eax
je 0x4862fe
mov dword [ebp - 0x230], 4
jmp 0x486334
push str.auto_scan
mov ecx, esi
call fcn.00484750
test eax, eax
je 0x48631a
mov dword [ebp - 0x230], 2
jmp 0x486334
push str.silent_idle_scan_showresult
mov ecx, esi
call fcn.00484750
test eax, eax
je 0x486334
mov dword [ebp - 0x230], 5
test byte [0x4f731c], 1
jne 0x48634f
or dword [0x4f731c], edi
xor eax, eax
mov dword [0x4f7314], eax
mov dword [0x4f7318], eax
mov edx, dword [ebp - 0x230]
mov dword [0x4f7310], edx
call fcn.00427270
test eax, eax
je 0x48653d
test byte [0x4f731c], 1
jne 0x48638b
or dword [0x4f731c], edi
xor eax, eax
mov dword [0x4f7310], edi
mov dword [0x4f7314], eax
mov dword [0x4f7318], eax
jmp 0x4863ab
mov eax, dword [0x4f7310]
cmp eax, 3
je 0x48653d
cmp eax, 4
je 0x48653d
cmp eax, 5
je 0x48653d
push str.patchup
mov ecx, esi
call fcn.00484750
test eax, eax
jne 0x48653d
lea eax, [ebp - 0x240]
push str.Utils360AntiTrack.exe
push eax
call fcn.00426ce0
add esp, 4
push eax
lea ecx, [ebp - 0x234]
push ecx
call fcn.0040f670
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x486405
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x234]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48651b
mov edx, dword [ebp - 0x234]
push edx
call fcn.00409a70
add esp, 4
test eax, eax
je 0x48651b
push str._page4
lea ecx, [ebp - 0x230]
call int.00408bf0
cmp dword [0x4f7a7c], edi
jle 0x4864a5
push str.__clean_arg_
lea ecx, [ebp - 0x230]
call fcn.00410040
xor esi, esi
cmp dword [0x4f7a7c], esi
jle 0x486495
test esi, esi
je 0x48648b
push 0x4cce7c
lea ecx, [ebp - 0x230]
call fcn.00410040
mov eax, dword [0x4f7a84]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00410040
add esi, edi
cmp esi, dword [0x4f7a7c]
jl 0x486463
push 0x4c1880
lea ecx, [ebp - 0x230]
call fcn.00410040
mov edx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x234]
push 0
push 0
push edi
push 0
push edx
push eax
call fcn.00426850
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
add esp, 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4864e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486506
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004951ca
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48653d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.patchup
mov ecx, esi
call fcn.00484750
test eax, eax
je 0x486612
mov edx, dword [0x4f7780]
mov eax, dword [edx + 0xc]
mov ecx, 0x4f7780
call eax
add eax, 0x10
push eax
push 0
push str.mainwnd
lea ecx, [ebp - 0x240]
push ecx
mov ecx, esi
mov dword [ebp - 0x234], eax
call fcn.00484860
push eax
lea ecx, [ebp - 0x234]
call fcn.0040f740
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4865ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x234]
push ebx
call fcn.0049b222
mov edi, eax
add esp, 4
test edi, edi
je 0x4865eb
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4865eb
push 0
push 0
push 0x4cfb40
mov ecx, esi
call fcn.00484a40
mov esi, eax
call fcn.0045e000
mov dword [eax + 4], edi
mov dword [eax + 8], esi
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486607
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x238]
mov edi, 1
push 0x8003
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov ecx, 0x4f67f0
call fcn.0042ad00
push 0x208
lea ecx, [ebp - 0x20c]
push 0
push ecx
call fcn.004953b0
lea edx, [ebp - 0x240]
push edx
call fcn.00426ce0
mov ecx, dword [eax]
add esp, 0x10
mov esi, 0x104
lea eax, [ebp - 0x20c]
lea edx, [esi + 0x7ffffefa]
test edx, edx
je 0x486677
movzx edx, word [ecx]
test dx, dx
je 0x486677
mov word [eax], dx
add eax, 2
add ecx, 2
sub esi, edi
jne 0x486656
jmp 0x48667b
test esi, esi
jne 0x48667e
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4866a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.CrashReport.dll
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x20c]
push edx
call fcn.00409a70
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 4
test eax, eax
je 0x4866ef
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x4866ef
push str.Initialize
push eax
call edi
test eax, eax
je 0x4866ef
call eax
push str.LocalQ360TraceClean
lea ecx, [ebp - 0x23c]
call int.00408bf0
mov esi, dword [ebp - 0x230]
cmp esi, 5
jne 0x486744
push 0x1b
push str.LocalQ360TraceCleanMainWnd
lea ecx, [ebp - 0x23c]
call fcn.00408770
push 0x208
push 0
push str.Q360TraceClean
call fcn.004953b0
push str.Q360TraceCleanMainWnd
push 0x104
push str.Q360TraceClean
call fcn.00498af3
add esp, 0x18
mov ecx, dword [ebp - 0x23c]
push 0
push ecx
call fcn.00485b80
mov ecx, eax
call fcn.00484df0
test eax, eax
je 0x486832
cmp esi, 3
je 0x48680a
cmp esi, 4
je 0x48680a
cmp esi, 5
je 0x48680a
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x248], esp
push 0x4cb94c
call fcn.00416f70
lea ecx, [ebp - 0x22c]
call fcn.004702a0
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4867a3
sub eax, edx
sar eax, 1
push 0x20160923
lea edx, [eax + eax + 2]
push edx
push ebx
push 1
lea ecx, [ebp - 0x124c]
call fcn.0047c200
push eax
lea ecx, [ebp - 0x22c]
call fcn.0047c1c0
lea ecx, [ebp - 0x22c]
test eax, eax
je 0x486805
call fcn.0045eba0
lea ecx, [ebp - 0x23c]
call fcn.00407680
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004951ca
mov esp, ebp
pop ebp
ret 0x10
call fcn.0045eba0
push 0x4d1208
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x486827
push str.OnExiting
push eax
call edi
test eax, eax
je 0x486827
call eax
mov eax, dword [ebp - 0x23c]
jmp 0x4864ea
mov ecx, 0x4f67f0
call fcn.0042ad00
push 0x4f67f0
lea ecx, [ebp - 0x238]
call int.00408bf0
lea ecx, [ebp - 0x238]
push ecx
call fcn.00410de0
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x48687d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f67f0
lea ecx, [ebp - 0x238]
call int.00408bf0
lea ecx, [ebp - 0x238]
push ecx
call fcn.00410e10
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4868be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea ecx, [ebp - 0x244]
push ecx
mov dword [ebp - 0x244], 8
mov dword [ebp - 0x240], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov edx, dword [ebp - 0x248]
push 0
push edx
push 0
mov ecx, 0x4f772c
call fcn.0047c610
call fcn.00485570
push 0
push 0
push 1
mov ecx, 0x4f73ec
call fcn.00424c90
test eax, eax
je 0x4869b7
mov eax, dword [ebp + 0x14]
push eax
push ebx
call fcn.00484aa0
add esp, 8
push 0x7d0
mov ecx, 0x4f7650
mov esi, eax
call fcn.0047c8e0
mov ecx, 0x4f772c
call fcn.0047eae0
call dword [sym.imp.ole32.dll_OleUninitialize]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x4d1208
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x486980
push str.OnExiting
push eax
call edi
test eax, eax
je 0x486980
call eax
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4869a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004951ca
mov esp, ebp
pop ebp
ret 0x10
push 0x4d1208
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x4869d4
push str.OnExiting
push eax
call edi
test eax, eax
je 0x4869d4
call eax
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4869f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
or eax, 0xffffffff
pop ebx
call fcn.004951ca
mov esp, ebp
pop ebp
ret 0x10