Function at 0x140011615
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, r9
mov rbx, r8
mov qword [rsp + 0x40], rdx
mov rdi, rcx
mov rbp, qword [rsp + 0xc0]
lea r12, [rbp - 1]
lea r8, [rbp*8]
xor edx, edx
call fcn.140002794
mov rax, rbp
sub rax, 1
mov qword [rsp + 0x38], rax
jb 0x140011914
and r12, 0xfffffffffffffffc
lea r14, [r12 + 1]
mov rax, qword [rsp + 0xc8]
shl rax, 2
mov qword [rsp + 0x28], rax
xor r15d, r15d
xor r13d, r13d
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + r13*8]
mov r11, qword [rdi]
mov rax, qword [rbx]
mov r8, rax
imul r8, rcx
shl rcx, 2
add r8, r11
imul r8, qword [rsp + 0x28]
mul rcx
mov r9, rdx
mov r10, rax
mov rax, r8
mul qword [rsi]
shl r11, 2
add r11, r10
adc r9, 0
add r11, rax
adc r9, rdx
test r12, r12
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r13
je 0x14001181c
mov r15d, 4
mov r12, r15
mov rax, rcx
mul qword [rbx + r15*8 - 0x18]
mov r10, rdx
mov r11, rax
mov rax, r8
mul qword [rsi + r15*8 - 0x18]
mov rbp, qword [rdi + r15*8 - 0x18]
shl rbp, 2
lea r13, [r9*4]
add r13, r11
adc r10, 0
mov r15, qword [rdi + r15*8 - 0x10]
add r13, rax
adc r10, rdx
shr r9, 0x3e
add r13, rbp
adc r9, r10
shr r13, 2
mov qword [rdi + r12*8 - 0x20], r13
mov rax, rcx
mul qword [rbx + r12*8 - 0x10]
mov r10, rdx
mov r11, rax
mov rax, r8
mul qword [rsi + r12*8 - 0x10]
add rax, r11
adc rdx, r10
shl r15, 2
add r15, rax
adc rdx, 0
lea rax, [r9*4]
shr r9, 0x3e
add rax, r15
adc r9, rdx
shr rax, 2
mov qword [rdi + r12*8 - 0x18], rax
mov rax, rcx
mul qword [rbx + r12*8 - 8]
mov r10, rdx
mov r11, rax
mov rax, r8
mul qword [rsi + r12*8 - 8]
add rax, r11
adc rdx, r10
mov r10, qword [rdi + r12*8 - 8]
shl r10, 2
add r10, rax
adc rdx, 0
lea rax, [r9*4]
shr r9, 0x3e
add rax, r10
adc r9, rdx
shr rax, 2
mov qword [rdi + r12*8 - 0x10], rax
mov rax, rcx
mul qword [rbx + r12*8]
mov r10, rdx
mov r11, rax
mov rax, r8
mul qword [rsi + r12*8]
add rax, r11
adc rdx, r10
mov r10, qword [rdi + r12*8]
shl r10, 2
add r10, rax
adc rdx, 0
lea rax, [r9*4]
shr r9, 0x3e
add rax, r10
adc r9, rdx
shr rax, 2
mov qword [rdi + r12*8 - 8], rax
lea r15, [r12 + 4]
inc r12
cmp r12, r14
jb 0x1400116e1
add r15, 0xfffffffffffffffd
mov rbp, qword [rsp + 0xc0]
jmp 0x140011822
mov r15d, 1
cmp r15, rbp
jae 0x140011873
mov rax, rcx
mul qword [rbx + r15*8]
mov r10, rdx
mov r11, rax
mov rax, r8
mul qword [rsi + r15*8]
mov r12, qword [rdi + r15*8]
shl r12, 2
lea r13, [r9*4]
add r13, r11
adc r10, 0
add r13, rax
adc r10, rdx
shr r9, 0x3e
add r13, r12
adc r9, r10
shr r13, 2
mov qword [rdi + r15*8 - 8], r13
inc r15
cmp rbp, r15
jne 0x140011827
mov r15, qword [rsp + 0x50]
add r15, r9
mov rax, r15
movabs r10, 0x3fffffffffffffff
and rax, r10
mov rcx, qword [rsp + 0x38]
mov qword [rdi + rcx*8], rax
shr r15, 0x3e
mov r13, qword [rsp + 0x48]
inc r13
cmp r13, rbp
mov r12, qword [rsp + 0x30]
jne 0x140011685
xor eax, eax
xor ecx, ecx
add rax, qword [rdi + rcx*8]
mov rdx, rax
sub rdx, qword [rsi + rcx*8]
mov rax, rdx
sar rax, 0x3f
inc rcx
cmp rbp, rcx
jne 0x1400118b2
xor ecx, ecx
test rdx, rdx
setns cl
or ecx, r15d
neg ecx
mov rax, rcx
shl rax, 0x20
or rax, rcx
xor edx, edx
xor ecx, ecx
mov r8, qword [rdi + rcx*8]
add rdx, r8
sub rdx, qword [rsi + rcx*8]
mov r9, rdx
sar r9, 0x3f
and rdx, r10
xor rdx, r8
and rdx, rax
xor rdx, r8
mov qword [rdi + rcx*8], rdx
inc rcx
mov rdx, r9
cmp rbp, rcx
jne 0x1400118e7
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret