Function at 0x409670
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 0x42f2ad
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x43f00c]
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 - 0x54], ecx
push 1
push 0
push 0
push 6
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
push 2
movq qword [ebp - 0x1c], xmm0
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
lea ecx, [ebp - 0x1c]
cmp edi, 0xffffffff
sete dl
call fcn.00408ad0
or eax, 0xffffffff
cmp edi, eax
cmove edi, eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 4], 0
cmp edi, eax
jne 0x40972b
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x32
mov dword [ebp - 0x40], 0x1a
je 0x409722
cmp dword [ebp - 0x14], 1
jne 0x409c8b
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409c8b
jmp 0x40972b
mov dword [ebp - 0x20], 1
jmp 0x409737
mov dword [ebp - 0x20], 1
cmp edi, 0xffffffff
jne 0x4097a4
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
mov ebx, dword [sym.imp.WS2_32.dll_htonl]
push 0x7f000001
mov dword [ebp - 0x50], 0x10
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x14], eax
mov eax, 2
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 0x4097f3
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
jmp 0x409817
push 4
lea eax, [ebp - 0x20]
push eax
push 4
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x1c]
setne dl
call fcn.00408ad0
mov ebx, dword [sym.imp.WS2_32.dll_htonl]
xorps xmm0, xmm0
mov eax, 2
movlpd qword [ebp - 0x30], xmm0
push 0x7f000001
mov word [ebp - 0x38], ax
call ebx
mov dword [ebp - 0x34], eax
xor eax, eax
mov word [ebp - 0x36], ax
mov dword [ebp - 0x50], 0x10
push 0x10
lea eax, [ebp - 0x38]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
mov esi, eax
lea ecx, [ebp - 0x1c]
test esi, esi
setne dl
call fcn.00408ad0
cmp esi, 0xffffffff
jne 0x409874
mov eax, dword [ebp - 0x14]
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x42
mov dword [ebp - 0x40], 0x1a
je 0x409851
cmp eax, 1
jne 0x409c9c
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409c9c
cmp edi, 0xffffffff
jne 0x409874
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
jmp 0x4098a7
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 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 - 0x1c]
mov eax, dword [ebp - 0x28]
test esi, esi
mov dword [ebp - 0x50], eax
setne dl
call fcn.00408ad0
cmp esi, 0xffffffff
jne 0x4098e1
mov eax, dword [ebp - 0x14]
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x46
mov dword [ebp - 0x40], 0x1a
je 0x4098e1
cmp eax, 1
jne 0x409cad
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409cad
push 0
call ebx
cmp dword [ebp - 0x34], eax
jne 0x4098f4
push 0x7f000001
call ebx
mov dword [ebp - 0x34], eax
cmp edi, 0xffffffff
jne 0x409917
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
jmp 0x40993a
push bind
push edi
call dword [sym.imp.WS2_32.dll_listen]
mov esi, eax
lea ecx, [ebp - 0x1c]
test esi, esi
setne dl
call fcn.00408ad0
cmp esi, 0xffffffff
jne 0x409974
mov eax, dword [ebp - 0x14]
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x50
mov dword [ebp - 0x40], 0x1a
je 0x409974
cmp eax, 1
jne 0x409cbe
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409cbe
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 - 0x1c]
cmp ebx, 0xffffffff
sete dl
call fcn.00408ad0
cmp ebx, 0xffffffff
mov eax, 0xffffffff
cmove ebx, eax
mov dword [ebp - 0x28], ebx
mov byte [ebp - 4], 1
cmp ebx, eax
jne 0x409a05
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x55
mov dword [ebp - 0x40], 0x1a
je 0x4099e7
cmp dword [ebp - 0x14], 1
jne 0x409ccf
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409ccf
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
jmp 0x409a2a
push dword [ebp - 0x50]
lea eax, [ebp - 0x38]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_connect]
mov esi, eax
lea ecx, [ebp - 0x1c]
test esi, esi
setne dl
call fcn.00408ad0
cmp esi, 0xffffffff
jne 0x409a64
mov eax, dword [ebp - 0x14]
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x59
mov dword [ebp - 0x40], 0x1a
je 0x409a64
cmp eax, 1
jne 0x409ce0
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409ce0
cmp edi, 0xffffffff
jne 0x409a81
mov edx, 0x2719
lea ecx, [ebp - 0x60]
call fcn.00406b40
or esi, edi
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
jmp 0x409aad
push 0
push 0
push edi
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
lea ecx, [ebp - 0x1c]
cmp esi, 0xffffffff
sete dl
call fcn.00408ad0
cmp esi, 0xffffffff
jne 0x409aa8
mov eax, dword [ebp - 0x14]
or esi, esi
jmp 0x409ab5
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x14], eax
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 2
cmp esi, 0xffffffff
jne 0x409afb
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x5d
mov dword [ebp - 0x40], 0x1a
je 0x409afb
cmp eax, 1
jne 0x409cf1
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409cf1
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], 1
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 0x39], 0
push eax
push ecx
lea edx, [ebp - 0x39]
mov ecx, ebx
call fcn.00408f30
add esp, 0xc
test eax, eax
je 0x409b5b
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x63
mov dword [ebp - 0x40], 0x1a
je 0x409b5b
cmp dword [ebp - 0x14], 1
jne 0x409d02
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409d02
mov dword [ebp - 0x20], 1
cmp ebx, 0xffffffff
jne 0x409b85
mov edx, 0x2719
lea ecx, [ebp - 0x48]
call fcn.00406b40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
jmp 0x409ba3
push 4
lea eax, [ebp - 0x20]
push eax
push 1
push 6
push ebx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x1c]
setne dl
call fcn.00408ad0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], 1
push eax
lea eax, [ebp - 0x24]
mov byte [ebp - 0x39], 0
push eax
push ecx
lea edx, [ebp - 0x39]
mov ecx, esi
call fcn.00408f30
add esp, 0xc
test eax, eax
je 0x409c03
test byte [ebp - 0x14], 1
mov dword [ebp - 0x4c], str.D:_boost_1_84_0_boost_asiodetailimpl_socket_select_interrupter.ipp
mov dword [ebp - 0x48], str.open_descriptors
mov dword [ebp - 0x44], 0x6d
mov dword [ebp - 0x40], 0x1a
je 0x409c03
cmp dword [ebp - 0x14], 1
jne 0x409d13
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x409d13
mov dword [ebp - 0x20], 1
cmp esi, 0xffffffff
jne 0x409c1e
mov edx, 0x2719
lea ecx, [ebp - 0x48]
call fcn.00406b40
jmp 0x409c3c
push 4
lea eax, [ebp - 0x20]
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x1c]
setne dl
call fcn.00408ad0
mov eax, dword [ebp - 0x54]
mov dword [eax], esi
mov dword [eax + 4], ebx
cmp edi, 0xffffffff
je 0x409c6f
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0
push eax
xorps xmm0, xmm0
mov byte [ebp - 0x39], 0
push 1
lea edx, [ebp - 0x39]
movq qword [ebp - 0x1c], xmm0
mov ecx, edi
call fcn.00408b50
add esp, 8
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.0042c87e
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
lea eax, [ebp - 0x4c]
mov edx, str.socket_select_interrupter
push eax
lea ecx, [ebp - 0x1c]
call fcn.00406af0
int3