Function at 0x14007ec70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rbp
push rdi
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x40
mov rbx, rdx
mov rax, r9
mov r12, r9
cqo
mov r14, r8
mov r13, rcx
and edx, 0xf
add rax, rdx
mov rdi, rax
and eax, 0xf
sub rax, rdx
sar rdi, 4
mov rsi, rax
test rax, rax
je 0x14007ecc9
test rdi, rdi
jne 0x14007ecc6
xor eax, eax
jmp 0x14007ee96
dec rdi
mov qword [rsp + 0x70], r15
mov r15, qword [rbp + 0x50]
mov rcx, r15
test rdi, rdi
je 0x14007ed2a
nop word [rax + rax]
mov eax, dword [rbx]
mov edx, dword [r13 + 4]
lea r8, [rbp - 0x20]
xor eax, dword [rcx]
mov r9, r14
mov dword [rbp - 0x20], eax
mov eax, dword [rcx + 4]
xor eax, dword [rbx + 4]
mov dword [rbp - 0x1c], eax
mov eax, dword [rcx + 8]
xor eax, dword [rbx + 8]
mov dword [rbp - 0x18], eax
mov eax, dword [rcx + 0xc]
lea rcx, [r13 + 8]
xor eax, dword [rbx + 0xc]
mov dword [rbp - 0x14], eax
call fcn.14007dcd0
mov rcx, r14
add r14, 0x10
add rbx, 0x10
dec rdi
jne 0x14007ece0
mov r12, qword [rbp + 0x48]
test rsi, rsi
je 0x14007ee74
movups xmm0, xmmword [rbx]
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x20]
movups xmmword [rbp - 0x20], xmm0
movd eax, xmm0
xor eax, dword [rcx]
mov dword [rbp - 0x20], eax
mov eax, dword [rcx + 4]
xor dword [rbp - 0x1c], eax
mov eax, dword [rcx + 8]
xor dword [rbp - 0x18], eax
mov eax, dword [rcx + 0xc]
lea rcx, [r13 + 8]
xor dword [rbp - 0x14], eax
call fcn.14007dcd0
xor r9d, r9d
test rsi, rsi
je 0x14007ee53
cmp rsi, 0x10
jb 0x14007ee15
lea rcx, [rsi + 0xf]
lea r8, [r14 + 0x10]
lea r10, [rbp + rsi - 0x11]
add rcx, r14
cmp r8, r10
ja 0x14007ed9e
lea rax, [rbp - 0x10]
cmp rcx, rax
jae 0x14007ee15
lea rdx, [rsi + 0xf]
lea rax, [rbx + 0x10]
add rdx, rbx
cmp r8, rdx
ja 0x14007edb3
cmp rcx, rax
jae 0x14007ee15
lea rcx, [rbp - 0x10]
cmp rcx, rdx
ja 0x14007edc1
cmp r10, rax
jae 0x14007ee15
mov rax, rsi
lea r8, [rbp - 0x10]
mov rdx, rsi
and eax, 0xf
lea r10, [rbp - 0x10]
lea rcx, [rbp - 0x10]
sub rdx, rax
mov rax, rbx
sub rax, r8
lea r8, [rax + 0x10]
mov rax, r14
sub rax, r10
nop dword [rax]
movdqu xmm1, xmmword [rcx]
movdqu xmm0, xmmword [r8 + rcx]
add r9, 0x10
lea rcx, [rcx + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rcx - 0x10], xmm0
movdqu xmmword [rax + rcx], xmm1
cmp r9, rdx
jb 0x14007edf0
cmp r9, rsi
jae 0x14007ee53
lea rax, [rbp - 0x10]
lea rcx, [rbp - 0x10]
mov r10, r14
sub rbx, rax
sub r10, rcx
nop dword [rax + rax]
lea r8, [rbp - 0x10]
add r8, r9
inc r9
movzx edx, byte [r8]
movzx eax, byte [r8 + rbx + 0x10]
xor al, dl
mov byte [r8 + r10 + 0x10], dl
mov byte [r8], al
cmp r9, rsi
jb 0x14007ee30
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.14007dcd0
lea rcx, [rbp - 0x10]
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [r14], xmm0
mov eax, dword [rcx]
mov dword [r15], eax
mov eax, dword [rcx + 4]
mov dword [r15 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r15 + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [r15 + 0xc], eax
mov r15, qword [rsp + 0x70]
mov rax, r12
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret