Function at 0x10004c90
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x100281f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_OpenProcess]
push esi
push edi
lea esp, [esp]
push 0x1001e634
call fcn.10004750
add esp, 4
test eax, eax
je 0x10004dac
push eax
push 0
push 0x410
call ebx
mov esi, eax
test esi, esi
je 0x10004dac
push 0x103
lea eax, [ebp - 0x107]
mov byte [ebp - 0x108], 0
push 0
push eax
call fcn.10008830
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x104
push eax
push 0
push esi
call sub.PSAPI.DLL_GetModuleFileNameExA
test eax, eax
je 0x10004dac
lea eax, [ebp - 0x108]
push eax
call fcn.1001d84b
lea eax, [ebp - 0x108]
push str._tclsclient.exe
push eax
call fcn.10008a10
add esp, 0xc
test eax, eax
je 0x10004dac
push 0x103
mov byte [eax], 0
lea eax, [ebp - 0x20b]
push 0
push eax
mov byte [ebp - 0x20c], 0
call fcn.10008830
add esp, 0xc
xor ecx, ecx
jmp 0x10004d60
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x20d], al
test al, al
jne 0x10004d60
lea edi, [ebp - 0x20c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10004d80
mov ecx, 6
lea eax, [ebp - 0x20c]
mov esi, str.AirlibClientLibGame.dat
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10005089
push 0x1001e670
call fcn.10004750
add esp, 4
test eax, eax
je 0x10004e9c
push eax
push 0
push 0x410
call ebx
mov esi, eax
test esi, esi
je 0x10004e9c
push 0x103
lea eax, [ebp - 0x107]
mov byte [ebp - 0x108], 0
push 0
push eax
call fcn.10008830
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x104
push eax
push 0
push esi
call sub.PSAPI.DLL_GetModuleFileNameExA
test eax, eax
je 0x10004e9c
lea eax, [ebp - 0x108]
push eax
call fcn.1001d84b
lea eax, [ebp - 0x108]
push str._tcls_tenprotect_taslogin.exe
push eax
call fcn.10008a10
add esp, 0xc
test eax, eax
je 0x10004e9c
push 0x103
mov byte [eax], 0
lea eax, [ebp - 0x20b]
push 0
push eax
mov byte [ebp - 0x20c], 0
call fcn.10008830
add esp, 0xc
xor ecx, ecx
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x20d], al
test al, al
jne 0x10004e54
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10004e70
mov ecx, 6
lea eax, [ebp - 0x20c]
mov esi, str.AirlibClientLibGame.dat
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x100050b7
push 0x1001e6a0
call fcn.10004750
add esp, 4
test eax, eax
je 0x10004f8c
push eax
push 0
push 0x410
call ebx
mov esi, eax
test esi, esi
je 0x10004f8c
push 0x103
lea eax, [ebp - 0x107]
mov byte [ebp - 0x108], 0
push 0
push eax
call fcn.10008830
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x104
push eax
push 0
push esi
call sub.PSAPI.DLL_GetModuleFileNameExA
test eax, eax
je 0x10004f8c
lea eax, [ebp - 0x108]
push eax
call fcn.1001d84b
lea eax, [ebp - 0x108]
push str.crosscrossProxy.exe
push eax
call fcn.10008a10
add esp, 0xc
test eax, eax
je 0x10004f8c
push 0x103
mov byte [eax], 0
lea eax, [ebp - 0x20b]
push 0
push eax
mov byte [ebp - 0x20c], 0
call fcn.10008830
add esp, 0xc
xor ecx, ecx
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x20d], al
test al, al
jne 0x10004f44
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10004f60
mov ecx, 6
lea eax, [ebp - 0x20c]
mov esi, str.AirlibClientLibGame.dat
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x100050e7
push 0x1001e6c8
call fcn.10004750
add esp, 4
test eax, eax
je 0x1000507c
push eax
push 0
push 0x410
call ebx
mov esi, eax
test esi, esi
je 0x1000507c
push 0x103
lea eax, [ebp - 0x107]
mov byte [ebp - 0x108], 0
push 0
push eax
call fcn.10008830
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x104
push eax
push 0
push esi
call sub.PSAPI.DLL_GetModuleFileNameExA
test eax, eax
je 0x1000507c
lea eax, [ebp - 0x108]
push eax
call fcn.1001d84b
lea eax, [ebp - 0x108]
push 0x1001e6e4
push eax
call fcn.10008a10
add esp, 0xc
test eax, eax
je 0x1000507c
push 0x103
mov byte [eax], 0
lea eax, [ebp - 0x20b]
push 0
push eax
mov byte [ebp - 0x20c], 0
call fcn.10008830
add esp, 0xc
xor ecx, ecx
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x20d], al
test al, al
jne 0x10005034
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10005050
mov ecx, 6
lea eax, [ebp - 0x20c]
mov esi, str.AirlibClientLibGame.dat
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10005117
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10004cb0
xor ecx, ecx
jmp 0x10005090
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ecx + 0x10029b0f], al
test al, al
jne 0x10005090
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10007d7d
mov esp, ebp
pop ebp
ret
xor ecx, ecx
lea esp, [esp]
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ecx + 0x10029b0f], al
test al, al
jne 0x100050c0
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10007d7d
mov esp, ebp
pop ebp
ret
xor ecx, ecx
lea esp, [esp]
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ecx + 0x10029b0f], al
test al, al
jne 0x100050f0
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10007d7d
mov esp, ebp
pop ebp
ret
xor ecx, ecx
lea esp, [esp]
mov al, byte [ebp + ecx - 0x108]
lea ecx, [ecx + 1]
mov byte [ecx + 0x10029b0f], al
test al, al
jne 0x10005120
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10007d7d
mov esp, ebp
pop ebp
ret