Function at 0x1400ead10
Capabilities:
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x1403295b8]
xor rax, rsp
mov qword [rsp + 0x1d0], rax
lea rdx, [rsp + 0x38]
mov cx, 0x101
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov ebp, 0xffffdcd8
test eax, eax
jne 0x1400eb025
movzx eax, word [rsp + 0x38]
cmp eax, 0x101
jne 0x1400eaffc
xor ecx, ecx
call fcn.140233c64
mov ecx, eax
call fcn.14023cc70
mov ecx, 2
mov edx, 2
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_socket]
mov qword [0x140330bf8], rax
mov dword [rsp + 0x34], 0xa28
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov rcx, rax
mov edx, 0xffff
mov r8d, 0x1006
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
js 0x1400eb014
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [0x14033142c], eax
lea r14, [0x140331428]
mov word [0x140331428], 2
mov rcx, rdi
call fcn.140235dc4
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [0x14033142a], ax
movsx ecx, byte [rsi]
movsx edi, byte [rsi + 1]
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 9
cmp cl, 0xa
movzx eax, al
movzx ebp, cl
cmovae ebp, eax
mov ecx, edi
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx ecx, cl
cmovae ecx, eax
shl ebp, 4
add ebp, ecx
movsx ecx, byte [rsi + 2]
movsx edi, byte [rsi + 3]
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx ebx, cl
cmovae ebx, eax
mov ecx, edi
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx ecx, cl
cmovae ecx, eax
movzx eax, bl
shl eax, 4
movzx ebx, cl
add ebx, eax
movsx ecx, byte [rsi + 4]
movsx r15d, byte [rsi + 5]
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx edi, cl
cmovae edi, eax
mov ecx, r15d
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx ecx, cl
cmovae ecx, eax
movzx eax, dil
shl eax, 4
movzx edi, cl
add edi, eax
movsx ecx, byte [rsi + 6]
movsx r15d, byte [rsi + 7]
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx esi, cl
cmovae esi, eax
mov ecx, r15d
call fcn.14023fc20
lea ecx, [rax - 0x30]
add al, 0xc9
cmp cl, 0xa
movzx eax, al
movzx ecx, cl
cmovae ecx, eax
movzx eax, sil
shl eax, 4
movzx ecx, cl
add ecx, eax
shl ebp, 0x18
shl ebx, 0x10
or ebx, ebp
shl edi, 8
or edi, ecx
or edi, ebx
mov dword [0x140330c08], edi
lea rsi, [0x140330c08]
call fcn.14023cc88
mov dword [0x140330c0c], eax
movabs rax, 0xaf3c282800000000
mov qword [0x140330c10], rax
xorps xmm0, xmm0
movups xmmword [0x140331438], xmm0
movups xmmword [0x140331448], xmm0
movups xmmword [0x140331458], xmm0
mov qword [0x140331468], 0
mov qword [0x140331470], 0
mov dword [0x140331478], 0
mov rcx, qword [0x140330bf8]
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x28], reloc.WS2_32.dll_recv
mov rdx, rsi
mov r8d, reloc.WS2_32.dll_recv
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_sendto]
mov ecx, reloc.WS2_32.dll_sendto
call qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov rcx, qword [0x140330bf8]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rdx, [0x140331018]
mov r8d, 0x400
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
js 0x1400eb020
mov eax, dword [0x140331024]
mov ebp, 0xffffdcdc
cmp eax, dword [0x140330c14]
jne 0x1400eb025
mov eax, dword [0x140331020]
xor ecx, ecx
cmp eax, dword [0x140330c10]
mov ebp, 0xffffdcdd
cmove ebp, ecx
jmp 0x1400eb025
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov qword [0x140330bf8], 0xffffffffffffffff
mov ebp, 0xffffdcd9
jmp 0x1400eb025
lea rcx, str._setsockopt_failed.
call fcn.14001a280
mov ebp, 0xffffdcdb
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.140141380
mov eax, ebp
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret