Function at 0x14005b834
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
lea rbp, [rsp + 0x20]
mov rax, qword [0x1402ccee0]
xor rax, rbp
mov qword [rbp + 0x20], rax
mov ebx, dword [rcx + 8]
mov r13, r8
mov r8d, edx
movsxd r15, r9d
mov eax, ebx
mov esi, 1
neg eax
mov r14, rcx
mov r9d, r15d
sbb dx, dx
xor edi, edi
not dx
and dx, 0x80
cmp dword [rbp + 0xa0], esi
jne 0x14005b9ce
mov eax, 0x8000
or dx, ax
cmp dword [rcx + 0x10], edi
je 0x14005b89f
mov dword [rcx + 0x10], edi
xor r8d, r8d
lea rcx, [rbp + 0x10]
call fcn.1400902c8
mov r12d, eax
test ebx, ebx
jne 0x14005b9ee
lea eax, [r15 + 4]
add eax, r12d
movsxd rdx, eax
mov dword [rbp], eax
lea rax, [rdx + 0x38]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14005b8d7
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401a62f0
sub rsp, rcx
mov r9d, esi
mov r8d, 8
lea rcx, [rsp + 0x20]
call fcn.140079034
mov rbx, rax
movsxd r12, r12d
add rax, 8
lea r8, [rbp + 0x10]
mov r9, r12
mov rdx, r12
mov rcx, rbx
mov qword [rbx], rax
call section..text
mov edx, 4
lea rcx, [r12 + rbx]
call fcn.1400b4cb0
lea r10, [r12 + rbx]
mov r11d, dword [r10]
test r15d, r15d
jle 0x14005b9af
mov rcx, r15
mov edx, edi
sar rcx, 2
mov r8, r15
test rcx, rcx
jle 0x14005b968
mov r10, r12
mov r9, r13
sub r10, r13
mov edx, ecx
add r10, rbx
mov eax, dword [r9]
lea r9, [r9 + 4]
xor eax, r11d
mov dword [r10 + r9], eax
sub rcx, rsi
jne 0x14005b951
lea r10, [r12 + rbx]
shl edx, 2
movsxd rcx, edx
cmp rcx, r8
jge 0x14005b9af
sub r13, r12
lea rax, [rcx + r12]
lea r9, [rbx + 4]
sub r13, rbx
add r9, rax
sub r8, rcx
mov eax, edx
and eax, 0x80000003
jge 0x14005b997
sub eax, esi
or eax, 0xfffffffc
add eax, esi
cdqe
add edx, esi
mov cl, byte [rax + r10]
xor cl, byte [r9 + r13 - 4]
mov byte [r9], cl
add r9, rsi
sub r8, rsi
jne 0x14005b987
mov rcx, qword [r14 + 0x48]
call fcn.14007916c
test eax, eax
je 0x14005ba7a
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14005b9df
mov rcx, qword [rax]
jmp 0x14005b9e2
cmp dword [rcx + 0x10], edi
jne 0x14005b89c
mov dword [rcx + 0x10], esi
jmp 0x14005b89f
mov rcx, rdi
mov r9d, dword [rbp]
mov r8, rbx
jmp 0x14005ba71
mov rcx, qword [r14]
call fcn.14007f570
test eax, eax
je 0x14005ba85
mov rcx, qword [r14 + 0x48]
call fcn.14007916c
test r15d, r15d
jle 0x14005ba55
test eax, eax
je 0x14005ba2f
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14005ba1e
mov rcx, qword [rax]
jmp 0x14005ba21
mov rcx, rdi
mov r9d, r12d
lea r8, [rbp + 0x10]
xor edx, edx
call fcn.1400695bc
mov rcx, qword [r14 + 0x48]
call fcn.14007916c
test eax, eax
je 0x14005ba7a
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14005ba4a
mov rcx, qword [rax]
jmp 0x14005ba4d
mov rcx, rdi
mov r9d, r15d
mov r8, r13
jmp 0x14005ba71
test eax, eax
je 0x14005ba7a
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14005ba67
mov rcx, qword [rax]
jmp 0x14005ba6a
mov rcx, rdi
mov r9d, r12d
lea r8, [rbp + 0x10]
xor edx, edx
call fcn.1400695bc
mov esi, eax
test esi, esi
sete dil
jmp 0x14005bb0f
lea eax, [r15 + r12]
movsxd rbx, eax
mov dword [rbp], eax
lea rcx, [rbx + 0x18]
call fcn.1401ae494
mov rcx, rax
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call fcn.140079034
movsxd rbx, r12d
lea r8, [rbp + 0x10]
mov r9, rbx
mov rdx, rbx
mov rcx, rax
mov r12, rax
call section..text
mov rdx, r15
lea rcx, [rbx + r12]
mov r9, r15
mov r8, r13
call section..text
mov rcx, qword [r14 + 0x48]
call fcn.14007916c
test eax, eax
je 0x14005bb01
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x14005baee
mov rcx, qword [rax]
jmp 0x14005baf1
mov rcx, rdi
mov r9d, dword [rbp]
mov r8, r12
xor edx, edx
call fcn.1400695bc
mov esi, eax
test esi, esi
mov rcx, r12
sete dil
call fcn.14007911c
mov eax, edi
mov rcx, qword [rbp + 0x20]
xor rcx, rbp
call fcn.1401a5d00
lea rsp, [rbp + 0x38]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret