Function at 0x100d9a50
Capabilities:
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 0x100ef71d
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x101170e4]
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
mov esi, dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
call esi
push 1
push 0
push 0
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov ebx, eax
call fcn.100d1380
mov edi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edi
cmp ebx, 0xffffffff
jne 0x100d9abb
or ebx, ebx
mov dword [ebp - 0x3c], edi
jmp 0x100d9ace
xor eax, eax
mov dword [ebp - 0x28], 0x10117038
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0x10117038
mov dword [ebp - 0x50], ebx
mov dword [ebp - 4], 0
cmp ebx, 0xffffffff
jne 0x100d9afd
test eax, eax
jne 0x100d9ec4
mov dword [ebp - 0x34], 1
call fcn.100d1380
mov dword [ebp - 0x2c], 0x2719
mov dword [ebp - 0x28], eax
jmp 0x100d9b45
push 0
mov dword [ebp - 0x34], 1
call esi
push 4
lea eax, [ebp - 0x34]
push eax
push 4
push 0xffff
push ebx
call dword [sym.imp.WS2_32.dll_setsockopt]
mov edi, eax
call fcn.100d1380
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x28], esi
mov esi, dword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [ebp - 0x2c], eax
test edi, edi
jne 0x100d9b45
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], 0x10117038
mov edi, dword [sym.imp.WS2_32.dll_htonl]
xorps xmm0, xmm0
mov eax, 2
mov dword [ebp - 0x30], 0x10
push 0x7f000001
movlpd qword [ebp - 0x18], xmm0
mov word [ebp - 0x20], ax
call edi
mov dword [ebp - 0x1c], eax
xor eax, eax
mov word [ebp - 0x1e], ax
lea eax, [ebp - 0x2c]
push eax
push 0x10
lea eax, [ebp - 0x20]
push eax
push ebx
call fcn.100cfc70
add esp, 0x10
cmp eax, 0xffffffff
jne 0x100d9b95
cmp dword [ebp - 0x2c], 0
jne 0x100d9ec4
cmp ebx, 0xffffffff
jne 0x100d9baf
call fcn.100d1380
mov ecx, 0x2719
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
jmp 0x100d9c3c
push 0
call esi
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x10
push eax
lea eax, [ebp - 0x20]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_getsockname]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
call fcn.100d1380
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
test eax, eax
jne 0x100d9c37
push 0x7f000001
call edi
mov dword [ebp - 0x1c], eax
mov eax, dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
call eax
push SysReAllocString
push ebx
call dword [sym.imp.WS2_32.dll_listen]
mov edi, eax
call fcn.100d1380
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x28], esi
mov ecx, eax
mov dword [ebp - 0x2c], ecx
test edi, edi
je 0x100d9c65
cmp edi, 0xffffffff
jne 0x100d9c65
test ecx, ecx
jne 0x100d9ec4
jmp 0x100d9c65
cmp eax, 0xffffffff
jne 0x100d9c44
test ecx, ecx
jne 0x100d9ec4
push 0x7f000001
call edi
mov dword [ebp - 0x1c], eax
cmp ebx, 0xffffffff
jne 0x100d9bf8
call fcn.100d1380
mov ecx, 0x2719
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
jmp 0x100d9c2d
mov esi, dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
call esi
push 1
push 0
push 0
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
mov dword [ebp - 0x38], edi
call fcn.100d1380
mov dword [ebp - 0x3c], eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
cmp edi, 0xffffffff
jne 0x100d9cac
or edi, edi
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edi
jmp 0x100d9cbf
xor eax, eax
mov dword [ebp - 0x28], 0x10117038
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0x10117038
mov dword [ebp - 0x58], edi
mov byte [ebp - 4], 1
cmp edi, 0xffffffff
jne 0x100d9cd3
test eax, eax
jne 0x100d9ed2
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.100d7730
add esp, 0x10
cmp eax, 0xffffffff
jne 0x100d9cf6
cmp dword [ebp - 0x2c], 0
jne 0x100d9ed2
cmp ebx, 0xffffffff
jne 0x100d9d12
call fcn.100d1380
or esi, ebx
mov dword [ebp - 0x28], eax
mov ecx, 0x2719
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x3c], eax
jmp 0x100d9d5e
push 0
call esi
push 0
push 0
push ebx
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
mov dword [ebp - 0x30], esi
call fcn.100d1380
mov dword [ebp - 0x3c], eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
cmp esi, 0xffffffff
jne 0x100d9d4e
or esi, esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], esi
jmp 0x100d9d61
xor ecx, ecx
mov dword [ebp - 0x28], 0x10117038
mov dword [ebp - 0x3c], 0x10117038
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], esi
mov byte [ebp - 4], 2
cmp esi, 0xffffffff
jne 0x100d9d75
test ecx, ecx
jne 0x100d9ee0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x44], 1
push eax
lea eax, [ebp - 0x44]
mov byte [ebp - 0x21], 0
push eax
push 0x8004667e
lea eax, [ebp - 0x21]
push eax
push edi
call fcn.100d9810
add esp, 0x14
test eax, eax
je 0x100d9da8
cmp dword [ebp - 0x2c], 0
jne 0x100d9ee0
mov dword [ebp - 0x34], 1
cmp edi, 0xffffffff
jne 0x100d9dc5
call fcn.100d1380
mov dword [ebp - 0x2c], 0x2719
mov dword [ebp - 0x28], eax
jmp 0x100d9e0c
mov eax, dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
call eax
push 4
lea eax, [ebp - 0x34]
push eax
push 1
push 6
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov edi, eax
call fcn.100d1380
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x28], esi
test edi, edi
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
jne 0x100d9e0c
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0x10117038
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x44], 1
push eax
lea eax, [ebp - 0x44]
mov byte [ebp - 0x21], 0
push eax
push 0x8004667e
lea eax, [ebp - 0x21]
push eax
push esi
call fcn.100d9810
add esp, 0x14
test eax, eax
je 0x100d9e3f
cmp dword [ebp - 0x2c], 0
jne 0x100d9ee0
mov dword [ebp - 0x34], 1
cmp esi, 0xffffffff
jne 0x100d9e52
call fcn.100d1380
jmp 0x100d9e76
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 4
lea eax, [ebp - 0x34]
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
call fcn.100d1380
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov eax, dword [ebp - 0x48]
mov dword [eax], esi
mov dword [eax + 4], edi
cmp ebx, 0xffffffff
je 0x100d9ea8
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
push eax
push 1
lea eax, [ebp - 0x21]
mov dword [ebp - 0x28], 0x10117038
push eax
push ebx
mov byte [ebp - 0x21], 0
call fcn.100cffa0
add esp, 0x10
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.1008511a
mov esp, ebp
pop ebp
ret
push str.socket_select_interrupter
lea eax, [ebp - 0x2c]
push eax
call fcn.100d0ff0
push str.socket_select_interrupter
lea eax, [ebp - 0x2c]
push eax
call fcn.100d0ff0
push str.socket_select_interrupter
lea eax, [ebp - 0x2c]
push eax
call fcn.100d0ff0
int3