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

Disassembly:
mov r11, rsp
push rbp
push r13
sub rsp, 0x68
mov rax, qword [0x1402e1040]
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 0x14011c801
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 0x14011c7d4
movdqa xmm6, xmmword [0x1402bb8c0]
nop word [rax + rax]
mov rax, qword [rdi + 0x18]
lea r14, [rdi + 0x18]
test rax, rax
je 0x14011c603
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], 0
jne 0x14011c5f4
inc rbx
jmp 0x14011c605
xor ebx, ebx
cmp dword [rdi + 4], 2
jne 0x14011c7c2
cmp qword [rdi + 0x20], 0
je 0x14011c7c2
cmp qword [rdi + 0x10], 0x10
jb 0x14011c7c2
lea rcx, [rbx + 0x40]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rax
test rax, rax
je 0x14011c84d
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 0x14011c7af
add rdx, 0x10
xor eax, eax
mov qword [r9], rdx
test rbx, rbx
je 0x14011c7a7
cmp rbx, 4
jb 0x14011c790
mov r11, qword [r14]
lea r10, [rdx - 1]
lea rcx, [rbx - 1]
add r10, rbx
lea rcx, [r11 + rcx*2]
cmp rdx, rcx
ja 0x14011c6c2
cmp r10, r11
jae 0x14011c790
cmp rdx, r14
ja 0x14011c6d0
cmp r10, r14
jae 0x14011c790
cmp rdx, r9
ja 0x14011c6de
cmp r10, r9
jae 0x14011c790
cmp rbx, 0x20
jb 0x14011c762
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 0x14011c700
cmp rcx, 4
jb 0x14011c78b
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 0x14011c770
cmp rax, rbx
jae 0x14011c7a7
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 0x14011c790
mov rax, qword [r8 + 0x18]
mov byte [rbx + rax], 0
test rsi, rsi
cmove rsi, r8
test r15, r15
je 0x14011c7bf
mov qword [r15 + 0x28], r8
mov r15, r8
mov rdi, qword [rdi + 0x40]
test rdi, rdi
jne 0x14011c5e0
test rsi, rsi
jne 0x14011c7e3
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 0x14011c822
call qword [0x1402e3680]
mov qword [rbp + 0x20], 0
test r12d, r12d
je 0x14011c883
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x14011c87c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp + 0xa8], eax
test eax, eax
jne 0x14011c883
mov dword [rbp + 0xa8], 8
jmp 0x14011c883
mov r12d, 8
test rsi, rsi
je 0x14011c875
nop dword [rax + rax]
mov rbx, qword [rsi + 0x28]
mov rcx, rsi
call qword [0x1402e1138]
mov rsi, rbx
test rbx, rbx
jne 0x14011c860
xor esi, esi
jmp 0x14011c7e3
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 0x14011c8b8
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rbp
call fcn.14011c3d0
mov rcx, r13
call qword [0x1402e1138]
jmp 0x14011c911
mov rcx, qword [rbp + 0xa0]
cmp rcx, 0xffffffffffffffff
je 0x14011c8ee
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 0x14011c8ee
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 0x14011c911
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140171bd0
add rsp, 0x68
pop r13
pop rbp
ret