Function at 0x14003d740
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 0x14003d799
test rdi, rdi
jne 0x14003d796
xor eax, eax
jmp 0x14003d966
dec rdi
mov qword [rsp + 0x70], r15
mov r15, qword [rbp + 0x50]
mov rcx, r15
test rdi, rdi
je 0x14003d7fa
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.14003c7a0
mov rcx, r14
add r14, 0x10
add rbx, 0x10
dec rdi
jne 0x14003d7b0
mov r12, qword [rbp + 0x48]
test rsi, rsi
je 0x14003d944
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.14003c7a0
xor r9d, r9d
test rsi, rsi
je 0x14003d923
cmp rsi, 0x10
jb 0x14003d8e5
lea rcx, [rsi + 0xf]
lea r8, [r14 + 0x10]
lea r10, [rbp + rsi - 0x11]
add rcx, r14
cmp r8, r10
ja 0x14003d86e
lea rax, [rbp - 0x10]
cmp rcx, rax
jae 0x14003d8e5
lea rdx, [rsi + 0xf]
lea rax, [rbx + 0x10]
add rdx, rbx
cmp r8, rdx
ja 0x14003d883
cmp rcx, rax
jae 0x14003d8e5
lea rcx, [rbp - 0x10]
cmp rcx, rdx
ja 0x14003d891
cmp r10, rax
jae 0x14003d8e5
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 0x14003d8c0
cmp r9, rsi
jae 0x14003d923
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 0x14003d900
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.14003c7a0
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