Function at 0x14005d3a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [rcx + 0x30]
mov r12, rdx
mov qword [rdx], rax
mov ebp, 2
mov rax, qword [rcx + 0x38]
add rdx, 8
mov r11, rcx
mov qword [rsp + 0x30], rbp
sub r11, r8
mov qword [rsp + 0x38], rbp
add r11, 0x30
mov qword [rsp + 0x50], rdx
mov qword [rdx], rax
mov r15, r8
mov rax, qword [rcx + 0x40]
sub r15, r12
mov qword [r12 + 0x10], rax
add r15, 8
mov rax, r12
mov qword [rsp + 0x20], r11
sub rax, rcx
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x70], rax
mov ebx, r9d
mov edi, ebp
mov r13, rdx
lea rsi, [rax - 0x30]
mov rax, rcx
sub rax, r12
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x28], rax
xor eax, eax
nop
mov r8, rax
mov r9, rax
mov r10, rax
mov r14, rax
mov rcx, rax
cmp rdi, 2
jl 0x14005d48c
nop word [rax + rax]
mov rax, qword [r12 + rcx*8]
cqo
xor rax, rdx
sub rax, rdx
add r8, rax
mov rax, qword [r12 + rcx*8 + 8]
cqo
add rcx, 2
xor rax, rdx
sub rax, rdx
add r9, rax
lea rax, [rdi - 1]
cmp rcx, rax
jl 0x14005d460
cmp rcx, rdi
jge 0x14005d4a0
mov rax, qword [r12 + rcx*8]
cqo
mov r10, rax
xor r10, rdx
sub r10, rdx
lea rcx, [r9 + r8]
add r10, rcx
jne 0x14005d505
mov rax, qword [r13]
mov r9, qword [rsp + 0x28]
mov qword [r15 + r13], rax
test rdi, rdi
jle 0x14005d828
mov rcx, qword [rsp + 0xd0]
lea rdx, [r9 + 8]
add rcx, r11
mov r8, rdi
add rdx, r13
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx - 0x18]
lea rdx, [rdx + 0x18]
mov qword [rsi + rcx], rax
lea rcx, [rcx + 8]
xor eax, eax
mov qword [rcx - 8], rax
mov qword [rdx - 0x18], rax
sub r8, 1
jne 0x14005d4e0
jmp 0x14005d82a
xor r8d, r8d
test rdi, rdi
jle 0x14005d534
nop dword [rax]
mov rax, qword [r12 + r8*8]
mov ecx, ebx
shl rax, cl
cqo
idiv r10
mov qword [r12 + r8*8], rax
inc r8
imul rax, rax
sar rax, cl
add r14, rax
cmp r8, rdi
jl 0x14005d510
mov rsi, qword [r13]
mov ecx, ebx
mov r8, r14
xor r9d, r9d
shl r8, cl
cmp r8, 1
jl 0x14005d58c
movabs r11, 0x4000000000000000
nop dword [rax]
nop word [rax + rax]
mov rcx, r9
mov rdx, r8
sar r9, 1
or rcx, r11
mov rax, r9
or r9, r11
cmp r8, rcx
cmovl r9, rax
sub r8, rcx
shr r11, 2
cmp rdx, rcx
cmovl r8, rdx
test r11, r11
jne 0x14005d560
mov ecx, ebx
mov r8d, ebp
mov rdx, r9
neg rdx
test rsi, rsi
cmovle rdx, r9
shl r8, 3
mov rax, rdx
imul rax, r10
sar rax, cl
mov qword [r15 + r13], rax
mov rax, rdx
imul rax, rsi
sub rsi, rdx
xor edx, edx
sar rax, cl
mov rcx, qword [rsp + 0xd0]
sub r14, rax
mov qword [rsp + 0x68], r14
mov qword [r13], rsi
call fcn.1400fd5ea
xor eax, eax
mov r15d, eax
test rdi, rdi
jle 0x14005d817
mov rsi, qword [rsp + 0xd0]
lea ebp, [rax + 1]
mov r10, qword [rsp + 0xc0]
lea r13d, [rax + 3]
mov rax, qword [rsp + 0x50]
mov r14, r12
add rax, 8
mov r12, r10
add rax, qword [rsp + 0x28]
mov qword [rsp + 0x60], rax
sub r14, rsi
nop dword [rax]
mov rdi, qword [rsi + r14]
lea rdx, [rsi + r14]
mov qword [rax], rdi
mov ecx, ebx
mov r9, qword [r12]
imul r9, rdi
sar r9, cl
mov rcx, qword [rsp + 0x30]
add r9, qword [rsi]
lea eax, [rcx - 1]
cmp ebp, eax
jg 0x14005d694
mov r8, qword [rsp + 0x40]
lea rax, [r15 + r13]
add r8, rdx
lea r10, [r10 + rax*8]
mov r11d, ecx
sub r11d, ebp
nop dword [rax]
mov rdx, qword [r10]
lea r10, [r10 + 0x18]
mov rax, qword [r14 + r8]
lea r8, [r8 + 8]
imul rax, rdx
imul rdx, rdi
mov ecx, ebx
sar rax, cl
add r9, rax
sar rdx, cl
add qword [r8 - 8], rdx
sub r11, 1
jne 0x14005d660
mov r10, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x60]
inc ebp
mov rdi, qword [rsp + 0x38]
add rax, 0x18
mov qword [rsi], r9
inc r15
add r13, 3
mov qword [rsp + 0x60], rax
add r12, 0x20
add rsi, 8
cmp r15, rdi
jl 0x14005d620
mov r14, qword [rsp + 0xd0]
mov r9, rdi
mov r12, qword [rsp + 0xc8]
mov r8, r14
mov rsi, qword [rsp + 0x68]
mov r11, r12
sub r11, r14
xor r10d, r10d
nop dword [rax + rax]
mov rax, qword [r8]
lea r8, [r8 + 8]
mov ecx, ebx
shl rax, cl
cqo
idiv rsi
mov qword [r8 - 8], rax
mov rdx, qword [r11 + r8 - 8]
imul rdx, rax
sar rdx, cl
add r10, rdx
sub r9, 1
jne 0x14005d6f0
shl r10, cl
mov r11, r12
mov rax, r10
lea rcx, [rsi + rsi]
cqo
sub r11, r14
idiv rcx
mov r8, r14
mov r9, rdi
nop word [rax + rax]
mov rdx, qword [r11 + r8]
lea r8, [r8 + 8]
imul rdx, rax
mov ecx, ebx
sar rdx, cl
sub qword [r8 - 8], rdx
sub r9, 1
jne 0x14005d740
mov r13d, dword [rsp + 0x30]
mov rsi, r12
mov r15, qword [rsp + 0xc0]
dec r13
mov rdx, qword [rsp + 0x20]
sub rsi, r14
xor edi, edi
mov r11, r14
nop dword [rax + rax]
mov rbp, qword [rsi + r11]
mov r14, qword [r11]
cmp rdi, r13
jg 0x14005d7d1
mov r10, r13
mov r8, r11
sub r10, rdi
mov r9, r15
inc r10
nop dword [rax + rax]
mov rdx, qword [rsi + r8]
mov ecx, ebx
mov rax, qword [r8]
lea r8, [r8 + 8]
imul rdx, r14
imul rax, rbp
sar rdx, cl
lea r9, [r9 + 0x18]
sar rax, cl
add rdx, rax
sub qword [r9 - 0x18], rdx
sub r10, 1
jne 0x14005d7a0
mov rdx, qword [rsp + 0x20]
mov rax, qword [rdx + r11 - 0x18]
inc rdi
mov qword [rsi + r11], rax
add r15, 0x20
xor eax, eax
mov qword [rdx + r11], rax
add r11, 8
cmp rdi, qword [rsp + 0x38]
jl 0x14005d780
mov rdi, qword [rsp + 0x38]
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x30]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
mov r9, qword [rsp + 0x28]
jmp 0x14005d82f
mov rsi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
mov r9, qword [rsp + 0x28]
jmp 0x14005d82a
xor eax, eax
mov rdx, qword [rsp + 0x20]
sub rdx, 0x18
mov qword [r13 + 8], r14
sub r13, 8
mov qword [rsp + 0x20], rdx
dec ebp
mov qword [rsp + 0x50], r13
dec rdi
mov qword [rsp + 0x30], rbp
add rsi, 0x18
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x48], rsi
mov r11, rdx
test ebp, ebp
jg 0x14005d440
mov rsi, qword [rsp + 0xc0]
mov ecx, ebx
mov r13, qword [rsp + 0x70]
mov edx, 1
shl rdx, cl
mov r11, rax
mov qword [rsp + 0x58], rdx
mov r15, rsi
lea r14, [rsi + 8]
xor r8d, r8d
mov rax, qword [r15]
lea rcx, [r14 + r13]
mov qword [rcx + r9 + 0x28], rax
mov qword [r15], rdx
mov r10, qword [rcx]
test r10, r10
je 0x14005d94d
mov r9, r14
nop
mov rax, qword [r9]
lea r9, [r9 + 0x18]
mov ecx, ebx
shl rax, cl
cqo
idiv r10
mov qword [r12 + r8*8], rax
inc r8
cmp r8, r11
jle 0x14005d8b0
mov r10, r14
mov rdi, rsi
sub r10, rsi
lea rsi, [r11 + 1]
nop word [rax + rax]
xor r9d, r9d
lea r8, [r11 + 1]
mov rdx, rdi
nop word [rax + rax]
mov rax, qword [r10 + rdx]
mov ecx, ebx
imul rax, qword [rdx]
lea rdx, [rdx + 0x18]
sar rax, cl
add r9, rax
sub r8, 1
jne 0x14005d8f0
mov rax, rdi
nop dword [rax]
mov rdx, qword [r12 + r8*8]
lea rax, [rax + 0x18]
imul rdx, r9
mov ecx, ebx
inc r8
sar rdx, cl
sub qword [rax - 0x18], rdx
cmp r8, r11
jle 0x14005d910
sub r10, 8
add rdi, 8
sub rsi, 1
jne 0x14005d8e0
mov rsi, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x58]
mov rax, r14
lea rcx, [r11 + 1]
xor r8d, r8d
nop word [rax + rax]
mov qword [rax], r8
lea rax, [rax + 0x18]
sub rcx, 1
jne 0x14005d960
inc r11
add r15, 0x20
add r14, 8
cmp r11, 2
jl 0x14005d891
mov rax, qword [rsi + 0x30]
mov rbx, qword [rsp + 0xd8]
mov qword [r12], rax
mov rax, qword [rsi + 0x38]
mov qword [rsi + 0x30], r8
mov qword [r12 + 8], rax
mov rax, qword [rsi + 0x40]
mov qword [rsi + 0x38], r8
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x40], rdx
mov qword [rax], r8
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret