Function at 0x14010f660
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
movzx ebp, byte [rcx]
mov rdi, r9
mov rax, qword [rcx + 0x28]
mov r14, r8
mov r13, qword [rcx + 0x30]
mov rsi, rdx
mov byte [rsp + 0x80], bpl
mov rbx, rcx
mov qword [rsp + 0x98], rax
test bpl, 0x40
jne 0x14010f6ae
lea rdx, [rcx + 0x10]
mov r8, r13
call rax
inc qword [rbx + 0x20]
xor r15d, r15d
movzx r8d, bpl
and r8d, 7
mov r12d, sendto
sub r12d, r8d
mov byte [rbx], r8b
mov ecx, r15d
cmp r12d, 0xf
jae 0x14010f6f7
mov edx, r12d
add rdx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
mov byte [rdx], r15b
lea rdx, [rdx + 1]
or rcx, rax
shl rcx, 8
sub r8, 1
jne 0x14010f6e0
movzx eax, byte [rbx + 0xf]
or rcx, rax
mov byte [rbx + 0xf], 1
cmp rcx, rdi
je 0x14010f70f
or eax, 0xffffffff
jmp 0x14010f902
lea rax, [rdi + 0xf]
or rax, 8
shr rax, 3
add qword [rbx + 0x20], rax
movabs rax, 0x2000000000000000
cmp qword [rbx + 0x20], rax
jbe 0x14010f739
mov eax, 0xfffffffe
jmp 0x14010f902
mov rbp, rdi
shr rbp, 4
test rbp, rbp
je 0x14010f788
lea rax, [rbx + 0x10]
mov r9, r13
mov qword [rsp + 0x28], rax
mov r8, rbp
mov rdx, r14
mov qword [rsp + 0x20], rbx
mov rcx, rsi
call qword [rsp + 0xa0]
shl rbp, 4
add rsi, rbp
add r14, rbp
sub rdi, rbp
je 0x14010f8b7
shr rbp, 4
mov rcx, rbx
mov rdx, rbp
call fcn.14010fa40
test rdi, rdi
je 0x14010f8b7
mov edx, r15d
mov rcx, r15
nop word [rax + rax]
movzx eax, byte [rcx + rsi]
inc edx
xor byte [rcx + rbx + 0x10], al
mov ecx, edx
cmp rcx, rdi
jb 0x14010f7a0
mov rbp, qword [rsp + 0x98]
lea rcx, [rbx + 0x10]
mov rdx, rcx
mov r8, r13
call rbp
mov r8, r13
lea rdx, [rsp + 0x30]
mov rcx, rbx
call rbp
mov edx, r15d
cmp rdi, 0x40
jb 0x14010f892
lea eax, [rdi - 1]
mov ecx, eax
lea r8, [rax + r14]
lea rax, [rsp + 0x30]
add rax, rcx
cmp r14, rax
ja 0x14010f803
lea rax, [rsp + 0x30]
cmp r8, rax
jae 0x14010f892
lea rax, [rcx + rsi]
cmp r14, rax
ja 0x14010f815
cmp r8, rsi
jae 0x14010f892
mov r8, rdi
and r8, 0xffffffffffffffc0
mov r9d, 0x20
movdqu xmm0, xmmword [rsp + r15 + 0x30]
lea eax, [r9 - 0x10]
add edx, 0x40
movdqu xmm1, xmmword [r15 + rsi]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsp + rax + 0x30]
movdqu xmmword [r15 + r14], xmm1
mov r15d, edx
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
mov eax, r9d
movdqu xmm0, xmmword [rsp + rax + 0x30]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
lea eax, [r9 + 0x10]
add r9d, 0x40
movdqu xmm1, xmmword [rax + rsi]
movdqu xmm0, xmmword [rsp + rax + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
cmp r15, r8
jb 0x14010f822
mov ecx, edx
cmp rcx, rdi
jae 0x14010f8bf
nop dword [rax]
movzx eax, byte [rcx + rsi]
inc edx
xor al, byte [rsp + rcx + 0x30]
mov byte [rcx + r14], al
mov ecx, edx
cmp rcx, rdi
jb 0x14010f8a0
jmp 0x14010f8bf
mov rbp, qword [rsp + 0x98]
cmp r12d, 0x10
jae 0x14010f8d7
mov ecx, reloc.WS2_32.dll_recv
mov edi, r12d
sub ecx, r12d
add rdi, rbx
xor eax, eax
rep stosb byte [rdi], al
mov r8, r13
lea rdx, [rsp + 0x30]
mov rcx, rbx
call rbp
mov rax, qword [rsp + 0x30]
xor qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x38]
xor qword [rbx + 0x18], rax
movzx eax, byte [rsp + 0x80]
mov byte [rbx], al
xor eax, eax
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret