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

Disassembly:
push 0x43c
mov eax, 0x43c2d3
call fcn.00423093
mov ebx, ecx
cmp dword [0x45c648], 0
jne 0x410475
xor eax, eax
jmp 0x41075d
push ecx
push ecx
lea eax, [ebp - 0x444]
xor edi, edi
push eax
call fcn.00410b95
and dword [ebp - 4], edi
mov esi, dword [ebp - 0x444]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4104a1
push 2
pop ebx
jmp 0x410753
push 0x449914
push dword [ebx + 0x40]
lea eax, [ebx + 0x3c]
push 0x448dec
push eax
call fcn.0040a280
mov ecx, dword [ebx + 0x44]
add esp, 0x10
call fcn.0041107f
mov ecx, dword [ebx + 0x44]
call fcn.004100fc
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x430], ax
lea eax, [ebp - 0x42e]
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x430]
push dword [ebx + 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x449d3c
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
inc ecx
test eax, eax
je 0x410746
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x220], ax
lea eax, [ebp - 0x21e]
push eax
call fcn.00422860
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call fcn.004083ea
push eax
lea ecx, [ebp - 0x440]
call fcn.00407e3b
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [ebp - 0x440]
push str.360gameinst__d_
push eax
call fcn.0040a280
mov edi, dword [ebp - 0x440]
lea eax, [ebp - 0x220]
add esp, 0xc
push edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x220]
call fcn.0041ae20
call fcn.004083ea
push eax
lea ecx, [ebp - 0x434]
call fcn.00407e3b
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 2
push eax
push esi
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x434]
push str.__s__x___s___o__s___aoa
push eax
call fcn.0040a280
add esp, 0x14
lea ecx, [ebp - 0x434]
xor edx, edx
push 0x493e0
call fcn.0040dfd1
mov edx, dword [0x4612f0]
pop ecx
cmp dword [edx - 0xc], 0
jne 0x41066f
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x438]
call fcn.00407cf7
mov ecx, str.360360Base.dll
mov byte [ebp - 4], 3
call fcn.004080cc
push eax
push str.360360Base.dll
lea ecx, [ebp - 0x438]
call fcn.00407faf
mov edx, dword [ebp - 0x438]
lea ecx, [ebp - 0x43c]
call fcn.0041ce30
push eax
mov ecx, 0x4612f0
mov byte [ebp - 4], 4
call fcn.00409de8
mov ecx, dword [ebp - 0x43c]
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x438]
lea ecx, [ecx - 0x10]
call fcn.0040233b
mov edx, dword [0x4612f0]
cmp dword [0x45f4a0], 0
jne 0x41069d
mov ecx, str.click_typeextgame_exeFcalled
call fcn.00414efb
mov eax, dword [0x4612f0]
mov ecx, dword [0x45f4a0]
push 1
cmp dword [eax - 0xc], 0
pop eax
cmovne ecx, eax
mov dword [0x45f4a0], ecx
cmp dword [0x45f4a8], 0
jne 0x4106ef
cmp dword [0x45f4ac], 0
jne 0x4106ef
cmp dword [ebx + 0x14ac], 0
je 0x4106ef
call fcn.00412c8d
test eax, eax
jne 0x4106ef
lea ecx, [ebp - 0x220]
call fcn.0041ac60
mov ecx, dword [ebx + 0x44]
call fcn.0041ac60
mov ecx, dword [ebp - 0x434]
lea ecx, [ecx - 0x10]
call fcn.0040233b
lea ecx, [edi - 0x10]
call fcn.0040233b
or ebx, 0xffffffff
jmp 0x410753
mov edx, dword [ebx + 0x44]
lea ecx, [ebp - 0x220]
call fcn.0041a400
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x41070f
mov ecx, dword [ebx + 0x44]
call fcn.0041ac60
lea ecx, [ebp - 0x220]
call fcn.0041ac60
mov ecx, dword [ebp - 0x434]
lea ecx, [ecx - 0x10]
call fcn.0040233b
lea ecx, [edi - 0x10]
call fcn.0040233b
mov edi, dword [ebp - 0x43c]
test edi, edi
je 0x410743
and dword [0x45c648], 0
jmp 0x41074c
xor ecx, ecx
inc ecx
mov dword [0x45c648], ecx
xor ebx, ebx
test edi, edi
sete bl
lea ecx, [esi - 0x10]
call fcn.0040233b
mov eax, ebx
call fcn.00423042
ret