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

Disassembly:
sub esp, 0xc48
mov eax, dword [0x4c13e0]
xor eax, esp
mov dword [esp + 0xc40], eax
push esi
push 0x824
lea eax, [esp + 0x10]
push 0
push eax
call fcn.0047c020
add esp, 0xc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0xa42]
push edx
mov dword [esp + 0x14], 0x828
mov word [esp + 0xa44], cx
call fcn.0047c020
add esp, 0xc
push 0x4a7458
push 0x4c94f0
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
lea eax, [esp + 0xa38]
je 0x4069b0
mov esi, 0x4c94f0
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ebx, [ebx]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x406970
movzx ecx, word [esi + eax]
test cx, cx
je 0x406970
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x406950
jmp 0x406974
test edx, edx
jne 0x406977
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0xc]
mov esi, str.360TS
mov ecx, eax
mov edx, 0x100
sub esi, ecx
mov edi, edi
lea ecx, [edx + 0x7ffffefe]
test ecx, ecx
je 0x4069df
movzx ecx, word [esi + eax]
test cx, cx
je 0x4069df
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x406990
jmp 0x4069e3
mov ecx, dword [0x4c7764]
push 0x104
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x40697c
xor eax, eax
pop esi
mov ecx, dword [esp + 0xc40]
xor ecx, esp
call fcn.00476dfd
add esp, 0xc48
ret
test edx, edx
jne 0x4069e6
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0xa38]
test eax, eax
je 0x406a5f
push str.....360verify.dll
mov ecx, eax
push ecx
lea edx, [esp + 0x61c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x4069c7
lea eax, [esp + 0xa38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
lea eax, [esp + 0x20c]
mov esi, 0x4a73d0
mov ecx, eax
mov edx, 0x100
sub esi, ecx
lea ecx, [edx + 0x7ffffefe]
test ecx, ecx
je 0x406a53
movzx ecx, word [esi + eax]
test cx, cx
je 0x406a53
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x406a33
jmp 0x406a57
test edx, edx
jne 0x406a5a
sub eax, 2
xor edx, edx
mov word [eax], dx
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x83a]
push ecx
mov word [esp + 0x83c], ax
call fcn.0047c020
add esp, 0xc
lea edx, [esp + 0x830]
push edx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
lea eax, [esp + 0x830]
jl 0x406ba0
mov ecx, 0x104
lea esp, [esp]
cmp word [eax], 0
je 0x406ac0
add eax, 2
sub ecx, 1
jne 0x406ab0
jmp 0x406ae3
test ecx, ecx
je 0x406ae3
mov eax, 0x104
sub eax, ecx
mov ecx, 0x104
sub ecx, eax
lea edx, [esp + eax*2 + 0x830]
mov eax, str.360safe
call fcn.004082e0
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x830]
push eax
call esi
test eax, eax
jne 0x406b07
lea ecx, [esp + 0x830]
push ecx
call fcn.00477732
add esp, 4
mov ecx, 0x104
lea eax, [esp + 0x830]
cmp word [eax], 0
je 0x406b23
add eax, 2
sub ecx, 1
jne 0x406b13
jmp 0x406b46
test ecx, ecx
je 0x406b46
mov eax, 0x104
sub eax, ecx
mov ecx, 0x104
sub ecx, eax
lea edx, [esp + eax*2 + 0x830]
mov eax, str.LogInfo
call fcn.004082e0
lea edx, [esp + 0x830]
push edx
call esi
test eax, eax
jne 0x406b64
lea eax, [esp + 0x830]
push eax
call fcn.00477732
add esp, 4
lea eax, [esp + 0x40c]
lea esi, [esp + 0x830]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
jmp 0x406b80
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x406bf0
movzx ecx, word [esi + eax]
test cx, cx
je 0x406bf0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x406b80
jmp 0x406bf4
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x4069c7
lea eax, [esp + 0x40c]
lea esi, [esp + 0x830]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
jmp 0x406bd0
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x406bf0
movzx ecx, word [esi + eax]
test cx, cx
je 0x406bf0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x406bd0
jmp 0x406bf4
test edx, edx
jne 0x406bf7
sub eax, 2
xor edx, edx
mov word [eax], dx
lea edx, [esp + 8]
mov ecx, 0x4c944c
call fcn.00408a30
mov ecx, dword [esp + 0xc44]
pop esi
xor ecx, esp
mov eax, 1
call fcn.00476dfd
add esp, 0xc48
ret