Function at 0x14003d330
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
xor ebx, ebx
mov r11, r9
mov r10, rcx
shr r11, 3
mov edi, ebx
test r11, r11
je 0x14003d42b
cmp r11, 4
jb 0x14003d3e7
add rcx, 0xfffffffffffffff8
lea rax, [r8 - 8]
lea rax, [rax + r11*8]
lea rcx, [rcx + r11*8]
cmp r10, rax
ja 0x14003d37b
cmp rcx, r8
jae 0x14003d3e7
lea rax, [rdx - 8]
lea rax, [rax + r11*8]
cmp r10, rax
ja 0x14003d38d
cmp rcx, rdx
jae 0x14003d3e7
mov rax, r11
mov rbp, r11
mov rcx, r10
and eax, 3
mov rsi, r8
sub rcx, rdx
sub rbp, rax
lea rax, [rdx + 0x10]
sub rsi, rdx
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rsi + rax - 0x10]
add rdi, 4
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x30], xmm1
movdqu xmm1, xmmword [rsi + rax - 0x20]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x20], xmm1
cmp rdi, rbp
jb 0x14003d3b0
cmp rdi, r11
jae 0x14003d42b
mov qword [rsp + 0x10], r14
mov rsi, rdx
mov r14, r10
sub r11, rdi
lea rcx, [r8 + rdi*8]
sub r14, r8
sub rsi, r8
add rdi, r11
nop word [rax + rax]
mov rax, qword [rsi + rcx]
lea rcx, [rcx + 8]
xor rax, qword [rcx - 8]
mov qword [r14 + rcx - 8], rax
dec r11
jne 0x14003d410
mov r14, qword [rsp + 0x10]
lea rdi, [rdi*8]
sub r9, rdi
je 0x14003d5e5
add r10, rdi
add rdx, rdi
add r8, rdi
mov r11, r9
mov rdi, rbx
shr r11, 2
test r11, r11
je 0x14003d515
cmp r11, 8
jb 0x14003d4e7
lea rax, [r11 - 1]
lea rcx, [r11 - 1]
lea rax, [r8 + rax*4]
lea rcx, [r10 + rcx*4]
cmp r10, rax
ja 0x14003d47c
cmp rcx, r8
jae 0x14003d4e7
lea rax, [r11 - 1]
lea rax, [rdx + rax*4]
cmp r10, rax
ja 0x14003d48e
cmp rcx, rdx
jae 0x14003d4e7
mov rax, r11
mov rbp, r11
mov rcx, r10
and eax, 7
mov rsi, r8
sub rcx, rdx
sub rbp, rax
lea rax, [rdx + 0x10]
sub rsi, rdx
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rax + rsi - 0x10]
add rdi, 8
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + rcx - 0x30], xmm1
movdqu xmm1, xmmword [rax + rsi - 0x20]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + rcx - 0x20], xmm1
cmp rdi, rbp
jb 0x14003d4b0
cmp rdi, r11
jae 0x14003d515
mov rsi, rdx
mov rbp, r10
sub r11, rdi
sub rsi, r8
sub rbp, r8
lea rcx, [r8 + rdi*4]
add rdi, r11
mov eax, dword [rcx + rsi]
lea rcx, [rcx + 4]
xor eax, dword [rcx - 4]
mov dword [rcx + rbp - 4], eax
dec r11
jne 0x14003d502
lea rdi, [rdi*4]
sub r9, rdi
je 0x14003d5e5
add r10, rdi
add rdx, rdi
add r8, rdi
test r9, r9
je 0x14003d5e5
cmp r9, 0x20
jb 0x14003d5b9
lea rax, [r8 - 1]
lea rcx, [r10 - 1]
add rax, r9
add rcx, r9
cmp r10, rax
ja 0x14003d556
cmp rcx, r8
jae 0x14003d5b9
lea rax, [rdx - 1]
add rax, r9
cmp r10, rax
ja 0x14003d567
cmp rcx, rdx
jae 0x14003d5b9
mov rax, r9
mov rdi, r9
mov rcx, r10
and eax, 0x1f
mov r11, r8
sub rcx, rdx
sub rdi, rax
mov rax, rdx
sub r11, rdx
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + r11]
add rbx, 0x20
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + rcx - 0x20], xmm1
movdqu xmm1, xmmword [r11 + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x10], xmm1
cmp rbx, rdi
jb 0x14003d582
cmp rbx, r9
jae 0x14003d5e5
sub rdx, r8
sub r10, r8
lea rcx, [rbx + r8]
sub r9, rbx
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
lea rcx, [rcx + 1]
xor al, byte [rcx - 1]
mov byte [rcx + r10 - 1], al
dec r9
jne 0x14003d5d0
mov rbx, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
pop rdi
ret