Function at 0x40adaa
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push 0x17c
mov eax, 0x52cbf6
call fcn.00512375
lea eax, [ebp - 0x144]
mov edi, ecx
mov ecx, dword [0x591580]
push eax
call fcn.004095e3
xor ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00411d00
pop ecx
pop ecx
push str._resserver
lea ecx, [ebp - 0x134]
call fcn.00401d42
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x144]
push dword [eax - 0xc]
lea ecx, [ebp - 0x134]
push eax
call fcn.00401a1d
mov esi, str.mac
push esi
call fcn.00512590
pop ecx
push eax
push esi
lea ecx, [ebp - 0x134]
call fcn.00401a1d
lea eax, [ebp - 0x114]
push eax
call fcn.00512590
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x134]
call fcn.00401a1d
push str.FullClient.txt
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov esi, str.FullClienttrue
test eax, eax
jne 0x40ae60
mov esi, str.FullClientfalse
push esi
call fcn.00512590
pop ecx
push eax
push esi
lea ecx, [ebp - 0x134]
call fcn.00401a1d
mov esi, str.GameName
push esi
call fcn.00512590
pop ecx
push eax
push esi
lea ecx, [ebp - 0x134]
call fcn.00401a1d
call fcn.00402067
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.004022be
pop ecx
pop ecx
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 0x10
jb 0x40aead
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x134]
call fcn.00401c30
mov byte [ebp - 4], 1
push ebx
push 1
lea ecx, [ebp - 0x130]
call fcn.00401536
mov esi, 0x542888
push esi
call fcn.00512590
pop ecx
push eax
push esi
lea ecx, [ebp - 0x134]
call fcn.00401a1d
mov eax, dword [edi + 0xc4]
push dword [eax - 0xc]
lea ecx, [ebp - 0x134]
push eax
call fcn.00401a1d
mov esi, 0x53f451
push esi
push dword [0x58b44c]
lea ecx, [ebp - 0x134]
call fcn.00409615
call fcn.00414e89
push eax
lea ecx, [ebp - 0x140]
call fcn.0040131c
mov byte [ebp - 4], 4
push dword [edi + 0xa14]
lea eax, [ebp - 0x140]
push dword [0x58b450]
push str._s_d
push eax
call fcn.00401b9f
add esp, 0x10
push esi
push dword [ebp - 0x140]
lea ecx, [ebp - 0x134]
call fcn.00409615
push 0x5917a8
lea eax, [ebp - 0x13c]
push 0x59176c
push eax
call fcn.00401bb3
mov byte [ebp - 4], 5
push 0x38
lea eax, [ebp - 0x184]
push ebx
push eax
call fcn.00512ea0
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x134]
add esp, 0x18
mov dword [ebp - 0x174], eax
mov eax, dword [0x59176c]
push 0x542874
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x188], 0x3c
mov dword [ebp - 0x184], 0x40
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x17c], str.open
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], 1
mov dword [ebp - 0x168], ebx
call fcn.00401d42
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x134]
push dword [eax - 0xc]
lea ecx, [ebp - 0x138]
push eax
call fcn.00401a1d
push ecx
mov ecx, esp
lea eax, [ebp - 0x138]
mov dword [ebp - 0x148], esp
push eax
call fcn.00401668
mov byte [ebp - 4], 7
mov byte [ebp - 4], 6
call fcn.00402f79
mov esi, 0x542860
push esi
call fcn.00512590
pop ecx
pop ecx
push eax
push esi
lea ecx, [ebp - 0x138]
call fcn.004016fe
mov eax, dword [ebp - 0x13c]
push dword [eax - 0xc]
lea ecx, [ebp - 0x138]
push eax
call fcn.00401a1d
push ecx
lea eax, [ebp - 0x138]
mov ecx, esp
mov dword [ebp - 0x148], esp
push eax
call fcn.00401668
mov byte [ebp - 4], 8
mov byte [ebp - 4], 6
call fcn.00402f79
pop ecx
lea eax, [ebp - 0x188]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp byte [0x58b550], bl
je 0x40b0da
call fcn.00402067
cmp eax, 2
jne 0x40b0da
call fcn.0041217f
mov eax, dword [0x591580]
push ecx
add eax, 4
mov ecx, esp
mov dword [ebp - 0x148], esp
push eax
call fcn.00401668
mov byte [ebp - 4], 9
push ecx
lea eax, [ebp - 0x13c]
mov ecx, esp
mov dword [ebp - 0x14c], esp
push eax
call fcn.00401668
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 6
call fcn.00412b78
pop ecx
pop ecx
mov ecx, edi
call fcn.0040909e
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x138]
add ecx, 0xfffffff0
call fcn.004010d2
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x13c]
add ecx, 0xfffffff0
call fcn.004010d2
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x140]
add ecx, 0xfffffff0
call fcn.004010d2
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x134]
add ecx, 0xfffffff0
call fcn.004010d2
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x144]
add ecx, 0xfffffff0
call fcn.004010d2
call fcn.005123f8
ret