Function at 0x14002c6f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [0x14011e770]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rdi, rdx
mov rsi, r8
mov rdx, r8
mov rbx, rcx
call fcn.14002bd90
test eax, eax
jne 0x14002c9cc
mov rdx, rdi
mov rcx, rbx
call fcn.14002bf00
test eax, eax
jne 0x14002c9cc
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.14002c4f0
test al, al
je 0x14002c9cc
xor dword [rbp - 0x30], 0xce11918f
lea rdx, [rbp - 0x20]
xor dword [rbp - 0x2c], 0xb79ce9ac
xor dword [rbp - 0x28], 0x9d765ae9
xor dword [rbp - 0x24], 0x3257d894
call fcn.14002b980
xor dword [rbp - 0x20], 0xce11918f
lea rsi, [0x1400effd0]
xor dword [rbp - 0x1c], 0xb79ce9ac
mov r9, rsi
xor dword [rbp - 0x18], 0x9d765ae9
mov r11d, 0x10
xor dword [rbp - 0x14], 0x3257d894
nop
movsx r10, byte [r9]
mov rcx, rsi
mov r8d, 0x10
movzx edx, byte [rbp + r10 - 0x30]
nop dword [rax]
nop word [rax + rax]
movsx rax, byte [rcx]
lea rcx, [rcx + 1]
xor dl, byte [rbp + rax - 0x20]
sub r8, 1
jne 0x14002c7c0
inc r9
mov byte [rbp + r10 - 0x30], dl
sub r11, 1
jne 0x14002c7a0
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x14002c7f0
shr r8d, 1
xor edx, edx
mov eax, 1
div r8d
movzx ecx, byte [r8 + rdi]
xor cl, byte [rdi]
xor byte [rbp - 0x30], cl
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2f], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2e], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2d], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2c], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2b], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x2a], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x29], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x28], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x27], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x26], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
xor cl, byte [rdx + rdi]
xor byte [rbp - 0x25], cl
lea eax, [rdx + 1]
xor edx, edx
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x24], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x23], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
lea eax, [rdx + 1]
xor cl, byte [rdx + rdi]
xor edx, edx
xor byte [rbp - 0x22], cl
div r8d
lea eax, [r8 + rdx]
movzx ecx, byte [rax + rdi]
xor cl, byte [rdx + rdi]
xor byte [rbp - 0x21], cl
mov eax, dword [rbx + 0x24]
cmp dword [rbp - 0x24], eax
jne 0x14002c9ac
mov eax, dword [rbx + 0x20]
cmp dword [rbp - 0x28], eax
jne 0x14002c9ac
mov eax, dword [rbx + 0x1c]
cmp dword [rbp - 0x2c], eax
jne 0x14002c9ac
mov eax, dword [rbx + 0x18]
cmp dword [rbp - 0x30], eax
jne 0x14002c9ac
mov rax, qword [rbx + 0x28]
mov dword [rax], 0x3de38e39
mov rax, qword [rbx + 0x30]
mov dword [rax], 0x3f471c72
mov rax, qword [rbx + 0x38]
mov dword [rax], 0x3de38e39
mov rax, qword [rbx + 0x40]
mov dword [rax], 0x3f0e38e4
mov rax, qword [rbx + 0x48]
mov dword [rax], 0x3e638e39
call fcn.14002c6e0
jmp 0x14002c9d1
mov rax, qword [rbx + 0x28]
xor ecx, ecx
mov dword [rax], ecx
mov rax, qword [rbx + 0x30]
mov dword [rax], ecx
mov rax, qword [rbx + 0x38]
mov dword [rax], ecx
mov rax, qword [rbx + 0x40]
mov dword [rax], ecx
mov rax, qword [rbx + 0x48]
mov dword [rax], ecx
call fcn.14002c6d0
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400a4f20
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret