Function at 0x56a1a0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Set socket configuration
Start tcp server

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5850a8
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x5fad8c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
call fcn.0053ac90
push 1
push 0
push 0
push 6
push 1
push 2
mov dword [ebp - 0x24], eax
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
cmp edi, 0xffffffff
je 0x56a1f2
xor eax, eax
jmp 0x56a205
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x24], esi
or edi, 0xffffffff
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 4], 0
cmp edi, 0xffffffff
jne 0x56a22e
test eax, eax
setne al
test al, al
je 0x56a22e
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
mov dword [ebp - 0x3c], 1
cmp edi, 0xffffffff
jne 0x56a244
call fcn.00574eb0
mov dword [ebp - 0x24], eax
jmp 0x56a26c
push 4
lea eax, [ebp - 0x3c]
push eax
push 4
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x56a26c
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x24], esi
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0x10
mov eax, 2
movups xmmword [ebp - 0x20], xmm0
push 0x7f000001
mov word [ebp - 0x20], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov word [ebp - 0x1e], ax
cmp edi, 0xffffffff
jne 0x56a2ae
call fcn.00574eb0
mov ecx, 0x2719
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jmp 0x56a2dd
push 0x10
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x56a2f4
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x2c], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
jne 0x56a2f4
test ecx, ecx
setne al
test al, al
je 0x56a2f4
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
cmp edi, 0xffffffff
jne 0x56a30b
call fcn.00574eb0
mov ecx, 0x2719
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jmp 0x56a349
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x10
push eax
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.WS2_32.dll_getsockname]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], ecx
test eax, eax
je 0x56a360
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x30], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
jne 0x56a360
test ecx, ecx
setne al
test al, al
je 0x56a360
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
mov esi, dword [sym.imp.WS2_32.dll_htonl]
push 0
call esi
cmp dword [ebp - 0x1c], eax
jne 0x56a379
push 0x7f000001
call esi
mov dword [ebp - 0x1c], eax
cmp edi, 0xffffffff
jne 0x56a390
call fcn.00574eb0
mov ecx, 0x2719
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jmp 0x56a3be
push accept
push edi
call dword [sym.imp.WS2_32.dll_listen]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x56a3d5
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x30], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
jne 0x56a3d5
test ecx, ecx
setne al
test al, al
je 0x56a3d5
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
push 1
push 0
push 0
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov dword [ebp - 0x2c], eax
cmp eax, 0xffffffff
je 0x56a3f3
xor ecx, ecx
jmp 0x56a40b
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [ebp - 0x24], esi
or eax, 0xffffffff
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 1
cmp eax, 0xffffffff
jne 0x56a443
test ecx, ecx
setne al
test al, al
je 0x56a431
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
call fcn.00574eb0
mov ecx, 0x2719
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jmp 0x56a473
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_connect]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x56a48a
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x30], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
jne 0x56a48a
test ecx, ecx
setne al
test al, al
je 0x56a48a
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
cmp edi, 0xffffffff
jne 0x56a4a3
call fcn.00574eb0
mov dword [ebp - 0x24], eax
mov ecx, 0x2719
or eax, edi
mov dword [ebp - 0x38], eax
jmp 0x56a4d9
push 0
push 0
push edi
mov dword [ebp - 0x50], 0
call dword [sym.imp.WS2_32.dll_accept]
mov dword [ebp - 0x38], eax
cmp eax, 0xffffffff
jne 0x56a4d7
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [ebp - 0x24], esi
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
jmp 0x56a4d9
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x54], eax
mov byte [ebp - 4], 2
cmp eax, 0xffffffff
jne 0x56a4fa
test ecx, ecx
je 0x56a4fa
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x40], 1
cmp esi, 0xffffffff
jne 0x56a51a
call fcn.00574eb0
mov dword [ebp - 0x28], 0x2719
mov dword [ebp - 0x24], eax
jmp 0x56a555
lea eax, [ebp - 0x40]
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [ebp - 0x30], eax
test eax, eax
js 0x56a535
xor eax, eax
jmp 0x56a548
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x28], eax
je 0x56a563
test eax, eax
je 0x56a563
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
push 4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 1
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x56a58f
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x40], 1
cmp esi, 0xffffffff
jne 0x56a5af
call fcn.00574eb0
mov dword [ebp - 0x28], 0x2719
mov dword [ebp - 0x24], eax
jmp 0x56a5ea
lea eax, [ebp - 0x40]
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [ebp - 0x30], eax
test eax, eax
js 0x56a5ca
xor eax, eax
jmp 0x56a5dd
call fcn.00574eb0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x28], eax
je 0x56a5f8
test eax, eax
je 0x56a5f8
push str.socket_select_interrupter
lea eax, [ebp - 0x28]
push eax
call fcn.0055e1e0
push 4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 1
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x56a61f
call fcn.00574eb0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], esi
mov dword [ecx + 4], eax
cmp edi, 0xffffffff
je 0x56a655
mov dword [ebp - 0x28], 0
call fcn.0053ac90
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push 1
lea eax, [ebp - 0x31]
mov byte [ebp - 0x31], 0
push eax
push edi
call fcn.00558f20
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053649e
mov esp, ebp
pop ebp
ret