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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43c10d
mov eax, dword fs:[0]
push eax
mov eax, 0x1684
call fcn.0042b9a0
mov eax, dword [0x4516e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
xor eax, eax
xor esi, esi
push 0x206
mov word [ebp - 0x1460], ax
lea eax, [ebp - 0x145e]
push esi
push eax
call fcn.00422860
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x1460]
add esp, 0xc
push esi
push 0x17
push eax
push esi
call edi
test eax, eax
je 0x40f4a6
lea eax, [ebp - 0x1688]
push eax
call fcn.0040a7d7
mov ecx, eax
call fcn.00413c88
mov dword [ebp - 4], esi
push dword [eax]
lea eax, [ebp - 0x1460]
push 0x4497dc
push eax
lea eax, [ebx + 0xc]
push str._s_s_s
push eax
call fcn.0040a280
or dword [ebp - 4], 0xffffffff
add esp, 0x14
mov ecx, dword [ebp - 0x1688]
lea ecx, [ecx - 0x10]
call fcn.0040233b
xor eax, eax
push 0x206
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x628]
push esi
push 2
push eax
push esi
call edi
test eax, eax
je 0x40f568
lea eax, [ebp - 0x1688]
push eax
call fcn.0040a7d7
mov ecx, eax
call fcn.00413c88
mov dword [ebp - 4], 1
push dword [eax]
lea eax, [ebp - 0x628]
push 0x4497dc
push eax
lea eax, [ebx + 0x10]
push str._s_s_s
push eax
call fcn.0040a280
or dword [ebp - 4], 0xffffffff
add esp, 0x14
mov ecx, dword [ebp - 0x1688]
lea ecx, [ecx - 0x10]
call fcn.0040233b
push str.360
push 0x4497dc
lea eax, [ebp - 0x628]
push eax
lea eax, [ebx + 0x14]
push str._s_s_s
push eax
call fcn.0040a280
add esp, 0x14
lea eax, [ebp - 0x628]
push 0x4499f0
push 0x4497dc
push eax
lea eax, [ebx + 0x18]
push str._s_s_s
push eax
call fcn.0040a280
add esp, 0x14
xor eax, eax
push 0x206
mov word [ebp - 0x830], ax
lea eax, [ebp - 0x82e]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x830]
push esi
push 0x16
push eax
push esi
call edi
test eax, eax
je 0x40f5b4
lea ecx, [ebp - 0x830]
call fcn.004080cc
push eax
lea eax, [ebp - 0x830]
push eax
lea ecx, [ebx + 0x1c]
call fcn.00408040
xor esi, esi
xor eax, eax
push 0x206
mov word [ebp - 0xa38], ax
lea eax, [ebp - 0xa36]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0xa38]
push esi
push 0xb
push eax
push esi
call edi
test eax, eax
je 0x40f600
lea ecx, [ebp - 0xa38]
call fcn.004080cc
push eax
lea eax, [ebp - 0xa38]
push eax
lea ecx, [ebx + 0x20]
call fcn.00408040
xor esi, esi
xor eax, eax
push 0x206
mov word [ebp - 0xc40], ax
lea eax, [ebp - 0xc3e]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0xc40]
push esi
push 0x19
push eax
push esi
call edi
test eax, eax
je 0x40f64c
lea ecx, [ebp - 0xc40]
call fcn.004080cc
push eax
lea eax, [ebp - 0xc40]
push eax
lea ecx, [ebx + 0x24]
call fcn.00408040
xor esi, esi
xor eax, eax
push 0x206
mov word [ebp - 0xe48], ax
lea eax, [ebp - 0xe46]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0xe48]
push 1
push 0x10
push eax
push esi
call edi
test eax, eax
je 0x40f699
lea ecx, [ebp - 0xe48]
call fcn.004080cc
push eax
lea eax, [ebp - 0xe48]
push eax
lea ecx, [ebx + 0x28]
call fcn.00408040
xor esi, esi
xor eax, eax
push 0x206
mov word [ebp - 0x1258], ax
lea eax, [ebp - 0x1256]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x1258]
push esi
push 0x1a
push eax
push esi
call edi
test eax, eax
je 0x40f6e5
push str.MicrosoftInternet_ExplorerQuick_Launch
lea eax, [ebp - 0x1258]
push eax
lea eax, [ebx + 0x2c]
push 0x448dec
push eax
call fcn.0040a280
add esp, 0x10
xor eax, eax
push 0x206
mov word [ebp - 0x1050], ax
lea eax, [ebp - 0x104e]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x1050]
push esi
push 6
push eax
push esi
call edi
test eax, eax
je 0x40f731
lea ecx, [ebp - 0x1050]
call fcn.004080cc
push eax
lea eax, [ebp - 0x1050]
push eax
lea ecx, [ebx + 0x30]
call fcn.00408040
xor esi, esi
xor eax, eax
push 0x206
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x420]
push esi
push 0x1a
push eax
push esi
call edi
test eax, eax
je 0x40f778
lea eax, [ebp - 0x420]
push eax
lea eax, [ebx + 8]
push 0x448d64
push eax
call fcn.0040a280
add esp, 0xc
mov dword [ebx + 0x14ac], esi
call fcn.004083ea
push eax
lea ecx, [ebp - 0x1688]
call fcn.00407e3b
xor eax, eax
mov dword [ebp - 4], 2
mov edi, 0x206
mov word [ebp - 0x218], ax
push edi
lea eax, [ebp - 0x216]
push esi
push eax
call fcn.00422860
add esp, 0xc
mov dword [ebp - 0x1684], esi
lea eax, [ebp - 0x1684]
push eax
push ecx
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.0040ee6e
mov ecx, dword [ebp - 0x1684]
mov dword [0x45f4b0], ecx
test eax, eax
je 0x40fb5e
cmp dword [ebx + 4], 6
jle 0x40f838
xor eax, eax
push edi
mov word [ebp - 0x1668], ax
lea eax, [ebp - 0x1666]
push esi
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
push 0x448d64
lea eax, [ebp - 0x1668]
push 0x103
push eax
call fcn.00420412
add esp, 0x10
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0040effc
test eax, eax
je 0x40fb5e
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x168c]
call fcn.0041b4f0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x168c]
cmp dword [eax - 0xc], 0
je 0x40f96a
mov edx, dword [0x4612f0]
cmp dword [edx - 0xc], 0
jne 0x40f93a
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x1684]
call fcn.00407cf7
mov byte [ebp - 4], 4
lea eax, [ebp - 0x218]
push dword [ebp - 0x168c]
push eax
lea eax, [ebp - 0x1684]
push str._s.._s360360Base.dll
push eax
call fcn.0040a280
add esp, 0x10
push dword [ebp - 0x1684]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40f8fb
mov edx, dword [ebp - 0x1684]
lea ecx, [ebp - 0x1690]
call fcn.0041ce30
push eax
mov ecx, 0x4612f0
mov byte [ebp - 4], 5
call fcn.00409de8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x1690]
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov eax, dword [0x4612f0]
cmp dword [eax - 0xc], 0
jne 0x40f922
jmp 0x40f91c
push dword [ebp - 0x168c]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1684]
push str._s_s360360Base.dll
push eax
call fcn.0040a280
add esp, 0x10
inc esi
cmp esi, 2
jl 0x40f8ac
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1684]
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov edx, dword [0x4612f0]
cmp dword [0x45f4a0], 0
jne 0x40f96a
mov ecx, str.click_typeextgame_exeFcalled
call fcn.00414efb
mov eax, dword [0x4612f0]
mov ecx, dword [0x45f4a0]
push 1
pop esi
cmp dword [eax - 0xc], 0
cmovne ecx, esi
mov dword [0x45f4a0], ecx
jmp 0x40f96d
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x168c]
mov edx, 0x448fc0
call fcn.0041a080
test eax, eax
jns 0x40f989
mov dword [ebx + 0x14ac], esi
jmp 0x40f9dd
jne 0x40f9ca
cmp dword [0x4525f8], 0
mov dword [ebx + 0x14ac], 2
je 0x40f9dd
cmp dword [0x45f498], 0
jne 0x40f9dd
mov ecx, dword [ebp - 0x168c]
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov ecx, dword [ebp - 0x1688]
lea ecx, [ecx - 0x10]
call fcn.0040233b
xor eax, eax
jmp 0x40fca4
cmp dword [0x4525f8], 0
mov dword [ebx + 0x14ac], 3
jne 0x40f9a7
mov ecx, dword [ebp - 0x168c]
call fcn.0041317e
test eax, eax
je 0x40f9a7
mov eax, dword [ebp - 0x168c]
cmp dword [eax - 0xc], 0
je 0x40fa4f
mov esi, 0x448fb8
push esi
call fcn.00404831
pop ecx
push eax
push esi
push dword [0x45c620]
push ecx
mov ecx, 0x45c610
call fcn.004093ab
test eax, eax
je 0x40fa4f
mov ecx, dword [ebp - 0x168c]
mov edx, str.8.0.0.1001
call fcn.0041a080
test eax, eax
js 0x40fa4f
cmp dword [0x45f498], 0
je 0x40f9a7
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.0040ff47
jmp 0x40f9a7
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x1684]
call fcn.00407cf7
push 0x449260
lea ecx, [ebp - 0x1684]
mov byte [ebp - 4], 6
call fcn.00407dac
test eax, eax
je 0x40fb1c
lea ecx, [ebp - 0x218]
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x40fa9c
mov esi, dword [ebp - 0x1684]
sub ecx, edx
sar ecx, 1
lea edx, [ecx - 1]
jmp 0x40facd
cmp edx, 0x104
jae 0x40fb59
xor eax, eax
mov word [ebp + edx*2 - 0x218], ax
dec edx
mov eax, ecx
sub eax, dword [esi - 0xc]
dec eax
cmp edx, eax
jg 0x40fab6
lea ecx, [ebp - 0x218]
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x40fae2
sub ecx, edx
sar ecx, 1
movzx eax, word [ebp + ecx*2 - 0x21a]
cmp eax, 0x5c
je 0x40fb03
cmp eax, 0x2f
jne 0x40fb1c
lea ecx, [ecx*2 - 2]
cmp ecx, 0x208
jae 0x40fb59
xor eax, eax
mov word [ebp + ecx - 0x218], ax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1688]
push 0x448d64
push eax
call fcn.0040a280
mov ecx, dword [ebp - 0x1684]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x168c]
lea ecx, [ecx - 0x10]
call fcn.0040233b
jmp 0x40fb88
call fcn.0041fe8b
cmp dword [ebx + 0x14b0], esi
jne 0x40fb6c
mov dword [ebx + 0x14ac], esi
push str.360Game5_bin
push dword [ebx + 8]
lea eax, [ebp - 0x1688]
push 0x448dec
push eax
call fcn.0040a280
add esp, 0x10
call fcn.0040ec99
mov eax, dword [0x4612e8]
lea esi, [ebx + 0x48]
mov ecx, esi
cmp dword [eax - 0xc], 0
jne 0x40fbb1
lea eax, [ebp - 0x1688]
push eax
call fcn.00409de8
push esi
mov ecx, 0x4612e8
jmp 0x40fbb6
push 0x4612e8
call fcn.00409de8
lea edi, [ebx + 0x40]
push esi
mov ecx, edi
call fcn.00409de8
push 0x448fc0
push dword [esi]
mov esi, 0x448dec
lea eax, [ebx + 0x44]
push esi
push eax
call fcn.0040a280
push 0x4498d0
push dword [ebx + 8]
lea eax, [ebx + 0x38]
push esi
push eax
call fcn.0040a280
add esp, 0x20
lea ecx, [ebp - 0x1680]
push 0x447994
call fcn.00404345
lea eax, [ebp - 0x1680]
mov byte [ebp - 4], 7
push eax
call fcn.00408c1d
mov ecx, eax
call fcn.00408cdb
push edi
lea edi, [ebx + 0x14b8]
movzx esi, al
lea ecx, [edi + 0x18]
call fcn.00409de8
lea eax, [ebp - 0x1684]
mov dword [edi + 0x1c], esi
push eax
call fcn.00409cdb
push dword [ebp - 0x1684]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40fc55
push dword [ebp - 0x1684]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x1684]
lea ecx, [ecx - 0x10]
call fcn.0040233b
xor eax, eax
mov byte [ebp - 4], 2
xor esi, esi
lea ecx, [ebp - 0x1680]
push esi
inc eax
push eax
call fcn.0040439c
cmp dword [ebx + 0x14d4], esi
je 0x40fc93
mov ecx, edi
call fcn.00409b21
mov ecx, edi
test eax, eax
je 0x40fcc0
call fcn.00409814
mov ecx, dword [ebp - 0x1688]
add ecx, 0xfffffff0
call fcn.0040233b
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041e635
mov esp, ebp
pop ebp
ret
call fcn.00409bf3
push esi
mov ecx, ebx
call fcn.0040ff47
jmp 0x40f9b5