Function at 0x140013890
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x70
mov rax, rcx
xor r8d, r8d
mov rbx, rdx
mov r11, rcx
mov r9, rdx
and eax, 3
je 0x14001397d
mov r10d, 4
sub r10, rax
mov eax, r8d
cmp r10, rdx
cmova r10, rdx
test r10, r10
je 0x140013977
cmp r10, 0x40
jb 0x140013960
movdqa xmm2, xmmword [0x1401b5050]
mov rdx, r10
movdqa xmm3, xmmword [0x1401b4fb0]
and rdx, 0xffffffffffffffc0
add rcx, 0x20
nop
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
add rax, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
paddb xmm1, xmm3
movdqu xmmword [rcx - 0x60], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx - 0x50]
pxor xmm1, xmm0
paddb xmm1, xmm3
movdqu xmmword [rcx - 0x50], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx - 0x40]
pxor xmm1, xmm0
paddb xmm1, xmm3
movdqu xmmword [rcx - 0x40], xmm1
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm0, xmm2
paddb xmm0, xmm3
movdqu xmmword [rcx - 0x30], xmm0
cmp rax, rdx
jb 0x1400138f0
cmp rax, r10
jae 0x140013977
nop word [rax + rax]
movzx ecx, byte [rax + r11]
xor cl, 0xa5
add cl, 0x54
mov byte [rax + r11], cl
inc rax
cmp rax, r10
jb 0x140013960
sub r9, r10
add r11, rax
mov r10, r9
shr r10, 2
test r10, r10
je 0x140013b44
cmp r10, 8
jb 0x140013b00
movdqa xmm4, xmmword [0x1401b5050]
mov rax, r10
movdqa xmm5, xmmword [0x1401b4fa0]
and rax, 0xfffffffffffffff8
movaps xmmword [rsp + 0x60], xmm6
movdqa xmm6, xmmword [0x1401b50c0]
movaps xmmword [rsp + 0x50], xmm7
movdqa xmm7, xmmword [0x1401b4e90]
movaps xmmword [rsp + 0x40], xmm8
movdqa xmm8, xmmword [0x1401b4ea0]
movaps xmmword [rsp + 0x30], xmm9
movdqa xmm9, xmmword [0x1401b4ec0]
movaps xmmword [rsp + 0x20], xmm10
movdqa xmm10, xmmword [0x1401b4ed0]
movaps xmmword [rsp + 0x10], xmm11
movdqa xmm11, xmmword [str.TTTT]
movaps xmmword [rsp], xmm12
movdqa xmm12, xmmword [0x1401b4e60]
movdqu xmm0, xmmword [r11 + r8*4]
movdqa xmm2, xmm4
movdqa xmm3, xmm7
pxor xmm2, xmm0
movdqa xmm1, xmm9
paddd xmm3, xmm2
paddd xmm1, xmm2
pand xmm3, xmm8
pand xmm1, xmm10
movdqa xmm0, xmm5
paddd xmm0, xmm2
pand xmm0, xmm6
por xmm3, xmm0
movdqa xmm0, xmm11
por xmm3, xmm1
paddd xmm0, xmm2
pand xmm0, xmm12
movdqa xmm1, xmm9
por xmm3, xmm0
movdqa xmm0, xmm5
movdqu xmmword [r11 + r8*4], xmm3
movdqu xmm2, xmmword [r11 + r8*4 + 0x10]
movdqa xmm3, xmm7
pxor xmm2, xmm4
paddd xmm3, xmm2
paddd xmm0, xmm2
pand xmm0, xmm6
pand xmm3, xmm8
por xmm3, xmm0
paddd xmm1, xmm2
movdqa xmm0, xmm11
pand xmm1, xmm10
paddd xmm0, xmm2
por xmm3, xmm1
pand xmm0, xmm12
por xmm3, xmm0
movdqu xmmword [r11 + r8*4 + 0x10], xmm3
add r8, 8
cmp r8, rax
jb 0x140013a12
movaps xmm12, xmmword [rsp]
movaps xmm11, xmmword [rsp + 0x10]
movaps xmm10, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
cmp r8, r10
jae 0x140013b44
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [r11 + r8*4]
xor ecx, 0xa5a5a5a5
lea edx, [rcx + 0x54000000]
and edx, 0xff000000
lea eax, [rcx + 0x5400]
and eax, 0xff00
or edx, eax
lea eax, [rcx + 0x540000]
and eax, 0xff0000
or edx, eax
lea eax, [rcx + 0x54]
movzx ecx, al
or edx, ecx
mov dword [r11 + r8*4], edx
inc r8
cmp r8, r10
jb 0x140013b00
lea rcx, [r11 + r8*4]
and r9d, 3
jbe 0x140013b64
nop
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
xor al, 0xa5
add al, 0x54
mov byte [rcx - 1], al
sub r9, 1
jne 0x140013b50
mov rax, rbx
add rsp, 0x70
pop rbx
ret