Function at 0x14001f520
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1400a5080]
xor rax, rsp
mov qword [rbp - 0x10], rax
movzx eax, byte [rdx]
mov rbx, rcx
mov byte [rcx], al
mov r13, rdx
mov byte [rbp - 0x60], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 4], al
movzx ecx, byte [rdx + 2]
mov byte [rbx + 8], cl
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x30], rdx
movzx edx, byte [rdx + 3]
mov byte [rbx + 0xc], dl
movzx r8d, byte [r13 + 4]
mov byte [rbx + 1], r8b
mov byte [rbp - 0x5f], r8b
movzx r8d, byte [r13 + 5]
mov byte [rbx + 5], r8b
movzx r9d, byte [r13 + 6]
mov byte [rbx + 9], r9b
movzx r10d, byte [r13 + 7]
mov byte [rbx + 0xd], r10b
movzx r11d, byte [r13 + 8]
mov byte [rbx + 2], r11b
movzx edi, byte [r13 + 9]
mov byte [rbx + 6], dil
movzx esi, byte [r13 + 0xa]
mov byte [rbx + 0xa], sil
movzx r14d, byte [r13 + 0xb]
mov byte [rbx + 0xe], r14b
movzx r15d, byte [r13 + 0xc]
mov byte [rbx + 3], r15b
mov byte [rbp - 0x5d], r15b
movzx r15d, byte [r13 + 0xd]
mov byte [rbx + 7], r15b
movzx r12d, byte [r13 + 0xe]
movzx r13d, byte [rbp - 0x60]
mov byte [rbx + 0xb], r12b
xor r13b, byte [rbx + 0x20]
mov byte [rbp - 0x60], r13b
mov r13d, dword [rbx + 0x20]
shr r13d, 8
xor r13b, al
mov eax, dword [rbx + 0x20]
shr eax, 0x10
xor al, cl
mov dword [rbp - 0x58], r13d
mov ecx, dword [rbx + 0x20]
mov dword [rbp - 0x44], eax
shr ecx, 0x18
xor cl, dl
mov edx, dword [rbx + 0x24]
xor byte [rbp - 0x5f], dl
mov eax, edx
shr eax, 8
xor al, r8b
mov r8d, dword [rbx + 0x28]
mov dword [rbp - 0x40], eax
mov eax, edx
shr eax, 0x10
xor al, r9b
shr edx, 0x18
mov r9d, dword [rbx + 0x2c]
xor dl, r10b
mov dword [rbp - 0x3c], eax
movzx eax, r8b
xor al, r11b
mov byte [rbp - 0x5e], al
mov eax, r8d
shr eax, 8
xor al, dil
movzx edi, byte [rbp - 0x5d]
mov dword [rbp - 0x50], eax
mov eax, r8d
shr eax, 0x10
xor al, sil
shr r8d, 0x18
xor r8b, r14b
mov dword [rbp - 0x54], eax
mov eax, r9d
xor dil, r9b
mov r13, qword [rbp - 0x30]
movzx r10d, byte [rbp - 0x60]
movzx r11d, byte [rbp - 0x5f]
movzx esi, byte [rbp - 0x5e]
mov r14d, dword [rbp - 0x58]
shr eax, 8
xor al, r15b
mov dword [rbp - 0x38], 1
mov r15d, dword [rbp - 0x44]
mov dword [rbp - 0x48], eax
mov eax, r9d
shr eax, 0x10
xor al, r12b
shr r9d, 0x18
xor r9b, byte [r13 + 0xf]
mov r12d, dword [rbp - 0x40]
mov r13d, dword [rbp - 0x3c]
mov dword [rbp - 0x4c], eax
mov rax, qword [rbx + 0x18]
mov qword [rbp - 0x30], rax
cmp rax, 1
jbe 0x14001f911
mov dword [rbp - 0x34], 6
nop dword [rax]
movzx eax, r10b
lea r10, [0x140367770]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x20], al
movzx eax, r12b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1c], al
movzx eax, byte [rbp - 0x54]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x18], al
movzx eax, r9b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x14], al
movzx eax, r11b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1f], al
movzx eax, byte [rbp - 0x50]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1b], al
movzx eax, byte [rbp - 0x4c]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x17], al
movzx eax, cl
mov rcx, rbx
movzx eax, byte [rax + r10]
mov byte [rbp - 0x13], al
movzx eax, sil
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1e], al
movzx eax, byte [rbp - 0x48]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1a], al
movzx eax, r15b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x16], al
movzx eax, dl
movzx eax, byte [rax + r10]
mov byte [rbp - 0x12], al
movzx eax, dil
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1d], al
movzx eax, r14b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x19], al
movzx eax, r13b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x15], al
movzx eax, r8b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x11], al
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbx], xmm0
call fcn.140020340
movsxd r14, dword [rbp - 0x34]
movzx r10d, byte [rbx]
xor r10b, byte [rbx + r14*4 + 0x18]
mov byte [rbx], r10b
mov ecx, dword [rbx + r14*4 + 0x18]
shr ecx, 8
xor cl, byte [rbx + 4]
mov byte [rbx + 4], cl
movzx r15d, byte [rbx + r14*4 + 0x1a]
xor r15b, byte [rbx + 8]
mov byte [rbx + 8], r15b
movzx r12d, byte [rbx + r14*4 + 0x1b]
xor r12b, byte [rbx + 0xc]
mov byte [rbx + 0xc], r12b
movzx r11d, byte [rbx + r14*4 + 0x1c]
xor r11b, byte [rbx + 1]
mov byte [rbx + 1], r11b
mov edx, dword [rbx + r14*4 + 0x1c]
shr edx, 8
xor dl, byte [rbx + 5]
mov byte [rbx + 5], dl
movzx r13d, byte [rbx + r14*4 + 0x1e]
xor r13b, byte [rbx + 9]
mov byte [rbx + 9], r13b
movzx eax, byte [rbx + r14*4 + 0x1f]
xor al, byte [rbx + 0xd]
mov dword [rbp - 0x58], ecx
mov dword [rbp - 0x3c], edx
inc dword [rbp - 0x38]
mov byte [rbx + 0xd], al
movzx esi, byte [rbx + r14*4 + 0x20]
xor sil, byte [rbx + 2]
mov byte [rbx + 2], sil
mov r8d, dword [rbx + r14*4 + 0x20]
mov byte [rbp - 0x5f], al
shr r8d, 8
xor r8b, byte [rbx + 6]
mov byte [rbx + 6], r8b
movzx r9d, byte [rbx + r14*4 + 0x22]
xor r9b, byte [rbx + 0xa]
mov byte [rbx + 0xa], r9b
movzx eax, byte [rbx + r14*4 + 0x23]
xor al, byte [rbx + 0xe]
mov byte [rbx + 0xe], al
movzx edi, byte [rbx + r14*4 + 0x24]
xor dil, byte [rbx + 3]
mov byte [rbx + 3], dil
mov byte [rbp - 0x5c], al
mov byte [rbp - 0x60], r9b
mov r9d, dword [rbx + r14*4 + 0x24]
shr r9d, 8
xor r9b, byte [rbx + 7]
mov byte [rbx + 7], r9b
movzx ecx, byte [rbx + r14*4 + 0x26]
xor cl, byte [rbx + 0xb]
mov byte [rbx + 0xb], cl
movzx eax, byte [rbx + r14*4 + 0x27]
add r14d, 4
xor al, byte [rbx + 0xf]
mov byte [rbp - 0x5e], al
mov byte [rbx + 0xf], al
movzx eax, byte [rbp - 0x60]
mov byte [rbp - 0x5d], cl
movzx ecx, r12b
mov byte [rbp - 0x54], al
movzx r12d, dl
movzx eax, byte [rbp - 0x5d]
movzx edx, byte [rbp - 0x5f]
mov byte [rbp - 0x4c], al
movsxd rax, dword [rbp - 0x38]
mov dword [rbp - 0x40], r8d
mov dword [rbp - 0x44], r9d
mov dword [rbp - 0x34], r14d
mov r14d, dword [rbp - 0x58]
mov byte [rbp - 0x50], r8b
movzx r8d, byte [rbp - 0x5c]
mov byte [rbp - 0x48], r9b
movzx r9d, byte [rbp - 0x5e]
cmp rax, qword [rbx + 0x18]
jb 0x14001f6d0
mov eax, dword [rbp - 0x40]
movzx r12d, byte [rbp - 0x3c]
mov byte [rbp - 0x50], al
movzx eax, byte [rbp - 0x60]
mov byte [rbp - 0x54], al
mov eax, dword [rbp - 0x44]
mov byte [rbp - 0x48], al
movzx eax, byte [rbp - 0x5d]
mov byte [rbp - 0x4c], al
mov rax, qword [rbx + 0x18]
mov dword [rbp - 0x30], eax
movzx eax, r10b
lea r10, [0x140367770]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x20], al
movzx eax, r12b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1c], al
movzx eax, byte [rbp - 0x54]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x18], al
movzx eax, r9b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x14], al
movzx eax, r11b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1f], al
movzx eax, byte [rbp - 0x50]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1b], al
movzx eax, byte [rbp - 0x4c]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x17], al
movzx eax, cl
movzx eax, byte [rax + r10]
mov byte [rbp - 0x13], al
movzx eax, sil
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1e], al
movzx eax, byte [rbp - 0x48]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1a], al
movzx eax, r15b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x16], al
movzx eax, dl
mov rdx, qword [rbp - 0x30]
movzx eax, byte [rax + r10]
mov byte [rbp - 0x12], al
lea edx, [rdx*4]
movzx eax, dil
movzx eax, byte [rax + r10]
mov byte [rbp - 0x1d], al
movzx eax, r14b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x19], al
movzx eax, r13b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x15], al
movzx eax, r8b
movzx eax, byte [rax + r10]
mov byte [rbp - 0x11], al
movups xmm0, xmmword [rbp - 0x20]
movsxd rax, edx
movups xmmword [rbx], xmm0
lea rcx, [rbx + rax*4]
movzx eax, byte [rbx + rax*4 + 0x20]
xor byte [rbx], al
mov eax, dword [rcx + 0x20]
movzx r8d, byte [rbx]
shr eax, 8
xor byte [rbx + 4], al
movzx eax, byte [rcx + 0x22]
xor byte [rbx + 8], al
movzx eax, byte [rcx + 0x23]
xor byte [rbx + 0xc], al
movsxd rax, edx
lea rcx, [rbx + rax*4]
movzx eax, byte [rbx + rax*4 + 0x24]
xor byte [rbx + 1], al
mov eax, dword [rcx + 0x24]
shr eax, 8
xor byte [rbx + 5], al
movzx eax, byte [rcx + 0x26]
xor byte [rbx + 9], al
movzx eax, byte [rcx + 0x27]
xor byte [rbx + 0xd], al
movsxd rax, edx
lea rcx, [rbx + rax*4]
movzx eax, byte [rbx + rax*4 + 0x28]
xor byte [rbx + 2], al
mov eax, dword [rcx + 0x28]
shr eax, 8
xor byte [rbx + 6], al
movzx eax, byte [rcx + 0x2a]
xor byte [rbx + 0xa], al
movzx eax, byte [rcx + 0x2b]
xor byte [rbx + 0xe], al
movsxd rax, edx
lea rcx, [rbx + rax*4]
movzx eax, byte [rbx + rax*4 + 0x2c]
xor byte [rbx + 3], al
mov eax, dword [rcx + 0x2c]
shr eax, 8
xor byte [rbx + 7], al
movzx eax, byte [rcx + 0x2e]
xor byte [rbx + 0xb], al
movzx eax, byte [rcx + 0x2f]
xor byte [rbx + 0xf], al
mov rcx, qword [rbp - 0x28]
mov byte [rcx], r8b
movzx eax, byte [rbx + 4]
mov byte [rcx + 1], al
movzx eax, byte [rbx + 8]
mov byte [rcx + 2], al
movzx eax, byte [rbx + 0xc]
mov byte [rcx + 3], al
movzx eax, byte [rbx + 1]
mov byte [rcx + 4], al
movzx eax, byte [rbx + 5]
mov byte [rcx + 5], al
movzx eax, byte [rbx + 9]
mov byte [rcx + 6], al
movzx eax, byte [rbx + 0xd]
mov byte [rcx + 7], al
movzx eax, byte [rbx + 2]
mov byte [rcx + 8], al
movzx eax, byte [rbx + 6]
mov byte [rcx + 9], al
movzx eax, byte [rbx + 0xa]
mov byte [rcx + 0xa], al
movzx eax, byte [rbx + 0xe]
mov byte [rcx + 0xb], al
movzx eax, byte [rbx + 3]
mov byte [rcx + 0xc], al
movzx eax, byte [rbx + 7]
mov byte [rcx + 0xd], al
movzx eax, byte [rbx + 0xb]
mov byte [rcx + 0xe], al
movzx eax, byte [rbx + 0xf]
mov byte [rcx + 0xf], al
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140077820
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret