Function at 0x402d29
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d6a51
mov eax, dword fs:[0]
push eax
sub esp, 0x840
mov eax, dword [0x63ae80]
xor eax, esp
mov dword [esp + 0x838], eax
push ebx
push esi
push edi
mov eax, dword [0x63ae80]
xor eax, esp
push eax
lea eax, [esp + 0x850]
mov dword fs:[0], eax
push str.UIThread
mov dword [esp + 0x18], ecx
call fcn.00472ae0
pop ecx
call fcn.004064fb
movzx eax, byte [eax]
push eax
call fcn.00472510
pop ecx
test al, al
jne 0x402dd4
call fcn.004064fb
push eax
lea eax, [esp + 0x3c8]
push 0x60c3d4
push eax
call fcn.00402654
lea eax, [esp + 0x3d0]
add esp, 0xc
mov byte [esp + 0x3c4], 0x43
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402db8
sub eax, edx
push eax
lea eax, [esp + 0x3c8]
push eax
mov ecx, 0x63cb40
call fcn.0040232c
call fcn.004064fb
push eax
push str._slauncher
mov esi, 0x100
lea eax, [esp + 0x54c]
push esi
push eax
call fcn.005a73a6
add esp, 0x10
xor edi, edi
lea eax, [esp + 0x544]
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], edi
mov byte [esp + 0xc8], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402e1b
sub eax, ecx
push eax
lea eax, [esp + 0x548]
push eax
lea ecx, [esp + 0xd0]
call fcn.0040232c
lea eax, [esp + 0xc8]
push eax
mov dword [esp + 0x85c], edi
call fcn.004732e0
pop ecx
mov bl, al
push edi
neg bl
sbb bl, bl
or dword [esp + 0x85c], 0xffffffff
push 1
lea ecx, [esp + 0xd0]
call fcn.0040228b
inc bl
jne 0x403471
push edi
call fcn.005a77c3
mov dword [esp + 0x20], eax
pop ecx
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x24], edx
call fcn.005a7a9c
pop ecx
push eax
push str._Y_m_d
lea eax, [esp + 0x4cc]
push 0x80
push eax
call fcn.005a8586
lea eax, [esp + 0x4d4]
add esp, 0x10
push eax
call fcn.004064fb
push eax
push str._slauncherlauncher__s.log
lea eax, [esp + 0x750]
push esi
push eax
call fcn.005a73a6
add esp, 0x14
lea eax, [esp + 0x744]
call fcn.00475010
mov dword [0x6470bc], eax
cmp eax, edi
je 0x403471
push 0x60c8b8
push 0x5e
push 2
push eax
mov ebx, str.CLauncherApp::InitInstance
mov edi, str.Launcher.cpp
call fcn.004750b0
add esp, 0x10
lea esi, [esp + 0xe4]
call fcn.00406571
mov dword [esp + 0x858], 1
cmp dword [eax + 0x14], 0x10
jb 0x402f20
mov eax, dword [eax]
push eax
push str._Version_s
push 0x5f
push 2
pop esi
push esi
push dword [0x6470bc]
call fcn.004750b0
or dword [esp + 0x86c], 0xffffffff
add esp, 0x14
push 0
push 1
lea ecx, [esp + 0xec]
call fcn.0040228b
push 0x100
lea eax, [esp + 0x648]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x402f87
push str.GetModuleFileName_Failed
push 0x64
push 4
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x10
jmp 0x403471
lea eax, [esp + 0x644]
push eax
push str._ProcessPath_s
push 0x67
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
push 0x60c8b8
push 0x68
push esi
push dword [0x6470bc]
call fcn.004750b0
call fcn.004064fb
push eax
push str._slauncherGameBridge.dll
lea eax, [esp + 0x2dc]
push 0x100
push eax
call fcn.005a73a6
add esp, 0x20
lea eax, [esp + 0x2c4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x2c4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4030e5
and dword [esp + 0xf4], 0
push 3
push 0x60c974
lea ecx, [esp + 0xec]
mov dword [esp + 0x100], 0xf
mov byte [esp + 0xec], 0
call fcn.0040232c
mov dword [esp + 0x858], esi
and dword [esp + 0xd8], 0
lea eax, [esp + 0x2c4]
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403057
sub eax, ecx
push eax
lea eax, [esp + 0x2c8]
push eax
lea ecx, [esp + 0xd0]
call fcn.0040232c
lea eax, [esp + 0xe4]
lea ecx, [esp + 0xc8]
call fcn.00473ba0
neg al
sbb al, al
push 0
inc al
push 1
lea ecx, [esp + 0xd0]
mov byte [esp + 0x1b], al
call fcn.0040228b
or dword [esp + 0x858], 0xffffffff
push 0
push 1
lea ecx, [esp + 0xec]
call fcn.0040228b
cmp byte [esp + 0x13], 0
je 0x4030e5
lea eax, [esp + 0x2c4]
push eax
push str.ExtraceResource_IDR_DLL_GAMEBRIDGE__failed__Path_s
push 0x72
push 5
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
jmp 0x403471
call fcn.00402bc9
test al, al
je 0x403471
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [esp + 0x14]
call fcn.004a6ff7
push 0
call fcn.004a7acc
pop ecx
push 0xc
call fcn.004a4d50
pop ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x858], 3
test eax, eax
je 0x403146
mov ecx, eax
call fcn.004a8287
mov dword [esp + 0x18], eax
jmp 0x40314b
and dword [esp + 0x18], 0
mov ecx, dword [esp + 0x14]
or dword [esp + 0x858], 0xffffffff
push 0x60c9bc
call fcn.004a8416
push 3
call fcn.00475400
pop ecx
test eax, eax
jne 0x403188
push str.curl_global_init_Success
push 0x8d
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x10
jmp 0x4031a3
push eax
push str.curl_global_init_Failed_error_d
push 0x91
push 5
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
push 4
call fcn.004a4d50
pop ecx
test eax, eax
je 0x4031b4
and dword [eax], 0
jmp 0x4031b6
xor eax, eax
mov ecx, dword [esp + 0x14]
push str.Create_UpdateManager
push 0x95
push esi
push dword [0x6470bc]
mov dword [ecx + 0xb8], eax
call fcn.004750b0
push str.____________________________________________________________________
push 0x96
push esi
push dword [0x6470bc]
call fcn.004750b0
push 0x64d400
push str.Game:_s
push 0x97
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x34
push dword [section..ctrl]
push str.Channel:_d
push 0x98
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
lea eax, [esp + 0x2c]
push eax
call fcn.0040380f
mov dword [esp + 0x858], 4
test byte [0x64d100], 1
je 0x403258
lea eax, [esp + 0x2c]
push str._FUNC_WEBUI
push eax
call fcn.0040448e
pop ecx
pop ecx
mov eax, dword [0x64d100]
shr eax, 1
test al, 1
je 0x403274
lea eax, [esp + 0x2c]
push str._FUNC_BASE
push eax
call fcn.0040448e
pop ecx
pop ecx
mov eax, dword [0x64d100]
shr eax, 2
test al, 1
je 0x403291
lea eax, [esp + 0x2c]
push str._FUNC_PATCH
push eax
call fcn.0040448e
pop ecx
pop ecx
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x30]
call fcn.004038c9
mov byte [esp + 0x858], 5
cmp dword [eax + 0x14], 0x10
jb 0x4032b2
mov eax, dword [eax]
push eax
push str.FuncList:_s
push 0xa6
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
push 0
push 1
lea ecx, [esp + 0x108]
mov byte [esp + 0x860], 4
call fcn.0040228b
call fcn.004064fb
push eax
push str.WorkDir:_s
push 0xa7
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
push 0x64d300
push str.Homepage:_s
push 0xa8
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
call fcn.0040651d
push eax
push str.ConfigURL:_s
push 0xa9
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x14
push str.____________________________________________________________________
push 0xaa
push esi
push dword [0x6470bc]
call fcn.004750b0
add esp, 0x10
lea eax, [esp + 0x11c]
push eax
call fcn.00404683
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x11c]
mov byte [esp + 0x858], 6
mov ecx, eax
mov dword [esi + 0x20], eax
call fcn.004a938d
mov esi, dword [esi + 0xb8]
test esi, esi
je 0x4033c3
mov eax, dword [esi]
test eax, eax
je 0x4033b1
push 0x1388
push dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi]
test ecx, ecx
je 0x4033b1
mov eax, dword [ecx]
push 1
call dword [eax + 4]
and dword [esi], 0
push esi
call fcn.004a4d8a
mov eax, dword [esp + 0x18]
and dword [eax + 0xb8], 0
pop ecx
push str.Destroy_UpdateManager
push 0xb7
push 2
push dword [0x6470bc]
call fcn.004750b0
call fcn.00475490
push str.curl_global_cleanup_Complete
push 0xb9
push 2
push dword [0x6470bc]
call fcn.004750b0
mov ecx, dword [esp + 0x38]
add esp, 0x20
test ecx, ecx
je 0x403408
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov eax, dword [0x6470bc]
mov esi, eax
test eax, eax
je 0x403436
push 0
push 0
push 0x12
push dword [eax + 0x30]
call dword [sym.imp.USER32.dll_PostThreadMessageA]
push 0xffffffffffffffff
push dword [esi + 0x2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
lea esi, [esp + 0x11c]
mov byte [esp + 0x858], 4
call fcn.004034b1
or dword [esp + 0x858], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.0040388a
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x80], vtable.std::ios_base.0
call fcn.005c736f
pop ecx
xor eax, eax
mov ecx, dword [esp + 0x850]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x838]
xor ecx, esp
call fcn.005a6d8e
mov esp, ebp
pop ebp
ret