Function at 0x14005e410
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x48
mov r9, qword [rcx + 0x50]
mov r15, r8
mov r14, rdx
mov rdi, rcx
mov rax, qword [r9]
mov qword [rbp + 0x28], rax
mov rax, qword [r9 + 8]
mov qword [rbp + 0x38], rax
mov rax, qword [r9 + 0x10]
mov qword [rbp + 0x40], rax
test r8, r8
je 0x14005e872
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r12
movabs r12, 0xa5a5a5a5a5a5a5a5
mov qword [rsp + 0x30], r13
movabs r13, 0x123456789abcdef
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + 0x38]
mov r8, qword [rdi + 0x40]
sub r8, rcx
sar r8, 3
test r8, r8
je 0x14005e4a4
lea r8, [r8*8]
mov rdx, r14
call fcn.140153a80
lea r9, [rdi + 0x38]
mov byte [rsp + 0x20], 5
lea r8, [rbp + 0x40]
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x28]
call fcn.14005f010
mov rcx, qword [rdi + 0x38]
lea r9, [rdi + 0x38]
lea r8, [rbp + 0x38]
mov byte [rsp + 0x20], 7
lea rdx, [rbp + 0x28]
mov rax, qword [rcx + 0x38]
xor rax, r12
sub qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx]
xor qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
add qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
not rax
shl rax, 0x13
xor rax, qword [rcx + 0x10]
sub qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x18]
xor qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
add qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x28]
sub qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor qword [rcx + 0x38], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
add qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
not rax
shl rax, 0x13
xor rax, qword [rcx]
sub qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
xor qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
add qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x18]
sub qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
xor qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x28]
add qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor rax, r13
sub qword [rcx + 0x38], rax
lea rcx, [rbp + 0x40]
call fcn.14005f010
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
xor rax, r12
sub qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx]
xor qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
lea r9, [rdi + 0x38]
lea r8, [rbp + 0x28]
mov byte [rsp + 0x20], 9
lea rdx, [rbp + 0x40]
mov rax, qword [rcx + 8]
add qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
not rax
shl rax, 0x13
xor rax, qword [rcx + 0x10]
sub qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x18]
xor qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
add qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x28]
sub qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor qword [rcx + 0x38], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
add qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
not rax
shl rax, 0x13
xor rax, qword [rcx]
sub qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
xor qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
add qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x18]
sub qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
xor qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x28]
add qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor rax, r13
sub qword [rcx + 0x38], rax
lea rcx, [rbp + 0x38]
call fcn.14005f010
mov esi, 3
cmp rsi, qword [rdi + 0x70]
je 0x14005e80f
nop dword [rax]
mov rcx, qword [rdi + 0x38]
lea r9, [rdi + 0x38]
lea r8, [rbp + 0x40]
mov byte [rsp + 0x20], 9
lea rdx, [rbp + 0x38]
mov rax, qword [rcx + 0x38]
xor rax, r12
sub qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx]
xor qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
add qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
not rax
shl rax, 0x13
xor rax, qword [rcx + 0x10]
sub qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x18]
xor qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
add qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x28]
sub qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor qword [rcx + 0x38], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
add qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x38]
not rax
shl rax, 0x13
xor rax, qword [rcx]
sub qword [rcx + 8], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 8]
xor qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
add qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x10]
not rax
shr rax, 0x17
xor rax, qword [rcx + 0x18]
sub qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
xor qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x28]
add qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x30]
xor rax, r13
sub qword [rcx + 0x38], rax
lea rcx, [rbp + 0x28]
call fcn.14005f010
mov rcx, qword [rbp + 0x28]
inc rsi
mov rdx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x38]
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x40], r8
mov qword [rbp + 0x38], rcx
cmp rsi, qword [rdi + 0x70]
jne 0x14005e6e0
jmp 0x14005e81b
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x38]
mov r8, qword [rbp + 0x40]
mov rax, qword [rdi + 0x50]
xor qword [rax], rdx
mov rax, qword [rax]
mov qword [rbp + 0x28], rax
mov rax, qword [rdi + 0x50]
sub rcx, qword [rax + 8]
mov qword [rax + 8], rcx
mov rax, qword [rdi + 0x50]
mov qword [rbp + 0x38], rcx
add qword [rax + 0x10], r8
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x40], rax
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
add r14, rax
sub r15, 1
jne 0x14005e480
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x78]
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rbp
ret