Function at 0x1400a525c
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1400a56ac
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r11, r8
mov rbx, rdx
shr r11, 4
mov r10, rcx
cmp byte [rcx], 0
je 0x1400a52a3
mov r8, r11
call fcn.1400a56b0
jmp 0x1400a568f
lea rsi, [rcx + 8]
mov edi, 4
mov qword [rbp - 0x30], rsi
mov r8, rsi
test r11, r11
je 0x1400a567a
lea r12, [rbp - 0x28]
sub r12, r9
lea r15, [rbp - 0x18]
sub r15, rdx
lea r13, [rcx + 0x18]
lea r14, [r9 + 1]
lea rsi, [0x140000000]
cmp byte [r10 + 1], 0
je 0x1400a52fe
mov rcx, rbx
sub r8, rbx
mov rdx, rdi
mov eax, dword [r8 + rcx]
xor eax, dword [rcx]
mov dword [r15 + rcx], eax
add rcx, rdi
sub rdx, 1
jne 0x1400a52e9
jmp 0x1400a5305
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x18], xmm0
lea rax, [rbp - 0x18]
mov r8, r13
sub r8, rax
xor edx, edx
lea rax, [rbp - 0x18]
add rax, rdx
mov ecx, dword [r8 + rax]
xor ecx, dword [rax]
mov dword [rbp + rdx - 0x28], ecx
add rdx, rdi
cmp rdx, 0x10
jl 0x1400a5311
movzx ecx, byte [rbp - 0x28]
lea r8, [r14 - 1]
movzx eax, byte [rbp - 0x23]
mov dword [rbp + 0x40], 1
mov edx, dword [rsi + rcx*4 + 0x1cdd20]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x1e]
movzx ecx, byte [rbp - 0x25]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x19]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x24]
mov dword [r8], edx
mov edx, dword [rsi + rcx*4 + 0x1ce920]
movzx ecx, byte [rbp - 0x26]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
movzx eax, byte [rbp - 0x1f]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x1a]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x20]
mov dword [r14 + 3], edx
mov edx, dword [rsi + rcx*4 + 0x1ce520]
movzx ecx, byte [rbp - 0x27]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
movzx eax, byte [rbp - 0x21]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x1b]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x22]
mov dword [r14 + 7], edx
mov edx, dword [rsi + rcx*4 + 0x1ce120]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x1d]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x1c]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
mov dword [r14 + 0xb], edx
mov ecx, dword [r10 + 4]
lea eax, [rcx - 1]
cmp eax, 1
jle 0x1400a551e
mov r13d, dword [rbp + 0x40]
lea rdi, [rbp - 0x28]
sub rdi, r10
lea r9, [r10 + 0x28]
sub rdi, 0x28
lea rax, [rbp - 0x27]
mov rcx, rdi
sub rcx, rax
mov edx, 4
add rcx, r14
mov eax, dword [rcx + r9]
xor eax, dword [r9]
mov dword [rdi + r9], eax
add r9, 4
sub rdx, 1
jne 0x1400a542a
movzx ecx, byte [rbp - 0x28]
inc r13d
movzx eax, byte [rbp - 0x23]
sub rdi, 0x10
mov edx, dword [rsi + rcx*4 + 0x1cdd20]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x1e]
movzx ecx, byte [rbp - 0x25]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x19]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x24]
mov dword [r8], edx
mov edx, dword [rsi + rcx*4 + 0x1ce920]
movzx ecx, byte [rbp - 0x26]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
movzx eax, byte [rbp - 0x1f]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x1a]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x20]
mov dword [r14 + 3], edx
mov edx, dword [rsi + rcx*4 + 0x1ce520]
movzx ecx, byte [rbp - 0x27]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
movzx eax, byte [rbp - 0x21]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x1b]
xor edx, dword [rsi + rax*4 + 0x1ce120]
movzx eax, byte [rbp - 0x22]
mov dword [r14 + 7], edx
mov edx, dword [rsi + rcx*4 + 0x1ce120]
xor edx, dword [rsi + rax*4 + 0x1ce520]
movzx eax, byte [rbp - 0x1d]
xor edx, dword [rsi + rax*4 + 0x1ce920]
movzx eax, byte [rbp - 0x1c]
xor edx, dword [rsi + rax*4 + 0x1cdd20]
mov dword [r14 + 0xb], edx
mov ecx, dword [r10 + 4]
lea eax, [rcx - 1]
cmp r13d, eax
jl 0x1400a5418
lea r13, [r10 + 0x18]
mov edi, 4
movsxd rdx, ecx
mov r9, rdi
shl rdx, 4
mov rcx, r8
add rdx, 8
add rdx, r10
sub rdx, r8
mov eax, dword [rdx + rcx]
xor eax, dword [rcx]
mov dword [r12 + rcx], eax
add rcx, rdi
sub r9, 1
jne 0x1400a5535
movzx eax, byte [rbp - 0x28]
mov rcx, r8
mov rdx, rdi
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r8], al
movzx eax, byte [rbp - 0x23]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14], al
movzx eax, byte [rbp - 0x1e]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 1], al
movzx eax, byte [rbp - 0x19]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 2], al
movzx eax, byte [rbp - 0x24]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 3], al
movzx eax, byte [rbp - 0x1f]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 4], al
movzx eax, byte [rbp - 0x1a]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 5], al
movzx eax, byte [rbp - 0x25]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 6], al
movzx eax, byte [rbp - 0x20]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 7], al
movzx eax, byte [rbp - 0x1b]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 8], al
movzx eax, byte [rbp - 0x26]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 9], al
movzx eax, byte [rbp - 0x21]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 0xa], al
movzx eax, byte [rbp - 0x1c]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 0xb], al
movzx eax, byte [rbp - 0x27]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 0xc], al
movzx eax, byte [rbp - 0x22]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 0xd], al
movzx eax, byte [rbp - 0x1d]
mov al, byte [rsi + rax*4 + 0x1cdd21]
mov byte [r14 + 0xe], al
movsxd r9, dword [r10 + 4]
shl r9, 4
add r9, 0x18
add r9, r10
sub r9, r8
mov eax, dword [r9 + rcx]
xor dword [rcx], eax
add rcx, rdi
sub rdx, 1
jne 0x1400a564d
add rbx, 0x10
sub r15, 0x10
sub r12, 0x10
add r14, 0x10
sub r11, 1
jne 0x1400a52d9
mov rsi, qword [rbp - 0x30]
sub r8, rsi
mov rcx, rdi
mov eax, dword [r8 + rsi]
mov dword [rsi], eax
add rsi, rdi
sub rcx, 1
jne 0x1400a5680
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret