Function at 0x140050250
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
movdqa xmmword [rsp + 0xc0], xmm7
movaps xmmword [rsp + 0xb0], xmm6
mov rsi, r8
mov rax, qword [0x14039bf08]
xor rax, rsp
mov qword [rsp + 0xa8], rax
cmp edx, 0x100
je 0x14005036f
cmp edx, 0xc0
je 0x140050489
mov edi, 1
cmp edx, 0x80
jne 0x140050679
mov dword [rsi + 0xf0], 0xa
movdqu xmm6, xmmword [rcx]
movdqu xmmword [rsi], xmm6
add rsi, 0x10
xor edi, edi
lea rbx, [rsp + 0x90]
lea r14, [rsp + 0x20]
lea r15, [0x1402decb0]
xor r12d, r12d
nop word cs:[rax + rax]
movdqa xmmword [rsp + 0x20], xmm6
mov rcx, rbx
mov rdx, r14
call fcn.140081510
movzx eax, byte [r12 + r15]
movd xmm0, eax
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm2, xmm1
psrld xmm2, 8
pslld xmm1, 0x18
por xmm1, xmm2
psrldq xmm1, 0xc
pxor xmm0, xmm6
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
movdqa xmm2, xmm0
pslldq xmm2, 8
pxor xmm2, xmm1
movdqa xmm6, xmm0
pslldq xmm6, 0xc
pxor xmm6, xmm2
pxor xmm6, xmm0
movdqu xmmword [rsi], xmm6
inc r12
add rsi, 0x10
cmp r12, 0xa
jne 0x1400502f0
jmp 0x140050679
mov dword [rsi + 0xf0], setsockopt
movdqu xmm7, xmmword [rcx]
movdqu xmmword [rsi], xmm7
movdqu xmm6, xmmword [rcx + 0x10]
movdqu xmmword [rsi + 0x10], xmm6
mov r15d, 0x30
lea r12, [0x1402decb0]
lea rdi, [rsp + 0x90]
lea rbx, [rsp + 0x60]
lea r14, [rsp + 0x50]
nop word [rax + rax]
movdqa xmmword [rsp + 0x60], xmm6
mov rcx, rdi
mov rdx, rbx
call fcn.140081510
movzx eax, byte [r12]
movd xmm0, eax
pxor xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm2, xmm1
psrld xmm2, 8
pslld xmm1, 0x18
por xmm1, xmm2
psrldq xmm1, 0xc
pxor xmm1, xmm0
movdqa xmm0, xmm1
pslldq xmm0, 4
movdqa xmm2, xmm1
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm7, xmm1
pslldq xmm7, 0xc
pxor xmm7, xmm2
pxor xmm7, xmm1
movdqu xmmword [rsi + r15 - 0x10], xmm7
cmp r15, 0xf0
je 0x140050677
movdqa xmmword [rsp + 0x50], xmm7
mov rcx, rdi
mov rdx, r14
call fcn.140081510
movdqa xmm0, xmmword [rsp + 0x90]
psrldq xmm0, 0xc
pxor xmm6, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 4
movdqa xmm1, xmm6
pslldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm6, xmm0
movdqu xmmword [rsi + r15], xmm6
add r15, 0x20
inc r12
jmp 0x1400503b0
mov dword [rsi + 0xf0], setsockopt
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x90], xmm0
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rsi], xmm0
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
add rsi, 0x30
lea r15, [rsp + 0x80]
lea rax, [rsp + 0x90]
xor r12d, r12d
lea rdi, [rsp + 0x70]
lea rbx, [rsp + 0x40]
lea r13, [0x1402decb0]
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x1402de190]
lea r14, [rsp + 0x30]
nop word cs:[rax + rax]
mov rbp, rax
movaps xmm0, xmmword [r15]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, rdi
mov rdx, rbx
call fcn.140081510
movzx eax, byte [r13 + r12*2]
movd xmm0, eax
movdqa xmm1, xmmword [rbp]
pxor xmm0, xmm1
pslldq xmm0, 8
por xmm0, xmmword [r15]
movdqa xmmword [r15], xmm0
movdqa xmm2, xmmword [rsp + 0x70]
movdqa xmm3, xmm2
psrld xmm3, 8
pslld xmm2, 0x18
por xmm2, xmm3
shufps xmm2, xmm6, 0x31
pxor xmm3, xmm3
shufps xmm3, xmm2, 0x84
xorps xmm3, xmm0
pshufd xmm2, xmm3, 0xaa
pand xmm2, xmm7
pxor xmm2, xmm3
movdqa xmmword [r15], xmm2
shufps xmm1, xmm0, 0x4e
psrldq xmm2, 0xc
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm2
pslldq xmm2, 4
pslldq xmm0, 8
pxor xmm0, xmm2
pxor xmm1, xmm0
movdqa xmmword [rbp], xmm1
movups xmm0, xmmword [r15]
movups xmmword [rsi - 0x20], xmm0
movups xmm0, xmmword [rbp]
movups xmmword [rsi - 0x10], xmm0
movaps xmm0, xmmword [rbp]
movaps xmmword [rsp + 0x30], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.140081510
movzx eax, byte [r13 + r12*2 + 1]
movaps xmm1, xmmword [r15]
movaps xmm0, xmmword [rbp]
shufps xmm1, xmm0, 0x4e
movd xmm2, eax
pxor xmm2, xmm1
movdqa xmmword [r15], xmm2
movdqa xmm1, xmmword [rsp + 0x70]
movdqa xmm3, xmm1
psrld xmm3, 8
pslld xmm1, 0x18
por xmm1, xmm3
psrldq xmm1, 0xc
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
movdqa xmm3, xmm1
pslldq xmm3, 8
pxor xmm3, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 0xc
pxor xmm2, xmm3
pxor xmm2, xmm1
movdqa xmmword [r15], xmm2
psrldq xmm0, 8
psrldq xmm2, 0xc
pxor xmm2, xmm0
movdqa xmm0, xmm2
psllq xmm0, 0x20
pxor xmm0, xmm2
movdqa xmmword [rbp], xmm0
movdqu xmm0, xmmword [r15]
movdqu xmmword [rsi], xmm0
inc r12
add rsi, 0x30
mov rax, r15
mov r15, rbp
cmp r12, 4
jne 0x140050500
xor edi, edi
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140263300
mov eax, edi
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret