Function at 0x488d10
Capabilities:
Create tcp socket
Create udp socket
Print debug messages
Set socket configuration
Start tcp server

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x48
mov eax, dword [0x4e3f80]
xor eax, esp
mov dword [esp + 0x44], eax
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x21c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [esi + 4]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esi + edi*4 + 0xc], 0
jne 0x488e6b
cmp dword [esi], 0
je 0x488d6d
nop
push 0x4d2998
call fcn.00477b80
add esp, 4
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi], 0
jne 0x488d50
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + edi*4 + 0xc], eax
cmp eax, 0xffffffff
jne 0x488d96
push 0x4d29e8
call fcn.004a01ce
add esp, 4
push 0
call fcn.0049f300
push eax
push str.Created_socket__d_r_n
call fcn.00477b80
add esp, 8
mov eax, 2
push 0xeeed
mov word [esp + 0x18], ax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, edi
mov word [esp + 0x16], ax
call fcn.004903a0
push eax
lea ecx, [esp + 0x28]
push str._nip:__08X_n
push ecx
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [esi + edi*4 + 0xc]
push 0x10
lea eax, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x488e28
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
call esi
push eax
push str.SOCKET::Failed_bind___failed_with__d_r_n
call fcn.00477b80
add esp, 8
pop esi
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.0049dc2a
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + edi*4 + 0xc]
push edx
push edi
push str.Bound_ok_on_adaptor__d__socket__d___r_n
call fcn.00477b80
mov eax, dword [esi + edi*4 + 0xc]
add esp, 0xc
push 4
push eax
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
jne 0x488e6b
push str.SOCKET::Failed_listen____r_n
call fcn.00477b80
add esp, 4
pop esi
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.0049dc2a
mov esp, ebp
pop ebp
ret
lea eax, [esi + edi*4 + 0x4c]
mov ecx, edi
push eax
shl ecx, 4
lea edx, [ecx + esi + 0x8c]
mov dword [eax], 0x10
mov eax, dword [esi + edi*4 + 0xc]
push edx
push eax
call dword [sym.imp.WS2_32.dll_accept]
push edi
push eax
push str.new_monitoring_thread__d_on_adaptor__d_n
mov dword [esp + 0x18], eax
call fcn.00477b80
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x488eaf
push edi
mov ecx, esi
call fcn.00488cb0
mov edx, dword [esp + 0xc]
push 4
lea ecx, [esp + 0x14]
push ecx
push 1
push 6
push edx
mov dword [esp + 0x24], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
mov eax, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x488fae
push eax
push str.Client_Connected_on_socket_id_0x_x__r_n
call fcn.004a01ce
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x20
call fcn.004907ee
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x488f17
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], ecx
mov dword [esp + 8], eax
jmp 0x488f1b
mov dword [esp + 8], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [ecx + 0x14], eax
inc dword [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 8]
push edx
push esi
mov dword [esi + 0x218], 0
call fcn.00488ff0
test eax, eax
je 0x488f70
jmp 0x488f50
cmp dword [esi + 0x210], 0
jne 0x488f70
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 8]
push eax
push esi
call fcn.00488ff0
test eax, eax
jne 0x488f50
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x14]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esi], 0
jne 0x488f9d
mov dword [esi + 0x210], 0
mov eax, dword [esp + 8]
push eax
call fcn.0049081d
mov eax, dword [esp + 0x10]
add esp, 4
push edi
push eax
push str.Client_Detached_on_socket_id_0x_x_adaptor__d_r_n
call fcn.004a01ce
add esp, 0xc
cmp dword [esi], 0
jne 0x488fca
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [esi + 4]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x4c]
pop esi
pop ebx
xor ecx, esp
call fcn.0049dc2a
mov esp, ebp
pop ebp
ret