Function at 0x140018af0
Capabilities:
Get socket status
Send data
Send data on socket

Disassembly:
push rbp
push rdi
push r12
push r14
lea rbp, [rsp - 0x598]
sub rsp, 0x698
mov rax, qword [0x14006a0d0]
xor rax, rsp
mov qword [rbp + 0x570], rax
mov dword [rsp + 0x34], r9d
mov r14, r8
mov r12, rdx
mov rdi, rcx
cmp rcx, 0xffffffffffffffff
jne 0x140018b3b
lea ecx, [rdi + 0xb]
call fcn.1400190a0
mov rax, rdi
jmp 0x140018da4
xor eax, eax
mov qword [rsp + 0x690], rsi
xor r10d, r10d
mov qword [rsp + 0x680], r15
xor sil, sil
mov word [rsp + 0x54], ax
mov byte [rsp + 0x56], al
mov r15, r8
mov qword [rsp + 0x38], r10
test r8, r8
je 0x140018d91
mov qword [rsp + 0x688], r13
mov r13d, dword [rbp + 0x5e0]
mov qword [rsp + 0x6d8], rbx
cmp r15, 0xffffffffffffffff
je 0x140018d81
cmp byte [rsp + 0x54], 0
mov r8d, 0xffffffff
mov eax, dword [rsp + 0x58]
movzx ecx, byte [rsp + 0x55]
cmovne eax, r10d
mov edx, dword [rbp + 0x160]
test cl, cl
mov dword [rsp + 0x58], eax
mov eax, dword [rbp + 0x368]
cmovne edx, r10d
cmp byte [rsp + 0x56], 0
mov dword [rbp + 0x160], edx
cmovne eax, r10d
mov dword [rsp + 0x50], r8d
mov dword [rbp + 0x368], eax
test cl, cl
jne 0x140018be8
mov edx, r10d
mov byte [rsp + 0x55], 1
mov dword [rbp + 0x160], edx
mov eax, r10d
test edx, edx
je 0x140018c05
lea rcx, [rbp + 0x168]
cmp qword [rcx], rdi
je 0x140018c05
inc eax
add rcx, 8
cmp eax, edx
jb 0x140018bf6
cmp eax, edx
jne 0x140018c23
cmp edx, 0x40
jae 0x140018c23
mov ecx, eax
mov qword [rbp + rcx*8 + 0x168], rdi
inc dword [rbp + 0x160]
mov r8d, dword [rsp + 0x50]
cmp edi, r8d
mov ebx, r13d
mov eax, r13d
cmovg r8d, edi
mov dword [rsp + 0x50], r8d
test r13d, r13d
jle 0x140018cfd
call qword [sym.imp.KERNEL32.dll_GetTickCount]
test sil, sil
je 0x140018c64
mov rbx, qword [rsp + 0x38]
add ebx, r13d
sub ebx, eax
jns 0x140018c6e
mov ecx, reloc.WS2_32.dll_ntohs
call fcn.1400190a0
jmp 0x140018d6b
mov eax, eax
mov sil, 1
mov qword [rsp + 0x38], rax
xor r10d, r10d
movzx eax, byte [0x14006c6e8]
lea rcx, [rsp + 0x40]
test al, al
nop
mov eax, 0x64
cmovne ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3e8
mov dword [rsp + 0x40], edx
sub ebx, eax
imul eax, ebx, 0x3e8
mov dword [rsp + 0x44], eax
cmp byte [rsp + 0x56], 0
lea r9, [rbp + 0x368]
mov qword [rsp + 0x20], rcx
lea r8, [rbp + 0x160]
cmove r9, r10
lea rdx, [rsp + 0x58]
cmp byte [rsp + 0x55], 0
cmove r8, r10
cmp byte [rsp + 0x54], 0
cmove rdx, r10
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x140018d6b
test eax, eax
jne 0x140018d09
lea ecx, [rax + 0xf]
call fcn.1400190a0
jmp 0x140018d6b
mov rcx, r10
test eax, eax
js 0x140018caf
jmp 0x140018c71
jle 0x140018d6b
cmp byte [rsp + 0x55], 0
je 0x140018d6b
lea rdx, [rbp + 0x160]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x140018d6b
mov ebx, dword [rsp + 0x34]
mov r8d, r14d
mov ecx, ebx
mov rdx, r12
and ecx, 1
mov r9d, ecx
or r9d, 2
test bl, 2
cmove r9d, ecx
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x140018d61
cdqe
cmp rax, 0xffffffffffffffff
je 0x140018d61
add r12, rax
sub r14, rax
jmp 0x140018d72
call fcn.140018dd0
cmp eax, 0x10
je 0x140018d72
mov r15, 0xffffffffffffffff
mov r10d, 0
test r14, r14
jne 0x140018b84
mov rbx, qword [rsp + 0x6d8]
mov r13, qword [rsp + 0x688]
mov rsi, qword [rsp + 0x690]
mov rax, r15
mov r15, qword [rsp + 0x680]
mov rcx, qword [rbp + 0x570]
xor rcx, rsp
call fcn.140029f00
add rsp, 0x698
pop r14
pop r12
pop rdi
pop rbp
ret