Function at 0x1401796e0
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 0x1401797cd
mov r10d, 4
sub r10, rax
mov eax, r8d
cmp r10, rdx
cmova r10, rdx
test r10, r10
je 0x1401797c7
cmp r10, 0x40
jb 0x1401797b0
movdqa xmm2, xmmword [0x140210e50]
mov rdx, r10
movdqa xmm3, xmmword [0x140210e10]
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 0x140179740
cmp rax, r10
jae 0x1401797c7
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 0x1401797b0
sub r9, r10
add r11, rax
mov r10, r9
shr r10, 2
test r10, r10
je 0x140179984
cmp r10, 8
jb 0x140179940
movdqa xmm4, xmmword [0x140210e50]
mov rax, r10
movdqa xmm5, xmmword [0x140210e00]
and rax, 0xfffffffffffffff8
movaps xmmword [rsp + 0x60], xmm6
movdqa xmm6, xmmword [0x140210e60]
movaps xmmword [rsp + 0x50], xmm7
movdqa xmm7, xmmword [0x140210d70]
movaps xmmword [rsp + 0x40], xmm8
movdqa xmm8, xmmword [0x140210d80]
movaps xmmword [rsp + 0x30], xmm9
movdqa xmm9, xmmword [0x140210dc0]
movaps xmmword [rsp + 0x20], xmm10
movdqa xmm10, xmmword [0x140210dd0]
movaps xmmword [rsp + 0x10], xmm11
movdqa xmm11, xmmword [str.TTTT]
movaps xmmword [rsp], xmm12
movdqa xmm12, xmmword [0x140210d60]
movdqu xmm0, xmmword [r11 + r8*4]
movdqa xmm3, xmm4
pxor xmm3, xmm0
movdqa xmm2, xmm3
movdqa xmm0, xmm3
movdqa xmm1, xmm3
paddd xmm0, xmm5
pand xmm0, xmm6
paddd xmm3, xmm11
pand xmm3, xmm12
paddd xmm2, xmm7
pand xmm2, xmm8
paddd xmm1, xmm9
por xmm2, xmm0
pand xmm1, xmm10
por xmm2, xmm1
movdqa xmm0, xmm5
por xmm2, xmm3
movdqa xmm1, xmm9
movdqu xmmword [r11 + r8*4], xmm2
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 0x140179862
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 0x140179984
nop
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 0x140179940
lea rcx, [r11 + r8*4]
and r9d, 3
jbe 0x1401799a4
nop
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
xor al, 0xa5
add al, 0x54
mov byte [rcx - 1], al
sub r9, 1
jne 0x140179990
mov rax, rbx
add rsp, 0x70
pop rbx
ret