Function at 0x4130f0
Capabilities:
Create directory
Get common file path
Read .ini file
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
mov dword [ebp - 0x304], 0
push 0x100
push 0
mov eax, dword [0x45b808]
push eax
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov ecx, dword [0x45b80c]
push ecx
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov edx, dword [0x45b810]
push edx
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov eax, dword [0x45b814]
push eax
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov ecx, dword [0x45b818]
push ecx
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov edx, dword [0x45b81c]
push edx
call fcn.00421180
add esp, 0xc
push 0x100
push 0
push 0x46a64c
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov eax, dword [0x45b820]
push eax
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov ecx, dword [0x45b824]
push ecx
call fcn.00421180
add esp, 0xc
push 0x100
push 0
mov edx, dword [0x45b828]
push edx
call fcn.00421180
add esp, 0xc
push 0x181
push 0
push 0x46d4e0
call fcn.00421180
add esp, 0xc
mov eax, dword [0x45b80c]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [ebp - 0x30c], 0
jmp 0x41321a
mov ecx, dword [ebp - 0x30c]
add ecx, 1
mov dword [ebp - 0x30c], ecx
mov edx, dword [0x45b80c]
push edx
call fcn.004216d0
add esp, 4
cmp dword [ebp - 0x30c], eax
ja 0x413255
mov eax, dword [0x45b80c]
add eax, dword [ebp - 0x30c]
movsx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x413253
mov edx, dword [0x45b80c]
add edx, dword [ebp - 0x30c]
mov byte [edx], 0x2f
jmp 0x41320b
push 0x100
push 0
lea eax, [ebp - 0x100]
push eax
call fcn.00421180
add esp, 0xc
mov ecx, dword [0x45b80c]
push ecx
push str._s_zxssbc.ini
lea edx, [ebp - 0x100]
push edx
call fcn.0042018d
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0x46d55e
call fcn.004213a0
add esp, 8
lea ecx, [ebp - 0x100]
push ecx
push 0
push str.LanguageID
push 0x45b848
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x46d53a], eax
push 0x100
push 0
lea edx, [ebp - 0x200]
push edx
call fcn.00421180
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0x100
lea ecx, [ebp - 0x200]
push ecx
push 0
push 0x45b850
push 0x45b858
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x304], eax
cmp dword [ebp - 0x304], 0
jne 0x41330c
mov dword [0x46d4f1], 0
lea edx, [ebp - 0x200]
push edx
call sub.WSOCK32.dll_inet_addr
mov dword [0x46d4f1], eax
cmp dword [0x46d4f1], 0xffffffff
jne 0x413330
mov dword [0x46d4f1], 0
lea eax, [ebp - 0x100]
push eax
push 0x2382
push 0x45b860
push 0x45b86c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov word [0x46d4f5], ax
lea ecx, [ebp - 0x100]
push ecx
push 0x26ac
push 0x45b874
push 0x45b880
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov word [0x46d4f7], ax
push 0x100
push 0
lea edx, [ebp - 0x200]
push edx
call fcn.00421180
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0x100
lea ecx, [ebp - 0x200]
push ecx
push str._Local_
push 0x45b890
push 0x45b89c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x1e
lea edx, [ebp - 0x200]
push edx
push 0x46d53e
call fcn.004204d0
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0x100
mov ecx, dword [0x45b808]
push ecx
push 0x46a94c
push str.CurVersion
push str.Version
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x413419
push 0x100
push str.Single
mov edx, dword [0x45b808]
push edx
call fcn.004204d0
add esp, 0xc
mov eax, dword [0x45b80c]
mov dword [0x45b810], eax
jmp 0x413452
lea ecx, [ebp - 0x100]
push ecx
push 0x100
mov edx, dword [0x45b810]
push edx
push 0x46a950
push str.RootPath
mov eax, dword [0x45b808]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x413452
mov ecx, dword [0x45b80c]
mov dword [0x45b810], ecx
lea edx, [ebp - 0x100]
push edx
push 0x100
mov eax, dword [0x45b814]
push eax
push 0x46a954
push str.WorkPath
push 0x45b8d8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x413489
mov ecx, dword [0x45b810]
mov dword [0x45b814], ecx
mov edx, dword [0x45b814]
push edx
push str._s_GC_MGT.ini
mov eax, dword [0x45b81c]
push eax
call fcn.0042018d
add esp, 0xc
push 0x100
push 0
lea ecx, [ebp - 0x300]
push ecx
call fcn.00421180
add esp, 0xc
mov edx, dword [0x45b814]
push edx
push str._s_log
lea eax, [ebp - 0x300]
push eax
call fcn.0042018d
add esp, 0xc
push 0
lea ecx, [ebp - 0x300]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edx, [ebp - 0x300]
push edx
push str._s_except
mov eax, dword [0x45b818]
push eax
call fcn.0042018d
add esp, 0xc
push 0
mov ecx, dword [0x45b818]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [0x45b814]
push edx
push str._s_module.ini
mov eax, dword [0x45b820]
push eax
call fcn.0042018d
add esp, 0xc
mov ecx, dword [0x45b814]
push ecx
push str._s_log_SYSTrace.log
mov edx, dword [0x45b824]
push edx
call fcn.0042018d
add esp, 0xc
mov eax, dword [0x45b814]
push eax
push str._s_log_CFGTrace.log
push 0x46a64c
call fcn.0042018d
add esp, 0xc
mov ecx, dword [0x45b814]
push ecx
push str._s_log_COMTrace.log
mov edx, dword [0x45b828]
push edx
call fcn.0042018d
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0x12c
push 0x45b950
push 0x45b95c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
call fcn.00417a45
add esp, 4
mov word [0x46d4e0], ax
xor ecx, ecx
mov cx, word [0x46d4e0]
cmp ecx, 1
jl 0x4135be
xor edx, edx
mov dx, word [0x46d4e0]
cmp edx, 0x1f4
jle 0x4135e5
xor eax, eax
mov ax, word [0x46d4e0]
cmp eax, 0x3e9
jl 0x4135de
xor ecx, ecx
mov cx, word [0x46d4e0]
cmp ecx, 0x7530
jle 0x4135e5
xor al, al
jmp 0x4138ca
lea edx, [ebp - 0x100]
push edx
push 1
push 0x45b964
push 0x45b970
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
call fcn.00417a45
add esp, 4
mov byte [0x46d4e2], al
xor eax, eax
mov al, byte [0x46d4e2]
cmp eax, 1
jl 0x413628
xor ecx, ecx
mov cl, byte [0x46d4e2]
cmp ecx, 0xfe
jle 0x41362f
xor al, al
jmp 0x4138ca
lea edx, [ebp - 0x100]
push edx
push 1
push str.IsLeft
push 0x45b980
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
sub eax, 1
neg eax
sbb eax, eax
inc eax
mov byte [0x46d539], al
lea eax, [ebp - 0x100]
push eax
push 0x578
push 0x45b988
push str.SYSTEM
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov word [0x46d4ed], ax
xor ecx, ecx
mov cx, word [0x46d4ed]
cmp ecx, 0x5dc
jle 0x413691
mov word [0x46d4ed], 0x5dc
xor edx, edx
mov dx, word [0x46d4ed]
cmp edx, 0x1f4
jge 0x4136ab
mov word [0x46d4ed], 0x1f4
xor eax, eax
mov ax, word [0x46d4e0]
cmp eax, 1
jl 0x4136ef
xor ecx, ecx
mov cx, word [0x46d4e0]
cmp ecx, 0x1f4
jg 0x4136ef
mov word [0x46d4ef], 8
mov word [0x46d4e3], 0x14
mov word [0x46d4e7], 0x3e8
mov word [0x46d4e5], 0
jmp 0x413713
mov word [0x46d4ef], 4
mov word [0x46d4e3], 0
mov word [0x46d4e7], 0xa
mov word [0x46d4e5], 6
mov dword [ebp - 0x308], 0
jmp 0x41372e
mov edx, dword [ebp - 0x308]
add edx, 1
mov dword [ebp - 0x308], edx
xor eax, eax
mov ax, word [0x46d4ef]
sub eax, 1
cmp dword [ebp - 0x308], eax
jge 0x41389e
push 0x100
push 0
lea ecx, [ebp - 0x40c]
push ecx
call fcn.00421180
add esp, 0xc
mov edx, dword [ebp - 0x308]
add edx, 1
push edx
push str.Extern__d
lea eax, [ebp - 0x40c]
push eax
call fcn.0042018d
add esp, 0xc
push 0x100
push 0
lea ecx, [ebp - 0x200]
push ecx
call fcn.00421180
add esp, 0xc
lea edx, [ebp - 0x100]
push edx
push 0x100
lea eax, [ebp - 0x200]
push eax
push 0
push str.LocalIP
lea ecx, [ebp - 0x40c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x304], eax
cmp dword [ebp - 0x304], 0
jne 0x4137d8
mov edx, dword [ebp - 0x308]
mov dword [edx*8 + 0x46d4f9], 0xffffffff
jmp 0x4137f1
lea eax, [ebp - 0x200]
push eax
call sub.WSOCK32.dll_inet_addr
mov ecx, dword [ebp - 0x308]
mov dword [ecx*8 + 0x46d4f9], eax
lea edx, [ebp - 0x100]
push edx
push 0xffff
push str.TCPSvrPort
lea eax, [ebp - 0x40c]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x308]
mov word [ecx*8 + 0x46d4fd], ax
lea edx, [ebp - 0x100]
push edx
push 0xffff
push str.UDPSvrPort
lea eax, [ebp - 0x40c]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x308]
mov word [ecx*8 + 0x46d4ff], ax
mov edx, dword [ebp - 0x308]
xor eax, eax
mov ax, word [edx*8 + 0x46d4fd]
cmp eax, 0xffff
jne 0x413899
mov ecx, dword [ebp - 0x308]
xor edx, edx
mov dx, word [ecx*8 + 0x46d4ff]
cmp edx, 0xffff
jne 0x413899
mov eax, dword [ebp - 0x308]
cmp dword [eax*8 + 0x46d4f9], 0xffffffff
jne 0x413899
mov ecx, dword [ebp - 0x308]
mov dword [ecx*8 + 0x46d4f9], 0
jmp 0x41371f
push 0x46d65f
call fcn.00414b73
add esp, 4
test eax, eax
jne 0x4138c1
mov word [0x46d65f], 0xffff
mov byte [0x46d65e], 0
jmp 0x4138c8
mov byte [0x46d65e], 1
mov al, 1
mov esp, ebp
pop ebp
ret