Function at 0x140395ae0
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Resolve dns
Set socket configuration

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xe8
movapd xmmword [rsp + 0xd0], xmm6
mov edi, r8d
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140609000]
xor rax, rsp
mov qword [rsp + 0xc8], rax
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x90], xmm0
movapd xmmword [rsp + 0x80], xmm0
movapd xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x68], 0
movapd xmmword [rsp + 0xb0], xmm0
mov dword [rsp + 0x64], 0x10400
mov ecx, 2
mov edx, 2
mov r8d, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
je 0x140395c16
movabs rax, 0x7b00000000
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xa4], 0
mov eax, dword [rsp + 0xa4]
test eax, eax
je 0x140395c41
mov eax, dword [rsp + 0xac]
lea r9, reloc.WS2_32.dll_htons
lea r14, [rsp + 0x70]
mov r8d, gethostbyname
mov rcx, r14
xor edx, edx
call qword [r9 + rax*8]
movabs rax, 0x200000002
mov qword [rsp + 0x74], rax
lea r9, [rsp + 0x68]
mov rcx, rbx
xor edx, edx
mov r8, r14
call qword [sym.imp.WS2_32.dll_getaddrinfo]
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x14039678a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.1403a4260
mov eax, esi
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r14
ret
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.1403a4260
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r14
jmp qword [sym.imp.KERNEL32.dll_GetLastError]
movsd xmm0, qword [0x14057f078]
movsd xmm1, qword [0x14057f070]
movsd xmm2, qword [0x14057f068]
movsd xmm3, qword [0x14057f060]
jmp 0x140395cf6
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si eax, xmm5
and eax, r9d
add r8d, ecx
add eax, eax
sub r8d, eax
mov eax, dword [rsp + 0xa4]
cdqe
mov dword [rsp + rax*4 + 0xac], r8d
inc dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa4]
test eax, eax
jne 0x140395b95
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx ecx, byte [0x1406101b0]
movsx ecx, cl
lea ecx, [rcx + rcx*2]
add ecx, eax
cmp ecx, 3
je 0x140395f15
mov eax, dword [rsp + 0xa4]
cdqe
mov ecx, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x140395d2e
add byte [rdi], cl
mov dh, 5
out 0x31, eax
invalid
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm3
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140395db4
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov r8d, 4
cmp edx, 3
jne 0x140395e09
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si r8d, xmm5
mov eax, dword [rsp + 0xa4]
cdqe
mov r9d, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x140395e20
add byte [rdi], cl
mov dh, 5
cmc
xor byte [rdi], ah
add byte [rdi], cl
mov esi, 0xe4570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm3
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140395ea5
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov eax, 4
cmp edx, 3
jne 0x140395ef9
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si eax, xmm5
and eax, r9d
add r8d, ecx
add eax, eax
sub r8d, eax
mov eax, dword [rsp + 0xa4]
cdqe
mov dword [rsp + rax*4 + 0xac], r8d
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx ecx, byte [reloc.WS2_32.dll_htonl]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [reloc.WS2_32.dll_accept]
movsx ecx, cl
cmp eax, ecx
je 0x1403965cd
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx ecx, byte [0x1406101b0]
movsx ecx, cl
lea ecx, [rcx + rcx*2]
lea eax, [rax + rcx*2]
cmp eax, 3
je 0x140396162
mov eax, dword [rsp + 0xa4]
cdqe
mov ecx, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x140395f7b
add byte [rdi], cl
mov dh, 5
invalid
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm2
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140396001
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov r8d, 4
cmp edx, 3
jne 0x140396056
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si r8d, xmm5
mov eax, dword [rsp + 0xa4]
cdqe
mov r9d, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x14039606d
add byte [rdi], cl
mov dh, 5
test al, 0x2e
invalid
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm2
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x1403960f2
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov eax, 4
cmp edx, 3
jne 0x140396146
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si eax, xmm5
and eax, r9d
add r8d, ecx
add eax, eax
sub r8d, eax
mov eax, dword [rsp + 0xa4]
cdqe
mov dword [rsp + rax*4 + 0xac], r8d
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx ecx, byte [0x1406101b0]
movsx ecx, cl
lea edx, [rcx + rcx*4]
lea ecx, [rcx + rdx*4]
add ecx, eax
cmp ecx, 3
je 0x140396384
mov eax, dword [rsp + 0xa4]
cdqe
mov ecx, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x14039619d
add byte [rdi], cl
mov dh, 5
js 0x1403961cf
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm1
movsd qword [rsp + 0x58], xmm4
invalid
and al, 0x58
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140396223
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov r8d, 4
cmp edx, 3
jne 0x140396278
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si r8d, xmm5
mov eax, dword [rsp + 0xa4]
cdqe
mov r9d, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x14039628f
add byte [rdi], cl
mov dh, 5
xchg byte [rdi + riz], ch
add byte [rdi], cl
mov esi, 0xe4570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm1
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140396314
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov eax, 4
cmp edx, 3
jne 0x140396368
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si eax, xmm5
and eax, r9d
add r8d, ecx
add eax, eax
sub r8d, eax
mov eax, dword [rsp + 0xa4]
cdqe
mov dword [rsp + rax*4 + 0xac], r8d
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx ecx, byte [reloc.WS2_32.dll_htonl]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [reloc.WS2_32.dll_accept]
movsx ecx, cl
cmp eax, ecx
je 0x1403965cd
mov eax, dword [rsp + 0xa4]
cdqe
mov ecx, dword [rsp + rax*4 + 0xac]
mov eax, dword [rsp + 0xa4]
add eax, 0x7e
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
xor rax, rax
je 0x1403963d8
add byte [rdi], cl
mov dh, 5
cmp eax, 0xf00272b
mov esi, 0xed570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
cvtsi2sd xmm6, eax
addsd xmm6, xmm6
subsd xmm5, xmm6
mulsd xmm5, xmm4
movsd qword [rsp + 0x58], xmm5
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x14039645b
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov r8d, 4
cmp edx, 3
jne 0x1403964b0
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si r8d, xmm5
mov eax, dword [rsp + 0xa4]
cdqe
mov r9d, dword [rsp + rax*4 + 0xac]
mov eax, dword [rsp + 0xa4]
add eax, 0x7e
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
xor rax, rax
je 0x1403964d8
add byte [rdi], cl
mov dh, 5
cmp eax, 0xf00272a
mov esi, 0xed570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm6, xmm6
cvtsi2sd xmm6, eax
addsd xmm6, xmm6
subsd xmm5, xmm6
mulsd xmm5, xmm4
movsd qword [rsp + 0x58], xmm5
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x14039655d
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov eax, 4
cmp edx, 3
jne 0x1403965b1
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si eax, xmm5
and eax, r9d
add r8d, ecx
add eax, eax
sub r8d, eax
mov eax, dword [rsp + 0xa4]
cdqe
mov dword [rsp + rax*4 + 0xac], r8d
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx ecx, byte [0x1406101b0]
movsx ecx, cl
lea ecx, [rcx + rcx*2]
lea eax, [rax + rcx*8]
cmp eax, 3
je 0x140395ce0
mov eax, dword [rsp + 0xa4]
cdqe
mov ecx, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x140396606
add byte [rdi], cl
mov dh, 5
movaps xmmword [rdi], xmm4
add byte [rdi], cl
mov esi, 0xe4570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm0
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x14039668c
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov r8d, 4
cmp edx, 3
jne 0x1403966e1
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm4, qword [rsp + 0x58]
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r8d, dl
xor edx, edx
div r8d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
sub eax, edx
xorps xmm5, xmm5
cvtsi2sd xmm5, rax
mulsd xmm5, xmm4
cvttsd2si r8d, xmm5
mov eax, dword [rsp + 0xa4]
cdqe
mov r9d, dword [rsp + rax*4 + 0xac]
xor rax, rax
je 0x1403966f8
add byte [rdi], cl
mov dh, 5
sbb eax, 0xf002728
mov esi, 0xe4570fc0
movzx eax, byte [reloc.WS2_32.dll_getsockopt]
movsx eax, al
xorps xmm4, xmm4
cvtsi2sd xmm4, eax
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
xorps xmm5, xmm5
cvtsi2sd xmm5, eax
addsd xmm5, xmm5
subsd xmm4, xmm5
mulsd xmm4, xmm0
movsd qword [rsp + 0x58], xmm4
movzx eax, byte [reloc.WS2_32.dll_htons]
movsx eax, al
add eax, 7
movzx edx, byte [reloc.WS2_32.dll_htonl]
movsx r10d, dl
xor edx, edx
div r10d
movzx edx, byte [reloc.WS2_32.dll_accept]
movsx edx, dl
cmp eax, edx
je 0x140395c70
movzx eax, byte [reloc.WS2_32.dll_closesocket]
movsx eax, al
movzx edx, byte [0x1406101b0]
movsx edx, dl
lea edx, [rdx + rdx*8]
lea edx, [rdx + rdx*2]
add edx, eax
mov eax, 4
cmp edx, 3
je 0x140395c70
jmp 0x140395cc4
cmp qword [rsp + 0x68], 0
je 0x140395be7
mov word [rsp + 0xb0], 2
mov ecx, edi
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xb2], ax
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x20]
mov eax, dword [rax + 4]
mov dword [rsp + 0xb4], eax
mov rcx, qword [rsi]
lea rdx, [rsp + 0xb0]
mov r8d, reloc.WS2_32.dll_recv
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x1403968df
mov rcx, qword [rsi]
mov dword [rsp + 0x20], 4
mov rbx, qword [sym.imp.WS2_32.dll_setsockopt]
lea rdi, [rsp + 0x64]
mov edx, 0xffff
mov r8d, 0x1002
mov r9, rdi
call rbx
mov rcx, qword [rsi]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, 0x1001
mov r9, rdi
call rbx
mov dword [rsp + 0xa8], 1
mov rcx, qword [rsi]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0xa8]
mov edx, 0xffff
mov r8d, 8
call rbx
movabs rax, 0x271000000001
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], 0x2710
mov dword [rsp + 0xa4], 0
mov rcx, qword [rsi]
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x38], xmm0
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x58]
mov edx, 0x98000004
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call qword [sym.imp.WS2_32.dll_WSAIoctl]
mov dword [rsp + 0x54], 0xa0001
mov rcx, qword [rsi]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x54]
mov edx, 0xffff
mov r8d, 0x80
call rbx
xor esi, esi
jmp 0x140395bef
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140395bed