Function at 0x1401525ad
Capabilities:
Encode data using xor

Disassembly:
cmp r8d, 0x80
jg 0x14015284f
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rsi, qword [rsp + 0x90]
mov rax, qword [rsp + 0xa0]
mov ebp, r8d
mov rdi, rdx
mov rbx, rcx
mov r8, r9
movups xmm0, xmmword [rsi]
mov rdx, rsi
mov rcx, rsi
movups xmmword [rsp + 0x20], xmm0
call rax
lea eax, [rbp + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp dword [rsp + 0x98], 0
movsxd r10, eax
mov r9, r10
je 0x140152650
test eax, eax
jle 0x140152760
lea r8, [rsp + 0x30]
mov rdx, rsi
sub r8, rbx
sub rdx, rbx
sub rdi, rbx
nop dword [rax]
movzx ecx, byte [rdx + rbx]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
xor ecx, eax
mov byte [r8 + rbx - 1], cl
mov byte [rdi + rbx - 1], cl
dec r9
jne 0x140152630
jmp 0x140152760
xor r8d, r8d
test eax, eax
jle 0x140152711
cmp r10d, 0x10
jb 0x140152711
lea edx, [r10 - 1]
lea r11, [rsp + 0x20]
lea eax, [rdx + 0x10]
movsxd rcx, eax
movsxd rax, edx
add r11, rcx
lea rdx, [rax + rsi]
lea rcx, [rsp + 0x30]
cmp rcx, rdx
ja 0x140152691
cmp r11, rsi
jae 0x140152711
mov qword [rsp + 0x70], r14
lea r14, [rsp + 0x30]
lea rcx, [rax + rdi]
cmp r14, rcx
mov r14, qword [rsp + 0x70]
ja 0x1401526ae
cmp r11, rdi
jae 0x140152711
cmp rdi, rdx
ja 0x1401526b8
cmp rcx, rsi
jae 0x140152711
add rax, rbx
cmp rdi, rax
ja 0x1401526c5
cmp rcx, rbx
jae 0x140152711
mov eax, r10d
and eax, 0x8000000f
jge 0x1401526d6
dec eax
or eax, 0xfffffff0
inc eax
sub r10d, eax
nop dword [rax]
lea edx, [r8 + 0x10]
lea rcx, [rsp + 0x20]
movsxd rax, edx
add rcx, rax
movsxd rax, r8d
mov r8d, edx
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
movdqu xmmword [rcx], xmm0
cmp edx, r10d
jl 0x1401526e0
movsxd r8, r8d
cmp r8, r9
jge 0x140152760
lea rax, [rsp + 0x30]
mov r10, rsi
sub rbx, rax
lea rax, [rsp + 0x30]
sub r10, rax
lea rax, [rsp + 0x30]
sub rdi, rax
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rsp + 0x30]
add rdx, r8
inc r8
movzx ecx, byte [rbx + rdx]
movzx eax, byte [rdx + r10]
xor al, cl
mov byte [rdx], cl
mov byte [rdx + rdi], al
cmp r8, r9
jl 0x140152740
mov eax, ebp
cdq
and edx, 7
add eax, edx
mov ecx, eax
and eax, 7
sub eax, edx
sar ecx, 3
mov r11d, eax
test eax, eax
jne 0x140152789
movsxd rax, ecx
movups xmm0, xmmword [rsp + rax + 0x20]
movups xmmword [rsi], xmm0
jmp 0x140152833
movsxd rcx, ecx
mov ebx, 8
lea rbp, [rsp + 0x20]
sub ebx, eax
mov rax, rcx
lea r10, [rsp + 0x21]
sub rax, rsi
sub rsi, rcx
add r10, rcx
add rbp, rax
lea rax, [rsp + 0x21]
mov edi, 4
sub rsi, rax
nop dword [rax]
movzx r9d, byte [r10]
lea r8, [rsi + r10]
mov ecx, r11d
movzx edx, byte [r8 + rbp]
movzx eax, r9b
lea r10, [r10 + 4]
shl dl, cl
movzx ecx, bl
shr al, cl
or dl, al
mov byte [r8], dl
movzx r8d, byte [r10 - 3]
movzx edx, byte [r10 - 2]
movzx eax, r8b
shr al, cl
mov ecx, r11d
shl r9b, cl
movzx ecx, bl
or al, r9b
mov byte [rsi + r10 - 3], al
movzx eax, dl
shr al, cl
mov ecx, r11d
shl r8b, cl
movzx ecx, bl
or al, r8b
mov byte [rsi + r10 - 2], al
movzx eax, byte [r10 - 1]
shr al, cl
mov ecx, r11d
shl dl, cl
or al, dl
mov byte [rsi + r10 - 1], al
dec rdi
jne 0x1401527c0
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1401bb2c0
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret