Function at 0x100087e0
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 0x10069f7d
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x10086040]
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 - 0x40], ecx
push 1
push 0
push 0
push 6
push 1
push 2
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0x10086be8
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
lea ecx, [ebp - 0x28]
cmp edi, 0xffffffff
sete dl
call fcn.10007d80
or eax, 0xffffffff
cmp edi, eax
cmove edi, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 4], 0
cmp edi, eax
jne 0x100088c2
cmp dword [ebp - 0x28], 0
jne 0x10008d1b
mov ebx, dword [0x1008816c]
mov esi, dword fs:[0x2c]
mov eax, dword [0x10088e60]
mov dword [ebp - 0x34], 1
mov ecx, dword [esi + ebx*4]
cmp eax, dword [ecx + 4]
jle 0x100088b2
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], 0xffffffff
jne 0x100088b2
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
mov dword [ebp - 0x28], 0x2719
mov dword [ebp - 0x24], 0x10086bf8
jmp 0x100088f7
push 4
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], 1
push eax
push 4
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x28]
setne dl
call fcn.10007d80
mov ebx, dword [0x1008816c]
mov esi, dword fs:[0x2c]
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0x10
mov eax, 2
movlpd qword [ebp - 0x18], xmm0
push 0x7f000001
mov word [ebp - 0x20], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x20]
xor eax, eax
mov ecx, edi
mov word [ebp - 0x1e], ax
lea eax, [ebp - 0x28]
push eax
push 0x10
call fcn.10007df0
add esp, 8
cmp eax, 0xffffffff
jne 0x10008945
cmp dword [ebp - 0x28], 0
jne 0x10008d1b
cmp edi, 0xffffffff
jne 0x1000899a
mov ecx, dword [esi + ebx*4]
mov eax, dword [0x10088e60]
cmp eax, dword [ecx + 4]
jle 0x10008989
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], edi
jne 0x10008989
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
mov eax, 0x2719
mov dword [ebp - 0x24], 0x10086bf8
mov dword [ebp - 0x28], eax
jmp 0x100089cd
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x10
push eax
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.WS2_32.dll_getsockname]
mov esi, eax
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x30]
test esi, esi
mov dword [ebp - 0x30], eax
setne dl
call fcn.10007d80
cmp esi, 0xffffffff
jne 0x100089d5
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x10008d1b
mov esi, dword [sym.imp.WS2_32.dll_htonl]
push 0
call esi
cmp dword [ebp - 0x1c], eax
jne 0x100089ee
push 0x7f000001
call esi
mov dword [ebp - 0x1c], eax
cmp edi, 0xffffffff
jne 0x10008a4a
mov esi, dword fs:[0x2c]
mov eax, dword [0x10088e60]
mov ecx, dword [esi + ebx*4]
cmp eax, dword [ecx + 4]
jle 0x10008a39
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], edi
jne 0x10008a39
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
mov eax, 0x2719
mov dword [ebp - 0x24], 0x10086bf8
mov dword [ebp - 0x28], eax
jmp 0x10008a74
push closesocket
push edi
call dword [sym.imp.WS2_32.dll_listen]
mov esi, eax
lea ecx, [ebp - 0x28]
test esi, esi
setne dl
call fcn.10007d80
cmp esi, 0xffffffff
mov esi, dword fs:[0x2c]
jne 0x10008a7c
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x10008d1b
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 - 0x28]
cmp ebx, 0xffffffff
sete dl
call fcn.10007d80
cmp ebx, 0xffffffff
mov eax, 0xffffffff
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 1
cmp ebx, eax
jne 0x10008abe
cmp dword [ebp - 0x28], 0
jne 0x10008d28
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
push dword [ebp - 0x30]
lea edx, [ebp - 0x20]
call fcn.10008010
add esp, 8
cmp eax, 0xffffffff
jne 0x10008ae1
cmp dword [ebp - 0x28], 0
jne 0x10008d28
cmp edi, 0xffffffff
jne 0x10008b3d
mov edi, dword [0x1008816c]
mov eax, dword [0x10088e60]
mov ecx, dword [esi + edi*4]
cmp eax, dword [ecx + 4]
jle 0x10008b2c
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], 0xffffffff
jne 0x10008b2c
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
mov eax, 0x2719
mov dword [ebp - 0x24], 0x10086bf8
or esi, 0xffffffff
jmp 0x10008b6c
push 0
push 0
push edi
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
lea ecx, [ebp - 0x28]
cmp esi, 0xffffffff
sete dl
call fcn.10007d80
mov edi, dword [0x1008816c]
cmp esi, 0xffffffff
jne 0x10008b6a
mov eax, dword [ebp - 0x28]
or esi, esi
jmp 0x10008b6f
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], esi
mov byte [ebp - 4], 2
cmp esi, 0xffffffff
jne 0x10008b83
test eax, eax
jne 0x10008d35
lea eax, [ebp - 0x28]
mov dword [ebp - 0x38], 1
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 0x29], 0
push eax
push ecx
lea edx, [ebp - 0x29]
mov ecx, ebx
call fcn.100086e0
add esp, 0xc
test eax, eax
je 0x10008bb2
cmp dword [ebp - 0x28], 0
jne 0x10008d35
mov dword [ebp - 0x34], 1
cmp ebx, 0xffffffff
jne 0x10008c13
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x10088e60]
cmp eax, dword [ecx + 4]
jle 0x10008c03
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], ebx
jne 0x10008c03
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
mov dword [ebp - 0x28], 0x2719
mov dword [ebp - 0x24], 0x10086bf8
jmp 0x10008c31
push 4
lea eax, [ebp - 0x34]
push eax
push 1
push 6
push ebx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x28]
setne dl
call fcn.10007d80
lea eax, [ebp - 0x28]
mov dword [ebp - 0x38], 1
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 0x29], 0
push eax
push ecx
lea edx, [ebp - 0x29]
mov ecx, esi
call fcn.100086e0
add esp, 0xc
test eax, eax
je 0x10008c60
cmp dword [ebp - 0x28], 0
jne 0x10008d35
mov dword [ebp - 0x34], 1
cmp esi, 0xffffffff
jne 0x10008cb3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x10088e60]
cmp eax, dword [ecx + 4]
jle 0x10008cd1
push 0x10088e60
call fcn.10046360
add esp, 4
cmp dword [0x10088e60], esi
jne 0x10008cd1
push 0x1006fa40
call fcn.1004680e
add esp, 4
push 0x10088e60
call fcn.1004630f
add esp, 4
jmp 0x10008cd1
push 4
lea eax, [ebp - 0x34]
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x28]
setne dl
call fcn.10007d80
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x3c], 0xffffffff
mov dword [eax], esi
mov dword [eax + 4], ebx
call fcn.100087a0
lea ecx, [ebp - 0x3c]
call fcn.100087a0
lea ecx, [ebp - 0x44]
call fcn.100087a0
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.100462d6
mov esp, ebp
pop ebp
ret
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x28]
call fcn.100042f0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x28]
call fcn.100042f0
mov edx, str.socket_select_interrupter
lea ecx, [ebp - 0x28]
call fcn.100042f0
int3