Function at 0x4016d0
Capabilities:
Check if file exists
Copy file
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6cc
push ebx
push esi
lea eax, [ebp - 0x294]
push edi
mov ebx, 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x49c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push dword [ebp + 0xc]
lea eax, [ebp - 0x294]
mov esi, str._s_s.ime
push eax
lea eax, [ebp - 0x190]
push esi
push eax
call fcn.004020d0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
add esp, 0x10
lea eax, [ebp - 0x190]
push eax
call edi
cmp eax, 0xffffffff
jne 0x401753
push dword [ebp + 0xc]
lea eax, [ebp - 0x64]
push 0x4092b8
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x64]
push 0x10
push 0x409210
jmp 0x401998
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push str._s_serverisserver.exe
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x190]
push eax
call edi
cmp eax, 0xffffffff
jne 0x40179b
lea eax, [ebp - 0x64]
push 0x40927c
push eax
call fcn.004020d0
pop ecx
lea eax, [ebp - 0x64]
pop ecx
push 0x10
push 0x409210
jmp 0x401998
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x398]
push str._s_sinstar2.ini
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x398]
mov edi, str.client
push eax
lea eax, [ebp - 0x6cc]
push ebx
push eax
push 0x40bcd8
push dword [ebp + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x40197a
push dword [ebp + 0xc]
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push esi
push eax
call fcn.004020d0
push dword [ebp + 0xc]
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x5c8]
push esi
push eax
call fcn.004020d0
add esp, 0x20
lea eax, [ebp - 0x5c8]
push 0
push eax
lea eax, [ebp - 0x190]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push dword [ebp + 0xc]
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push str._s_s
push eax
call fcn.004020d0
add esp, 0x10
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x190]
push eax
push dword [ebp + 0xc]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
call edi
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x190]
push ebx
push eax
push 0x40bcd8
mov ebx, str.server
push 0x409268
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x190]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x401933
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push str._s_serverisserver.exe
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x190]
push eax
push 0x409268
push ebx
call edi
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push str._s_server
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x190]
push eax
push str.data
push ebx
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x190]
push str._s_s_register.log
push eax
call fcn.004020d0
add esp, 0x10
lea eax, [ebp - 0x190]
push eax
push 0x409250
push str.mysvr
push 0x4090ec
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x190]
push esi
push eax
call fcn.004020d0
add esp, 0x10
lea eax, [ebp - 0x190]
push dword [ebp + 8]
push eax
call sub.IMM32.dll_ImmInstallIMEA
push 0
push 0x409210
push 0x409244
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop eax
jmp 0x4019a8
push dword [ebp + 8]
lea eax, [ebp - 0x64]
push 0x40922c
push eax
call fcn.004020d0
add esp, 0xc
lea eax, [ebp - 0x64]
push 0x10
push 0x409210
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret