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

Disassembly:
push 0x60c
mov eax, 0x4b8352
call fcn.0048ff65
mov ebx, ecx
mov dword [ebp - 0x5e8], ebx
xor eax, eax
mov edi, 0x208
push edi
mov word [ebp - 0x430], ax
xor esi, esi
lea eax, [ebp - 0x42e]
push esi
push eax
call fcn.004921d0
add esp, 0xc
lea eax, [ebp - 0x430]
push esi
push 0x1c
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.0040513a
mov dword [ebp - 4], esi
mov esi, 0x4d42c0
push esi
call fcn.00405113
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4d8]
call fcn.004046dd
push str.Local_State
lea eax, [ebp - 0x4d8]
push eax
lea eax, [ebp - 0x4c0]
push eax
call fcn.0040954d
add esp, 0xc
xor eax, eax
push edi
mov byte [ebp - 4], 1
mov word [ebp - 0x220], ax
xor edi, edi
lea eax, [ebp - 0x21e]
push edi
push eax
call fcn.004921d0
mov eax, dword [ebx + 0x28]
add eax, 8
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x407c0e
mov eax, dword [eax]
push 0x104
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00495430
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x4a8]
call fcn.0040513a
mov esi, 0x4d3c88
push esi
mov byte [ebp - 4], 2
call fcn.00405113
pop ecx
push eax
push esi
push dword [ebp - 0x498]
lea ecx, [ebp - 0x4a8]
push edi
call fcn.004096a9
test eax, eax
jne 0x407c8e
push edi
push 1
lea ecx, [ebp - 0x4a8]
call fcn.00405ac5
push edi
push 1
lea ecx, [ebp - 0x4c0]
call fcn.00405ac5
push edi
push 1
jmp 0x408290
mov esi, 0x4d3c8c
push esi
call fcn.00405113
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4a8]
call fcn.004046dd
cmp dword [ebp - 0x4ac], 8
lea eax, [ebp - 0x4c0]
cmovae eax, dword [ebp - 0x4c0]
push eax
lea eax, [ebp - 0x508]
push eax
call fcn.0040aa4c
mov byte [ebp - 4], 3
mov ecx, dword [ebx + 0x24]
push 0x18
pop eax
add ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x407cdc
mov ecx, dword [ecx]
cmp dword [ebp - 0x4f4], 8
push ecx
lea eax, [ebp - 0x508]
cmovae eax, dword [ebp - 0x508]
push eax
push str.chrome_flags
push str.MoreInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov esi, 0x4d3c88
push esi
lea ecx, [ebp - 0x538]
mov dword [ebp - 0x618], str.liebao.exe
mov dword [ebp - 0x614], str.chrome.dll
mov dword [ebp - 0x610], str.MouseGesture.dll
mov dword [ebp - 0x60c], str.Module_securityknbpolicy.dll
mov dword [ebp - 0x608], str.Module_securitykadfilter.dll
mov dword [ebp - 0x604], str.Module_securitykaxhlp.dll
mov dword [ebp - 0x600], str.knbcenter.exe
mov dword [ebp - 0x5fc], str.Module_securityknbctrl.dll
mov dword [ebp - 0x5f8], str.kBrowserUpgrade2.dll
mov dword [ebp - 0x5f4], str.uplive.dll
call fcn.0040513a
push esi
lea ecx, [ebp - 0x520]
mov byte [ebp - 4], 4
call fcn.0040513a
mov byte [ebp - 4], 5
mov esi, edi
push dword [ebp + esi*4 - 0x618]
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x448]
push eax
call fcn.0040954d
add esp, 0xc
cmp dword [ebp - 0x434], 8
lea edi, [ebp - 0x448]
cmovae edi, dword [ebp - 0x448]
xor eax, eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x490], 0x4d42b8
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x464], eax
push edi
mov byte [ebp - 4], 7
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x407e4f
test al, 0x10
jne 0x407e4f
push ecx
push edi
lea ecx, [ebp - 0x490]
call fcn.0041c3d8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x490]
mov dword [ebp - method.WinMod::CWinModule.virtual_0], vtable.WinMod::CWinModule.0
test eax, eax
jne 0x407e63
call fcn.00405bac
xor edi, edi
inc edi
jmp 0x407eaf
mov byte [ebp - 4], 6
mov dword [ebp - method.WinMod::CWinModule.virtual_0], vtable.WinMod::CWinModule.0
lea ecx, [ebp - 0x490]
call fcn.00405bac
xor edi, edi
test esi, esi
je 0x407e73
cmp esi, 1
jne 0x407eaf
push dword [ebp + esi*4 - 0x618]
call fcn.00405113
pop ecx
push eax
push dword [ebp + esi*4 - 0x618]
lea ecx, [ebp - 0x538]
call fcn.004046dd
push 0x4d44cc
call fcn.00405113
pop ecx
push eax
push 0x4d44cc
lea ecx, [ebp - 0x538]
call fcn.004046dd
mov ecx, str.unsigned__
mov eax, 0x4d44d0
cmp edi, 1
cmovne eax, ecx
push eax
lea ecx, [ebp - 0x4f0]
call fcn.0040513a
mov byte [ebp - 4], 8
cmp dword [ebp - 0x434], 8
lea eax, [ebp - 0x448]
cmovae eax, dword [ebp - 0x448]
push eax
lea eax, [ebp - 0x478]
push eax
call fcn.0040a96a
push 0xffffffffffffffff
xor edi, edi
push edi
push eax
lea ecx, [ebp - 0x4f0]
mov byte [ebp - 4], 9
call fcn.0040483a
push edi
push 1
lea ecx, [ebp - 0x478]
call fcn.00405ac5
mov ecx, dword [ebx + 0x24]
push 0x18
pop eax
add ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x407f23
mov ecx, dword [ecx]
cmp dword [ebp - 0x4dc], 8
push ecx
lea eax, [ebp - 0x4f0]
cmovae eax, dword [ebp - 0x4f0]
push eax
push dword [ebp + esi*4 - 0x618]
push str.ModuleVersion
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push edi
push 1
lea ecx, [ebp - 0x4f0]
call fcn.00405ac5
push edi
push 1
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 5
call fcn.00405ac5
inc esi
cmp esi, 0xa
jb 0x407d8d
mov dword [ebp - 0x43c], edi
mov dword [ebp - 0x438], edi
mov dword [ebp - 0x434], edi
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x494], 8
lea ecx, [ebp - 0x43c]
lea eax, [ebp - 0x4a8]
cmovae eax, dword [ebp - 0x4a8]
push ecx
push eax
call fcn.0040aefb
mov eax, dword [ebp - 0x438]
mov esi, dword [ebp - 0x43c]
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
mov edi, eax
test edi, edi
je 0x408002
push ecx
pop ebx
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x520]
call fcn.0040483a
push 0x4d44cc
call fcn.00405113
pop ecx
push eax
push 0x4d44cc
lea ecx, [ebp - 0x520]
call fcn.004046dd
add esi, ebx
dec edi
jne 0x407fc8
mov ebx, dword [ebp - 0x5e8]
push 0x18
pop ecx
mov eax, dword [ebx + 0x24]
add eax, ecx
cmp dword [eax + 0x14], 8
jb 0x40800f
mov eax, dword [eax]
push eax
mov eax, dword [ebx + 0x28]
mov ebx, 0x4d44fc
cmp dword [eax + 0xe4], 1
mov edx, 0x4d4500
mov ecx, ebx
cmovne ecx, edx
push ecx
push 0x4d4504
push str.MoreInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x5e0]
call fcn.004078de
mov byte [ebp - 4], 0xb
xor eax, eax
push 0xffffffffffffffff
xor edi, edi
mov word [ebp - 0x460], ax
push edi
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x460]
mov dword [ebp - 0x44c], 7
mov dword [ebp - 0x450], edi
call fcn.00405a06
mov byte [ebp - 4], 0xc
mov eax, dword [0x4f0fe4]
test al, 1
jne 0x4080bd
or eax, 1
mov dword [0x4f0fe4], eax
mov dword [0x4f0fe8], edi
mov dword [0x4f0fec], edi
mov dword [0x4f0ff0], edi
push 0x4f0fe8
mov byte [ebp - 4], 0xe
call fcn.0041bc61
push 0x4bb155
call fcn.0048f202
pop ecx
mov byte [ebp - 4], 0xc
mov esi, dword [0x4f0fe8]
mov eax, dword [0x4f0fec]
cmp esi, eax
je 0x40815d
sub eax, esi
cdq
mov dword [ebp - 0x5e4], 0xa8
idiv dword [ebp - 0x5e4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5f0], xmm0
mov ecx, edi
mov dword [ebp - 0x5e4], eax
test eax, eax
je 0x408130
mov eax, dword [ebp - 0x5f0]
lea edx, [esi + 0x28]
mov esi, dword [ebp - 0x5ec]
cmp dword [edx + 4], esi
jl 0x40811b
jg 0x408114
cmp dword [edx], eax
jbe 0x40811b
mov eax, dword [edx]
mov esi, dword [edx + 4]
mov ecx, edi
inc edi
add edx, 0xa8
cmp edi, dword [ebp - 0x5e4]
jb 0x408109
mov esi, dword [0x4f0fe8]
imul ecx, ecx, 0xa8
add ecx, esi
push ecx
lea ecx, [ebp - 0x5e0]
call fcn.0041b7f8
xor edi, edi
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x598]
push eax
lea ecx, [ebp - 0x460]
call fcn.0040483a
jmp 0x408176
mov esi, str.Default
push esi
call fcn.00405113
pop ecx
push eax
push esi
lea ecx, [ebp - 0x460]
call fcn.004046dd
mov esi, str.Preferences
push esi
call fcn.00405113
pop ecx
push eax
push esi
lea ecx, [ebp - 0x460]
call fcn.004046dd
mov esi, dword [ebp - 0x5e8]
push 0x18
mov ecx, dword [esi + 0x24]
pop eax
add ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x4081a5
mov ecx, dword [ecx]
cmp dword [ebp - 0x44c], 8
push ecx
lea eax, [ebp - 0x460]
cmovae eax, dword [ebp - 0x460]
push ecx
push eax
call fcn.0040ac5a
pop ecx
test eax, eax
mov eax, 0x4d4500
mov ecx, ebx
cmove ecx, eax
push ecx
push 0x4d4550
push str.MoreInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [esi + 0x24]
push 0x18
pop eax
add ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x4081ef
mov ecx, dword [ecx]
cmp dword [ebp - 0x4ac], 8
push ecx
lea eax, [ebp - 0x4c0]
cmovae eax, dword [ebp - 0x4c0]
push ecx
push eax
call fcn.0040ae36
test eax, eax
pop ecx
mov eax, 0x4d4500
cmove ebx, eax
push ebx
push str.selfprotect
push str.MoreInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor ebx, ebx
push edi
inc ebx
push ebx
lea ecx, [ebp - 0x460]
call fcn.00405ac5
lea ecx, [ebp - 0x5e0]
call fcn.0041b7ac
lea ecx, [ebp - 0x43c]
call fcn.004046b7
push edi
push ebx
lea ecx, [ebp - 0x520]
call fcn.00405ac5
push edi
push ebx
lea ecx, [ebp - 0x538]
call fcn.00405ac5
push edi
push ebx
lea ecx, [ebp - 0x508]
call fcn.00405ac5
push edi
push ebx
lea ecx, [ebp - 0x4a8]
call fcn.00405ac5
push edi
push ebx
lea ecx, [ebp - 0x4c0]
call fcn.00405ac5
push edi
push ebx
lea ecx, [ebp - 0x4d8]
call fcn.00405ac5
call fcn.0048ff14
ret