Function at 0x14004e690
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 0x14004e6e9
test rdi, rdi
jne 0x14004e6e6
xor eax, eax
jmp 0x14004e8b6
dec rdi
mov qword [rsp + 0x70], r15
mov r15, qword [rbp + 0x50]
mov rcx, r15
test rdi, rdi
je 0x14004e74a
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.14004d6f0
mov rcx, r14
add r14, 0x10
add rbx, 0x10
dec rdi
jne 0x14004e700
mov r12, qword [rbp + 0x48]
test rsi, rsi
je 0x14004e894
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.14004d6f0
xor r9d, r9d
test rsi, rsi
je 0x14004e873
cmp rsi, 0x10
jb 0x14004e835
lea rcx, [rsi + 0xf]
lea r8, [r14 + 0x10]
lea r10, [rbp + rsi - 0x11]
add rcx, r14
cmp r8, r10
ja 0x14004e7be
lea rax, [rbp - 0x10]
cmp rcx, rax
jae 0x14004e835
lea rdx, [rsi + 0xf]
lea rax, [rbx + 0x10]
add rdx, rbx
cmp r8, rdx
ja 0x14004e7d3
cmp rcx, rax
jae 0x14004e835
lea rcx, [rbp - 0x10]
cmp rcx, rdx
ja 0x14004e7e1
cmp r10, rax
jae 0x14004e835
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 0x14004e810
cmp r9, rsi
jae 0x14004e873
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 0x14004e850
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.14004d6f0
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