Function at 0x14011c000
Capabilities:
Send data
Send data on socket

Disassembly:
mov r11, rsp
push rbp
push r13
sub rsp, 0x68
mov rax, qword [0x1402dc040]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov r13, qword [r8 + 0xe8]
mov rbp, r8
mov qword [r11 - 0x18], rsi
xor esi, esi
mov qword [r11 - 0x28], r12
mov r12d, ecx
mov qword [r11 - 0x38], r15
xor r15d, r15d
test ecx, ecx
jne 0x14011c291
mov qword [r11 - 0x20], rdi
mov rdi, qword [r8 + 0x20]
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x30], r14
movaps xmmword [rsp + 0x30], xmm6
test rdi, rdi
je 0x14011c264
movdqa xmm6, xmmword [0x1402b65b0]
nop word [rax + rax]
mov rax, qword [rdi + 0x18]
lea r14, [rdi + 0x18]
test rax, rax
je 0x14011c093
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], 0
jne 0x14011c084
inc rbx
jmp 0x14011c095
xor ebx, ebx
cmp dword [rdi + 4], 2
jne 0x14011c252
cmp qword [rdi + 0x20], 0
je 0x14011c252
cmp qword [rdi + 0x10], 0x10
jb 0x14011c252
lea rcx, [rbx + 0x40]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rax
test rax, rax
je 0x14011c2dd
mov ecx, dword [rdi]
lea rdx, [rax + 0x30]
mov dword [rax], ecx
lea r9, [rax + 0x18]
mov ecx, dword [rdi + 4]
mov dword [rax + 4], ecx
mov ecx, dword [rdi + 8]
mov dword [rax + 8], ecx
mov ecx, dword [rdi + 0xc]
mov dword [rax + 0xc], ecx
mov dword [rax + reloc.WS2_32.dll_recv], 0x10
mov qword [r9], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x20], rdx
mov rax, qword [rdi + 0x20]
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
test rbx, rbx
je 0x14011c23f
add rdx, 0x10
xor eax, eax
mov qword [r9], rdx
test rbx, rbx
je 0x14011c237
cmp rbx, 4
jb 0x14011c220
mov r11, qword [r14]
lea r10, [rdx - 1]
lea rcx, [rbx - 1]
add r10, rbx
lea rcx, [r11 + rcx*2]
cmp rdx, rcx
ja 0x14011c152
cmp r10, r11
jae 0x14011c220
cmp rdx, r14
ja 0x14011c160
cmp r10, r14
jae 0x14011c220
cmp rdx, r9
ja 0x14011c16e
cmp r10, r9
jae 0x14011c220
cmp rbx, 0x20
jb 0x14011c1f2
mov rcx, rbx
mov r9, rbx
and ecx, 0x1f
sub r9, rcx
mov r10d, 0x20
nop word [rax + rax]
movdqu xmm0, xmmword [r10 + r11 - 0x20]
movdqu xmm1, xmmword [r10 + r11 - 0x10]
lea r10, [r10 + 0x40]
andps xmm0, xmm6
andps xmm1, xmm6
packuswb xmm0, xmm0
movq qword [rdx + rax], xmm0
movdqu xmm0, xmmword [r10 + r11 - 0x40]
packuswb xmm1, xmm1
movq qword [rdx + rax + 8], xmm1
andps xmm0, xmm6
movdqu xmm1, xmmword [r10 + r11 - 0x30]
packuswb xmm0, xmm0
movq qword [rdx + rax + 0x10], xmm0
andps xmm1, xmm6
packuswb xmm1, xmm1
movq qword [rdx + rax + 0x18], xmm1
add rax, 0x20
cmp rax, r9
jb 0x14011c190
cmp rcx, 4
jb 0x14011c21b
mov rdx, qword [r14]
mov rcx, rbx
mov r9, qword [r8 + 0x18]
and rcx, 0xfffffffffffffffc
movq xmm0, qword [rdx + rax*2]
andps xmm0, xmm6
packuswb xmm0, xmm0
movd dword [r9 + rax], xmm0
add rax, 4
cmp rax, rcx
jb 0x14011c200
cmp rax, rbx
jae 0x14011c237
mov rcx, qword [rdi + 0x18]
mov rdx, qword [r8 + 0x18]
movzx ecx, byte [rcx + rax*2]
mov byte [rax + rdx], cl
inc rax
cmp rax, rbx
jb 0x14011c220
mov rax, qword [r8 + 0x18]
mov byte [rbx + rax], 0
test rsi, rsi
cmove rsi, r8
test r15, r15
je 0x14011c24f
mov qword [r15 + 0x28], r8
mov r15, r8
mov rdi, qword [rdi + 0x40]
test rdi, rdi
jne 0x14011c070
test rsi, rsi
jne 0x14011c273
mov r12d, 0x2af9
mov ecx, r12d
call qword [sym.imp.WS2_32.dll_WSASetLastError]
movaps xmm6, xmmword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov qword [rbp + 0xb0], rsi
mov rcx, qword [rbp + 0x20]
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
test rcx, rcx
je 0x14011c2b2
call qword [0x1402de860]
mov qword [rbp + 0x20], 0
test r12d, r12d
je 0x14011c313
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x14011c30c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp + 0xa8], eax
test eax, eax
jne 0x14011c313
mov dword [rbp + 0xa8], 8
jmp 0x14011c313
mov r12d, 8
test rsi, rsi
je 0x14011c305
nop dword [rax + rax]
mov rbx, qword [rsi + 0x28]
mov rcx, rsi
call qword [fcn.14016f1de]
mov rsi, rbx
test rbx, rbx
jne 0x14011c2f0
xor esi, esi
jmp 0x14011c273
mov dword [rbp + 0xa8], r12d
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [rbp + 0x80], 0
mov r12, qword [rsp + 0x50]
je 0x14011c348
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rbp
call fcn.14011be60
mov rcx, r13
call qword [fcn.14016f1de]
jmp 0x14011c3a1
mov rcx, qword [rbp + 0xa0]
cmp rcx, 0xffffffffffffffff
je 0x14011c37e
xor r9d, r9d
mov byte [rsp + 0x20], 1
mov r8d, 1
lea rdx, [rsp + 0x20]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x14011c37e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp + 0xa8], eax
mov rcx, qword [rbp + 0x78]
mov dword [rbp + 0x80], 1
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [r13]
test rcx, rcx
je 0x14011c3a1
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14016dfe0
add rsp, 0x68
pop r13
pop rbp
ret