Function at 0x14002c78c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x20
and dword [rcx + 4], 0
and dword [rcx], 0
mov eax, 0x8000
cmp r8d, eax
mov rsi, rcx
mov rcx, qword [rcx + 8]
cmovb eax, r8d
mov r13d, r8d
mov rbp, r9
mov r8d, eax
mov rbx, rdx
call fcn.1400409f0
xor dil, dil
cmp r13d, 1
jbe 0x14002c7f1
lea rcx, [rbx + 1]
lea edx, [r13 - 1]
xor dil, byte [rcx]
inc rcx
sub rdx, 1
jne 0x14002c7e5
mov edx, 8
mov rcx, rsi
call fcn.14001dc34
and dword [rbp + 0x20], 0
mov r12d, 3
cmp dil, byte [rbx]
jne 0x14002c9c5
mov r8d, r13d
mov rdx, rbx
mov rcx, rsi
call fcn.14002b4e4
mov ebx, eax
test eax, eax
je 0x14002c869
lea edx, [r12 - 2]
mov rcx, rbp
call fcn.14002b588
movsxd rcx, dword [rbp + 0x20]
mov rdx, rcx
inc ecx
mov dword [rbp + 0x20], ecx
imul rdx, rdx, 0x38
add rdx, qword [rbp]
xor r13d, r13d
lea rax, [rdx + 0xc]
mov dword [rdx], 0x36
mov dword [rdx + 0x20], r12d
mov dword [rax], ebx
mov qword [rdx + 0x18], rax
lea rax, [rdx + 0x24]
mov qword [rdx + 0x30], rax
mov dword [rdx + 8], r12d
mov rcx, rsi
call fcn.14001dc4c
mov edx, 1
mov rcx, rsi
mov ebx, eax
call fcn.14001dc34
bt ebx, 0xf
jae 0x14002c8da
mov rcx, rsi
call fcn.14002b3e0
xor r14d, r14d
lea r12d, [rax + 1]
cmp dword [rsi], r13d
jae 0x14002c9c5
cmp r14d, r12d
jae 0x14002c8da
lea rcx, [rbp + 0x40]
mov edx, 1
call fcn.1400011d8
mov edi, r14d
mov rcx, rsi
add rdi, qword [rbp + 0x40]
call fcn.14001dc4c
mov edx, 8
shr eax, 8
mov rcx, rsi
mov byte [rdi], al
call fcn.14001dc34
inc r14d
cmp dword [rsi], r13d
jb 0x14002c89e
cmp dword [rsi], r13d
jae 0x14002c9c5
lea r12, [0x14005b218]
mov edx, 1
mov rcx, rbp
call fcn.14002b588
movsxd rbx, dword [rbp + 0x20]
mov rcx, rsi
imul rbx, rbx, 0x38
add rbx, qword [rbp]
call fcn.14001dc4c
bt eax, 0xf
mov rcx, rsi
jb 0x14002c91e
shr eax, 0xc
mov edx, 4
jmp 0x14002c929
shr eax, 0xa
mov edx, 6
sub eax, 0x18
mov dword [rbx], eax
call fcn.14001dc34
movsxd rax, dword [rbx]
test byte [rax + r12], 4
je 0x14002c95c
mov rcx, rsi
call fcn.14001dc4c
mov edx, 1
mov rcx, rsi
test eax, 0xffff8000
setne al
mov byte [rbx + 4], al
call fcn.14001dc34
jmp 0x14002c960
mov byte [rbx + 4], 0
movsxd rax, dword [rbx]
mov ecx, 3
mov dword [rbx + 0x20], ecx
mov dword [rbx + 8], ecx
movzx r12d, byte [rax + r12]
and r12d, ecx
mov qword [rbx + 0x30], 0
mov qword [rbx + 0x18], 0
jle 0x14002c9b2
mov r8b, byte [rbx + 4]
lea rdx, [rbx + 8]
mov rcx, rsi
call fcn.14002b5ec
cmp r12d, 2
jne 0x14002ca76
mov r8b, byte [rbx + 4]
lea rdx, [rbx + 0x20]
mov rcx, rsi
call fcn.14002b5ec
lea r12, [0x14005b218]
inc dword [rbp + 0x20]
cmp dword [rsi], r13d
jb 0x14002c8ea
mov edx, 1
mov rcx, rbp
call fcn.14002b588
movsxd rax, dword [rbp + 0x20]
xor r8d, r8d
mov rcx, rax
inc eax
mov dword [rbp + 0x20], eax
imul rcx, rcx, 0x38
add rcx, qword [rbp]
lea rax, [rcx + 0xc]
mov dword [rcx], 0x16
mov qword [rcx + 0x18], rax
lea rax, [rcx + 0x24]
mov qword [rcx + 0x30], rax
mov eax, 3
mov dword [rcx + 0x20], eax
mov dword [rcx + 8], eax
cmp dword [rbp + 0x20], r8d
jle 0x14002ca47
xor ecx, ecx
mov rdx, qword [rbp]
cmp qword [rcx + rdx + 0x18], 0
jne 0x14002ca28
lea rax, [rcx + rdx + 0xc]
mov qword [rcx + rdx + 0x18], rax
cmp qword [rcx + rdx + 0x30], 0
jne 0x14002ca3a
lea rax, [rcx + rdx + 0x24]
mov qword [rcx + rdx + 0x30], rax
inc r8d
add rcx, 0x38
cmp r8d, dword [rbp + 0x20]
jl 0x14002ca12
test r13d, r13d
je 0x14002ca57
mov rdx, rbp
mov rcx, rsi
call fcn.14002b6d8
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r13
pop r12
ret
cmp dword [rbx + 8], 1
jne 0x14002c9b2
movsxd rax, dword [rbx]
lea r12, [0x14005b218]
test byte [rax + r12], 0x18
je 0x14002c9b9
mov eax, dword [rbx + 0xc]
cmp eax, 0x100
jl 0x14002caa6
sub eax, 0x100
jmp 0x14002cac9
cmp eax, 0x88
jl 0x14002cab4
sub eax, 0x108
jmp 0x14002cac6
cmp eax, 0x10
jl 0x14002cabe
sub eax, 8
jmp 0x14002cac6
cmp eax, 8
jl 0x14002cac6
sub eax, 0x10
add eax, dword [rbp + 0x20]
mov dword [rbx + 0xc], eax
jmp 0x14002c9b9