Function at 0x14009a910
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
cmp byte [rcx + 8], 0
mov r12, r8
mov rbp, rcx
je 0x14009ad47
movzx ebx, byte [rdx]
lea r15, [0x140000000]
movsxd r14, dword [rbp + 0x3d4]
mov r8d, 1
add rdx, r8
shl ebx, 0x18
movzx eax, byte [rdx]
add rdx, r8
shl eax, 0x10
or ebx, eax
movzx eax, byte [rdx]
add rdx, r8
shl eax, 8
or ebx, eax
movzx eax, byte [rdx]
add rdx, r8
or ebx, eax
xor ebx, dword [rcx + 0xc]
movzx edi, byte [rdx]
add rdx, r8
shl edi, 0x18
movzx eax, byte [rdx]
add rdx, r8
shl eax, 0x10
or edi, eax
movzx eax, byte [rdx]
add rdx, r8
shl eax, 8
or edi, eax
movzx eax, byte [rdx]
add rdx, r8
or edi, eax
xor edi, dword [rcx + 0x10]
movzx esi, byte [rdx]
add rdx, r8
shl esi, 0x18
movzx eax, byte [rdx]
add rdx, r8
shl eax, 0x10
or esi, eax
movzx eax, byte [rdx]
add rdx, r8
shl eax, 8
or esi, eax
movzx eax, byte [rdx]
add rdx, r8
or esi, eax
xor esi, dword [rcx + 0x14]
movzx ecx, byte [rdx]
add rdx, r8
shl ecx, 0x18
movzx eax, byte [rdx]
movzx r9d, byte [rdx + r8]
shl r9d, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [rdx + r8 + 1]
or r9d, eax
or r9d, ecx
xor r9d, dword [rbp + 0x18]
cmp r14, r8
jle 0x14009ab4e
lea r15, [rbp + 0x34]
lea r13, [r14 - 1]
lea r12, [0x140000000]
movsxd r10, r9d
movsxd r8, ebx
movsxd r9, edi
mov rax, r8
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
movsxd r11, esi
mov ebx, dword [r12 + rdx*4 + 0xcea60]
mov rax, r11
sar rax, 8
xor ebx, dword [r12 + rcx*4 + 0xcee60]
movzx ecx, al
movzx eax, r10b
xor ebx, dword [r12 + rcx*4 + 0xcf260]
xor ebx, dword [r12 + rax*4 + 0xcf660]
mov rax, r9
xor ebx, dword [r15 - 8]
sar rax, 0x18
movzx edx, al
mov rax, r11
sar rax, 0x10
movzx ecx, al
mov rax, r10
sar rax, 8
mov edi, dword [r12 + rdx*4 + 0xcea60]
xor edi, dword [r12 + rcx*4 + 0xcee60]
movzx ecx, al
movzx eax, r8b
xor edi, dword [r12 + rcx*4 + 0xcf260]
xor edi, dword [r12 + rax*4 + 0xcf660]
mov rax, r8
xor edi, dword [r15 - 4]
sar rax, 8
movzx edx, al
mov rax, r11
sar rax, 0x18
movzx ecx, al
mov rax, r10
sar rax, 0x10
mov esi, dword [r12 + rdx*4 + 0xcf260]
sar r8, 0x10
xor esi, dword [r12 + rcx*4 + 0xcea60]
movzx ecx, al
movzx eax, r9b
sar r9, 8
sar r10, 0x18
xor esi, dword [r12 + rcx*4 + 0xcee60]
xor esi, dword [r12 + rax*4 + 0xcf660]
xor esi, dword [r15]
lea r15, [r15 + 0x20]
movzx eax, r9b
movzx ecx, r8b
mov r9d, dword [r12 + rcx*4 + 0xcee60]
xor r9d, dword [r12 + rax*4 + 0xcf260]
movzx eax, r10b
xor r9d, dword [r12 + rax*4 + 0xcea60]
movzx eax, r11b
xor r9d, dword [r12 + rax*4 + 0xcf660]
xor r9d, dword [r15 - 0x1c]
sub r13, 1
jne 0x14009aa14
mov r12, qword [rsp + 0x80]
lea r15, [0x140000000]
shl r14, 5
movsxd rbx, ebx
movsxd r10, esi
mov rax, rbx
sar rax, 0x18
mov r8d, dword [r14 + rbp + 0xc]
mov ecx, r8d
movzx edx, al
sar ecx, 0x18
movsxd r9, r9d
movsxd r11, edi
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov ecx, r8d
mov byte [r12], al
mov rax, r11
sar rax, 0x10
movzx edx, al
sar ecx, 0x10
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov ecx, r8d
mov byte [r12 + 1], al
mov rax, r10
sar rax, 8
movzx edx, al
sar ecx, 8
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov byte [r12 + 2], al
movzx eax, r9b
mov al, byte [rax + r15 + 0xce860]
xor al, r8b
mov byte [r12 + 3], al
mov rax, r11
mov r8d, dword [r14 + rbp + 0x10]
mov ecx, r8d
sar rax, 0x18
movzx edx, al
sar ecx, 0x18
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov ecx, r8d
mov byte [r12 + 4], al
mov rax, r10
sar rax, 0x10
movzx edx, al
sar ecx, 0x10
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov ecx, r8d
mov byte [r12 + 5], al
mov rax, r9
sar rax, 8
movzx edx, al
sar ecx, 8
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov byte [r12 + 6], al
movzx eax, bl
mov al, byte [rax + r15 + 0xce860]
xor al, r8b
mov byte [r12 + 7], al
mov rax, r10
mov r8d, dword [r14 + rbp + 0x14]
mov ecx, r8d
sar rax, 0x18
movzx edx, al
sar ecx, 0x18
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov ecx, r8d
mov byte [r12 + 8], al
mov rax, r9
sar rax, 0x10
movzx edx, al
sar ecx, 0x10
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov byte [r12 + 9], al
mov rax, rbx
sar rax, 8
mov ecx, r8d
movzx edx, al
sar ecx, 8
sar rbx, 0x10
sar r9, 0x18
mov al, byte [rdx + r15 + 0xce860]
xor al, cl
mov byte [r12 + 0xa], al
movzx eax, r11b
sar r11, 8
mov al, byte [rax + r15 + 0xce860]
xor al, r8b
mov byte [r12 + 0xb], al
mov edx, dword [r14 + rbp + 0x18]
mov ecx, edx
sar ecx, 0x18
movzx eax, r9b
mov al, byte [rax + r15 + 0xce860]
xor al, cl
mov ecx, edx
mov byte [r12 + 0xc], al
sar ecx, 0x10
movzx eax, bl
mov al, byte [rax + r15 + 0xce860]
xor al, cl
mov ecx, edx
mov byte [r12 + 0xd], al
movzx eax, r11b
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov al, byte [rax + r15 + 0xce860]
sar ecx, 8
xor al, cl
mov byte [r12 + 0xe], al
movzx eax, r10b
mov al, byte [rax + r15 + 0xce860]
xor al, dl
mov byte [r12 + 0xf], al
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rdx, qword [0x1400e4058]
lea rcx, [rsp + 0x20]
call fcn.14009bc10
lea rdx, [0x1400e25f8]
lea rcx, [rsp + 0x20]
call fcn.1400b0a88
int3