Function at 0x140051550
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x60], xmm6
mov rsi, r8
mov rax, qword [0x14039de68]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp edx, 0x100
je 0x140051846
cmp edx, 0xc0
je 0x140051660
mov edi, 1
cmp edx, 0x80
jne 0x14005181c
mov dword [rsi + 0xf0], 0xa
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rcx]
movups xmmword [rsi], xmm0
movdqa xmm6, xmmword [rsp + 0x40]
add rsi, 0x10
xor r14d, r14d
lea rdi, [rsp + 0x30]
lea rbx, [rsp + 0x40]
lea r15, [0x1402a9857]
nop dword [rax]
mov rcx, rdi
mov rdx, rbx
call fcn.1400821b0
movzx eax, byte [r14 + r15]
movd xmm0, eax
pxor xmm0, xmm6
movdqa xmm1, xmmword [rsp + 0x30]
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 xmm6, xmm1
pslldq xmm6, 0xc
pxor xmm6, xmm2
pxor xmm6, xmm1
movdqa xmmword [rsp + 0x40], xmm6
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
inc r14
add rsi, 0x10
cmp r14, 0xa
jne 0x1400515e0
jmp 0x14005181a
mov dword [rsi + 0xf0], ntohs
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rcx]
movups xmmword [rsi], xmm0
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
add rsi, 0x30
lea rdi, [rsp + 0x30]
lea rax, [rsp + 0x40]
xor r15d, r15d
lea rbx, [rsp + 0x20]
lea r12, [0x1402a9857]
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x1402a8d40]
nop word cs:[rax + rax]
mov r14, rax
mov rcx, rbx
mov rdx, rdi
call fcn.1400821b0
movzx eax, byte [r12 + r15*2]
movd xmm0, eax
movdqa xmm1, xmmword [r14]
pxor xmm0, xmm1
pslldq xmm0, 8
por xmm0, xmmword [rdi]
movdqa xmmword [rdi], xmm0
movdqa xmm2, xmmword [rsp + 0x20]
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 [rdi], 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 [r14], xmm1
movups xmm0, xmmword [rdi]
movups xmmword [rsi - 0x20], xmm0
movups xmm0, xmmword [r14]
movups xmmword [rsi - 0x10], xmm0
mov rcx, rbx
mov rdx, r14
call fcn.1400821b0
movzx eax, byte [r12 + r15*2 + 1]
movaps xmm1, xmmword [rdi]
movaps xmm0, xmmword [r14]
shufps xmm1, xmm0, 0x4e
movd xmm2, eax
pxor xmm2, xmm1
movdqa xmmword [rdi], xmm2
movdqa xmm1, xmmword [rsp + 0x20]
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 [rdi], xmm2
psrldq xmm0, 8
psrldq xmm2, 0xc
pxor xmm2, xmm0
movdqa xmm0, xmm2
psllq xmm0, 0x20
pxor xmm0, xmm2
movdqa xmmword [r14], xmm0
movups xmm0, xmmword [rdi]
movups xmmword [rsi], xmm0
inc r15
add rsi, 0x30
mov rax, rdi
mov rdi, r14
cmp r15, 4
jne 0x1400516c0
xor edi, edi
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140259980
mov eax, edi
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov dword [rsi + 0xf0], shutdown
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rcx]
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsi + 0x10], xmm0
movdqa xmm7, xmmword [rsp + 0x40]
mov r15d, 0x30
lea r12, [0x1402a9857]
movdqa xmm6, xmmword [rsp + 0x30]
lea rdi, [rsp + 0x20]
lea rbx, [rsp + 0x30]
lea r14, [rsp + 0x40]
nop word [rax + rax]
mov rcx, rdi
mov rdx, rbx
call fcn.1400821b0
movzx eax, byte [r12]
movd xmm0, eax
pxor xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x20]
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
movdqa xmmword [rsp + 0x40], xmm7
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi + r15 - 0x10], xmm0
cmp r15, 0xf0
je 0x14005181a
mov rcx, rdi
mov rdx, r14
call fcn.1400821b0
movdqa xmm0, xmmword [rsp + 0x20]
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
movdqa xmmword [rsp + 0x30], xmm6
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi + r15], xmm0
add r15, 0x20
inc r12
jmp 0x1400518a0