Function at 0x478500
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 0x647c88
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x6e1c7c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x48], ecx
push 0x6ef9f4
xorps xmm0, xmm0
push 0x450a50
push 0x6efa2c
movlpd qword [ebp - 0x18], xmm0
call fcn.005fe6fd
add esp, 0xc
test eax, eax
je 0x478925
push 1
push 0
push 0
push 6
push 1
push 2
mov dword [ebp - 0x14], 0x6ef9f4
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
lea ecx, [ebp - 0x18]
cmp edi, 0xffffffff
sete dl
call fcn.00477c60
or eax, 0xffffffff
cmp edi, eax
cmove edi, eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 4], 0
cmp edi, eax
jne 0x47859e
cmp dword [ebp - 0x18], 0
jne 0x47892a
mov dword [ebp - 0x1c], 1
cmp edi, 0xffffffff
jne 0x4785c4
mov edx, 0x2719
lea ecx, [ebp - 0x44]
call fcn.00475810
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x4785e5
push 4
lea eax, [ebp - 0x1c]
push eax
push 4
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x18]
setne dl
call fcn.00477c60
mov ebx, dword [sym.imp.WS2_32.dll_htonl]
xorps xmm0, xmm0
mov eax, 2
mov dword [ebp - 0x40], 0x10
push 0x7f000001
movlpd qword [ebp - 0x30], xmm0
mov word [ebp - 0x38], ax
call ebx
mov dword [ebp - 0x34], eax
xor eax, eax
mov word [ebp - 0x36], ax
cmp edi, 0xffffffff
jne 0x478632
mov edx, 0x2719
lea ecx, [ebp - 0x28]
call fcn.00475810
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x478656
push 0x10
lea eax, [ebp - 0x38]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
mov esi, eax
lea ecx, [ebp - 0x18]
test esi, esi
setne dl
call fcn.00477c60
cmp esi, 0xffffffff
jne 0x47865e
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x478937
cmp edi, 0xffffffff
jne 0x47867d
mov edx, 0x2719
lea ecx, [ebp - 0x54]
call fcn.00475810
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x4786b0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0x10
push eax
lea eax, [ebp - 0x38]
push eax
push edi
call dword [sym.imp.WS2_32.dll_getsockname]
mov esi, eax
lea ecx, [ebp - 0x18]
mov eax, dword [ebp - 0x24]
test esi, esi
mov dword [ebp - 0x40], eax
setne dl
call fcn.00477c60
cmp esi, 0xffffffff
jne 0x4786b8
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x478944
push 0
call ebx
cmp dword [ebp - 0x34], eax
jne 0x4786cb
push 0x7f000001
call ebx
mov dword [ebp - 0x34], eax
cmp edi, 0xffffffff
jne 0x4786ea
mov edx, 0x2719
lea ecx, [ebp - 0x54]
call fcn.00475810
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x47870d
push bind
push edi
call dword [sym.imp.WS2_32.dll_listen]
mov esi, eax
lea ecx, [ebp - 0x18]
test esi, esi
setne dl
call fcn.00477c60
cmp esi, 0xffffffff
jne 0x478715
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x478951
push 1
push 0
push 0
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov ebx, eax
lea ecx, [ebp - 0x18]
cmp ebx, 0xffffffff
sete dl
call fcn.00477c60
cmp ebx, 0xffffffff
mov eax, 0xffffffff
cmove ebx, eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 4], 1
cmp ebx, eax
jne 0x478771
cmp dword [ebp - 0x18], 0
jne 0x47895e
mov edx, 0x2719
lea ecx, [ebp - 0x54]
call fcn.00475810
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x478796
push dword [ebp - 0x40]
lea eax, [ebp - 0x38]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_connect]
mov esi, eax
lea ecx, [ebp - 0x18]
test esi, esi
setne dl
call fcn.00477c60
cmp esi, 0xffffffff
jne 0x47879e
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x47896b
cmp edi, 0xffffffff
jne 0x4787bc
mov edx, 0x2719
lea ecx, [ebp - 0x54]
call fcn.00475810
or esi, edi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
jmp 0x4787e5
push 0
push 0
push edi
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
lea ecx, [ebp - 0x18]
cmp esi, 0xffffffff
sete dl
call fcn.00477c60
cmp esi, 0xffffffff
jne 0x4787e3
mov ecx, dword [ebp - 0x18]
or esi, esi
jmp 0x4787e8
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x40], esi
mov byte [ebp - 4], 2
cmp esi, 0xffffffff
jne 0x4787fc
test ecx, ecx
jne 0x478978
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20], 1
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 0x39], 0
push eax
push ecx
lea edx, [ebp - 0x39]
mov ecx, ebx
call fcn.00478050
add esp, 0xc
test eax, eax
je 0x47882b
cmp dword [ebp - 0x18], 0
jne 0x478985
mov dword [ebp - 0x1c], 1
cmp ebx, 0xffffffff
jne 0x478857
mov edx, 0x2719
lea ecx, [ebp - 0x5c]
call fcn.00475810
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jmp 0x478877
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [ebp - 0x1c]
push 4
push eax
push 1
push 6
push ebx
call edi
test eax, eax
lea ecx, [ebp - 0x18]
setne dl
call fcn.00477c60
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20], 1
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 0x39], 0
push eax
push ecx
lea edx, [ebp - 0x39]
mov ecx, esi
call fcn.00478050
add esp, 0xc
test eax, eax
je 0x4788a6
cmp dword [ebp - 0x18], 0
jne 0x478992
mov dword [ebp - 0x1c], 1
cmp esi, 0xffffffff
jne 0x4788c1
mov edx, 0x2719
lea ecx, [ebp - 0x5c]
call fcn.00475810
jmp 0x4788db
push 4
lea eax, [ebp - 0x1c]
push eax
push 1
push 6
push esi
call edi
test eax, eax
lea ecx, [ebp - 0x18]
setne dl
call fcn.00477c60
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [eax], esi
mov dword [eax + 4], ebx
call fcn.00478480
lea ecx, [ebp - 0x24]
call fcn.00478480
lea ecx, [ebp - 0x4c]
call fcn.00478480
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006021fd
mov esp, ebp
pop ebp
ret
call fcn.0062204e
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x18]
call fcn.0044fae0
int3