Function at 0x14002c8d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r15
mov rbp, rsp
sub rsp, 0x58
mov rax, qword [rcx + 0xa0]
mov rdi, rdx
xor edx, edx
shl rax, 6
mov dword [rbp - 0x38], 1
mov rsi, r9
mov qword [rbp - 0x30], rdx
mov r15, rcx
mov qword [rbp - 0x28], rdx
mov r12d, edx
mov dword [rbp - 0x20], 1
mov ebx, edx
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rdx
test rax, rax
je 0x14002cc95
mov rax, qword [rcx + 0xa8]
test byte [rax], 1
je 0x14002cc95
mov rcx, qword [rdi + 8]
mov rax, rcx
mov qword [rsp + 0x98], r13
shl rax, 6
test rax, rax
jne 0x14002c952
mov eax, edx
jmp 0x14002c95b
mov rax, qword [rdi + 0x10]
mov eax, dword [rax]
and eax, 1
mov r13, qword [rbp + 0x60]
xor al, 1
mov dword [rbp + 0x38], edx
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x50], r14
mov byte [r13], al
cmp rdx, rdi
je 0x14002ca02
test rcx, rcx
je 0x14002ca02
sub rcx, 1
je 0x14002c9a0
mov rax, qword [rdi + 0x10]
lea rdx, [rax + rcx*8]
cmp qword [rdx], rbx
jne 0x14002c9a0
sub rdx, 8
sub rcx, 1
jne 0x14002c991
mov eax, dword [rdi]
lea r14, [rcx + 1]
mov dword [rbp - 0x38], eax
test r14, r14
je 0x14002c9ce
mov rdx, r14
lea rcx, [rbp - 0x38]
call fcn.14001c230
mov rbx, qword [rbp - 0x28]
mov r8d, eax
mov r12, qword [rbp - 0x30]
mov dword [rbp + 0x38], eax
test eax, eax
je 0x14002c9e1
jmp 0x14002c9f9
imul r8, r14, 0xfffffffffffffff8
lea rcx, [r14*8]
xor edx, edx
call fcn.14004d760
mov rdx, qword [rdi + 0x10]
lea r8, [r14*8]
mov rcx, rbx
call fcn.14004e150
mov r8d, dword [rbp + 0x38]
test r8d, r8d
jne 0x14002cc4b
mov eax, dword [rdi]
imul eax, dword [r15 + 0x98]
test eax, eax
jle 0x14002ca53
mov rdx, rdi
lea rcx, [r15 + 0x98]
call fcn.14001d0e0
lea rcx, [rbp - 0x20]
test eax, eax
js 0x14002ca42
mov r8, rdi
lea rdx, [r15 + 0x98]
call fcn.14001d390
mov dword [rbp + 0x38], eax
mov r8d, eax
test eax, eax
jne 0x14002ca6c
jmp 0x14002ca75
lea r8, [r15 + 0x98]
mov rdx, rdi
call fcn.14001d390
jmp 0x14002ca66
mov r8, rdi
lea rdx, [r15 + 0x98]
lea rcx, [rbp - 0x20]
call fcn.14001d270
mov dword [rbp + 0x38], eax
mov r8d, eax
test r8d, r8d
jne 0x14002cc0f
movzx edi, byte [r13]
lea rcx, [rbp - 0x38]
mov r15, qword [rbp - 0x18]
neg dil
or dil, byte [r13]
mov rdx, r15
shr dil, 7
call fcn.14001c230
mov rbx, qword [rbp - 0x28]
mov r8d, eax
mov r12, qword [rbp - 0x30]
mov r14, qword [rbp - 0x10]
mov dword [rbp + 0x38], eax
test eax, eax
jne 0x14002cb24
test r15, r15
je 0x14002caf4
movzx eax, dil
mov r9d, 1
sub r9, rax
movzx r11d, dil
mov r10, r14
mov rdx, rbx
sub r10, rbx
mov r8, r15
nop dword [rax]
mov rcx, qword [r10 + rdx]
mov rax, qword [rdx]
lea rdx, [rdx + 8]
imul rcx, r11
imul rax, r9
add rcx, rax
mov qword [rdx - 8], rcx
sub r8, 1
jne 0x14002cad0
mov r8d, dword [rbp + 0x38]
mov rcx, r15
cmp r15, r12
jae 0x14002cb24
movzx eax, dil
mov edx, 1
sub rdx, rax
nop dword [rax + rax]
mov rax, qword [rbx + rcx*8]
imul rax, rdx
mov qword [rbx + rcx*8], rax
inc rcx
cmp rcx, r12
jb 0x14002cb10
test r8d, r8d
jne 0x14002cc17
mov r13, qword [rbp + 0x48]
lea r8, [rsi + 1]
mov rcx, r13
xor edx, edx
call fcn.14004d760
xor r11d, r11d
test rsi, rsi
je 0x14002cba5
movzx edi, byte [rbp + 0x58]
nop dword [rax + rax]
xor r8d, r8d
test rdi, rdi
je 0x14002cb9d
movzx r9d, byte [r11 + r13]
mov r10, r12
shl r10, 6
mov rdx, r11
cmp r10, rdx
ja 0x14002cb70
xor al, al
jmp 0x14002cb86
mov rax, rdx
movzx ecx, dl
shr rax, 6
and cl, 0x3f
mov rax, qword [rbx + rax*8]
shr rax, cl
and al, 1
mov rcx, r8
add rdx, rsi
shl al, cl
inc r8
or r9b, al
cmp r8, rdi
jb 0x14002cb67
mov byte [r11 + r13], r9b
inc r11
cmp r11, rsi
jb 0x14002cb50
xor dil, dil
cmp rsi, 1
jb 0x14002cc17
lea r11, [r13 + 1]
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r11 - 1]
mov r10d, 1
movzx r9d, byte [r11]
lea r11, [r11 + 1]
xor r9b, dil
mov ecx, edx
and dil, byte [r11 - 1]
movzx eax, r9b
and al, 1
sub r10b, al
movzx eax, r10b
imul ecx, eax
shl r10b, 7
or r10b, dl
mov byte [r11 - 2], r10b
movzx eax, cl
xor cl, r9b
and al, r9b
mov byte [r11 - 1], cl
or dil, al
sub rsi, 1
jne 0x14002cbc0
jmp 0x14002cc17
mov r14, qword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
test r14, r14
je 0x14002cc4b
lea r8, [r15*8]
test r8, r8
je 0x14002cc43
mov rax, qword [fcn.14004d760]
xor edx, edx
mov rcx, r14
call rax
mov rbx, qword [rbp - 0x28]
mov r12, qword [rbp - 0x30]
mov r14, qword [rbp - 0x10]
mov rcx, r14
call fcn.14004f7d8
mov r14, qword [rsp + 0x50]
mov r13, qword [rsp + 0x98]
test rbx, rbx
je 0x14002cc85
lea r8, [r12*8]
test r8, r8
je 0x14002cc7d
mov r9, qword [fcn.14004d760]
xor edx, edx
mov rcx, rbx
call r9
mov rbx, qword [rbp - 0x28]
mov rcx, rbx
call fcn.14004f7d8
mov eax, dword [rbp + 0x38]
add rsp, 0x58
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, 0xffffb080
add rsp, 0x58
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret