Function at 0x100572f0
Capabilities:
Create tcp socket
Create thread
Create udp socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
mov eax, dword [0x1010f16c]
xor eax, esp
mov dword [esp + 0x44], eax
push esi
mov esi, ecx
push edi
mov edi, dword [esi + 4]
cmp dword [edi], 0
je 0x10057388
push 0
push 0
push 0
push dword [edi + 8]
mov byte [edi + 4], 1
mov byte [0x10115c7e], 1
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
push 0xffffffffffffffff
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp + 8]
mov dword [edi], 0
mov ecx, esi
mov byte [edi + 4], 0
mov byte [0x10115c7e], 0
call fcn.100572f0
mov esi, dword [esi + 4]
mov byte [esp + 0xb], al
lea eax, [esp + 0xc]
push eax
push 0
push esi
push 0x10057b10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x8000
push eax
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
jmp 0x10057513
push 1
push 0
push 0
push 0
push 2
push 2
mov byte [esp + 0x23], 0
mov dword [esp + 0x24], 0xffffffff
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x100573c0
push str.UdpSocketWin32::Initialize_WSASocket_failed
call fcn.10056110
add esp, 4
jmp 0x10057513
mov eax, dword [esi + 4]
push 0
push 0
push dword [eax + 8]
push edi
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
jne 0x100573e7
push str.UdpSocketWin32::Initialize_CreateIoCompletionPort_failed
call fcn.10056110
add esp, 4
jmp 0x100574f9
xorps xmm0, xmm0
mov eax, 2
movaps xmmword [esp + 0x10], xmm0
mov word [esp + 0x10], ax
movzx eax, word [ebp + 8]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x12], ax
lea eax, [esp + 0x10]
push 0x10
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x1005742d
push str.UdpSocketWin32::Initialize_bind_failed
call fcn.10056110
add esp, 4
jmp 0x100574f9
push 1
push 0
push 0
push 0
push 2
push 0x17
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov dword [esp + 0xc], eax
cmp eax, 0xffffffff
je 0x100574c6
mov ecx, dword [esi + 4]
push 0
push 0
push dword [ecx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
jne 0x1005747a
push str.IPv6_Socket_completion_port_failed.
call fcn.10056110
mov eax, dword [esp + 0x10]
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x100574d7
xorps xmm0, xmm0
mov dword [esp + 0x38], 0
mov eax, 0x17
movaps xmmword [esp + 0x20], xmm0
mov word [esp + 0x20], ax
movzx eax, word [ebp + 8]
push eax
movq qword [esp + 0x34], xmm0
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x22], ax
lea eax, [esp + 0x20]
push 0x1c
push eax
push dword [esp + 0x14]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x100574d3
push str.UdpSocketWin32::Initialize_bind_failed_IPv6
jmp 0x100574cb
push str.IPv6_Socket_creation_failed.
call fcn.10056110
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], edi
mov edi, eax
xor eax, eax
mov dword [esp + 0xc], ecx
cmp ecx, 0xffffffff
mov byte [esp + 0xb], 1
setne al
mov dword [esi + 0x20], eax
mov esi, dword [sym.imp.WS2_32.dll_closesocket]
cmp edi, 0xffffffff
je 0x10057507
push edi
call esi
mov eax, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x10057513
push eax
call esi
mov ecx, dword [esp + 0x4c]
mov al, byte [esp + 0xb]
pop edi
pop esi
xor ecx, esp
call fcn.100908e7
mov esp, ebp
pop ebp
ret 4