Function at 0x48b9dc
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x48b9e4
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x48be40
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
lea eax, [ebp - 4]
mov edx, 0xff
call fcn.0040505c
lea eax, [ebp - 0xc]
mov edx, 0xc8
call fcn.0040505c
lea eax, [ebp - 8]
mov edx, 0xc8
call fcn.0040505c
lea eax, [ebp - 0x10]
mov edx, 0xc8
call fcn.0040505c
lea eax, [ebp - 0x14]
mov edx, 0xc8
call fcn.0040505c
lea eax, [ebp - 0x18]
mov edx, 0xc8
call fcn.0040505c
lea eax, [ebp - 0x1c]
mov edx, 0xc8
call fcn.0040505c
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0xff
call sub.kernel32.dll_GetCurrentDirectoryA
mov eax, dword [ebp - 4]
call fcn.00404ed0
mov edx, 0x48be50
call fcn.0040a504
mov eax, dword [ebp - 4]
call fcn.00404ed0
call fcn.0040a3fc
mov edx, eax
lea eax, [ebp - 4]
call fcn.0040505c
lea eax, [ebp - 8]
mov edx, 0x48be68
call fcn.00404aa8
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x64
mov eax, dword [ebp - 0xc]
call fcn.00404ed0
push eax
push 0x48be70
push 0x48be80
mov eax, dword [ebp - 8]
call fcn.00404ed0
push eax
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, dword [ebp - 0xc]
call fcn.00404ed0
mov edx, eax
mov eax, 0x65d4e4
call fcn.0040a438
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x64
mov eax, dword [ebp - 0x10]
call fcn.00404ed0
push eax
push 0x48be8c
push 0x48be9c
mov eax, dword [ebp - 8]
call fcn.00404ed0
push eax
call sub.kernel32.dll_GetPrivateProfileStringA
mov edx, dword [ebp - 0x10]
mov eax, 0x48beb0
call fcn.00405014
dec eax
js 0x48bc6b
mov edx, dword [ebp - 0x10]
mov eax, 0x48beb0
call fcn.00405014
dec eax
jne 0x48bb37
xor ebx, ebx
jmp 0x48bb3c
mov ebx, 1
mov esi, ebx
add esi, esi
lea esi, [esi + esi*2]
mov dword [esi*8 + 0x65d554], 2
mov dword [esi*8 + 0x65d55c], 2
mov dword [esi*8 + 0x65d560], 0x11
mov dword [esi*8 + 0x65d568], 1
mov dword [esi*8 + 0x65d56c], 6
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x64
mov eax, dword [ebp - 0x14]
call fcn.00404ed0
push eax
push 0x48beb8
push 0x48bec0
push 0x48becc
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, dword [ebp - 0x14]
call fcn.00404ed0
mov edx, 0x48beb8
call fcn.0040a520
test eax, eax
jne 0x48bbe5
mov byte [esi*8 + 0x65d558], 0
lea eax, [ebp - 4]
push eax
push 0x1324
push 0x48bed4
push 0x48becc
call sub.kernel32.dll_GetPrivateProfileIntA
mov word [esi*8 + 0x65d564], ax
jmp 0x48bc6b
mov byte [esi*8 + 0x65d558], 1
lea eax, [ebp - 4]
push eax
push 0x64
lea eax, [ebp - 0x18]
push eax
push 0x48bee4
push 0x48beec
push 0x48becc
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [esi*8 + 0x65d574]
mov word [eax], 2
lea eax, [ebp - 0x18]
push eax
call sub.wsock32.dll_inet_addr
lea edx, [esi*8 + 0x65d574]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x1388
push 0x48befc
push 0x48becc
call sub.kernel32.dll_GetPrivateProfileIntA
mov word [ebp - 0x1e], ax
mov ax, word [ebp - 0x1e]
push eax
call sub.wsock32.dll_htons
lea edx, [esi*8 + 0x65d574]
mov word [edx + 2], ax
mov dword [esi*8 + 0x65d570], 0x10
mov edx, dword [ebp - 0x10]
mov eax, 0x48bf10
call fcn.00405014
dec eax
js 0x48be23
mov edx, dword [ebp - 0x10]
mov eax, 0x48bf10
call fcn.00405014
dec eax
jne 0x48bc93
xor ebx, ebx
jmp 0x48bc98
mov ebx, 1
mov esi, ebx
add esi, esi
lea esi, [esi + esi*2]
mov dword [esi*8 + 0x65d554], 6
mov dword [esi*8 + 0x65d55c], 2
mov dword [esi*8 + 0x65d560], 0x3e8
mov dword [esi*8 + 0x65d568], 1
mov dword [esi*8 + 0x65d56c], 0x4e8
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x64
mov eax, dword [ebp - 0x14]
call fcn.00404ed0
push eax
push 0x48beb8
push 0x48bec0
push 0x48bf18
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, dword [ebp - 0x14]
call fcn.00404ed0
mov edx, 0x48beb8
call fcn.0040a520
test eax, eax
jne 0x48bd46
mov byte [esi*8 + 0x65d558], 0
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x1324
push 0x48bed4
push 0x48bf18
call sub.kernel32.dll_GetPrivateProfileIntA
mov word [esi*8 + 0x65d564], ax
jmp 0x48be23
mov byte [esi*8 + 0x65d558], 1
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x64
mov eax, dword [ebp - 0x18]
call fcn.00404ed0
push eax
push 0x48bf20
push 0x48beec
push 0x48bf18
call sub.kernel32.dll_GetPrivateProfileStringA
lea edx, [esi*8 + 0x65d57a]
mov eax, dword [ebp - 0x24]
call fcn.0040a438
mov eax, dword [ebp - 0x18]
call fcn.00404ed0
mov edx, eax
mov ecx, 6
mov eax, dword [ebp - 0x24]
call fcn.0048b9ac
lea eax, [ebp - 4]
push eax
push 0x64
lea eax, [ebp - 0x1c]
push eax
push 0x48bf30
push 0x48bf3c
push 0x48bf18
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, dword [esi*8 + 0x65d576]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
call fcn.00404ed0
mov edx, eax
mov ecx, 4
mov eax, dword [ebp - 0x24]
call fcn.0048b9ac
mov word [esi*8 + 0x65d574], 6
mov eax, dword [ebp - 4]
call fcn.00404ed0
push eax
push 0x1388
push 0x48befc
push 0x48bf18
call sub.kernel32.dll_GetPrivateProfileIntA
mov word [ebp - 0x1e], ax
mov ax, word [ebp - 0x1e]
push eax
call sub.wsock32.dll_htons
mov word [esi*8 + 0x65d580], ax
mov dword [esi*8 + 0x65d570], 0x10
mov ebx, edi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48be47
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.00404a34
ret