Function at 0x1400d1440
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push rbp
push r12
push r15
sub rsp, 0x30
mov r12d, dword [rsp + 0x88]
mov rbp, r9
movsxd r15, dword [rsp + 0x80]
mov r10, r8
mov r11, rcx
test r12d, r12d
je 0x1400d17c7
mov qword [rax + 8], rbx
mov qword [rax - 0x20], rsi
mov rsi, qword [rsp + 0x70]
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
lea eax, [r15 - 0x20]
movsxd r13, eax
mov r14, 0xfffffffffffffff0
lea eax, [r15 - 4]
sub r14, r8
movsxd rcx, eax
mov qword [rsp], rcx
nop dword [rax + rax]
movzx eax, r11b
dec r12d
or al, r10b
xor r8d, r8d
or al, sil
xor edx, edx
test al, 0xf
jne 0x1400d1538
test r13, r13
js 0x1400d15a4
lea r8, [r13 + 0x20]
mov r9, r11
shr r8, 5
lea rax, [r10 + 0x10]
mov rdx, r8
mov rbx, rsi
mov rcx, r8
sub r9, r10
shl r8d, 5
sub rbx, r10
shl rdx, 5
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [r9 + rax - 0x10]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rbx + rax - 0x30], xmm1
movdqu xmm2, xmmword [r9 + rax - 0x20]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm2, xmm0
movdqu xmmword [rbx + rax - 0x20], xmm2
sub rcx, 1
jne 0x1400d1500
jmp 0x1400d15a4
test r13, r13
js 0x1400d15a4
lea rdx, [r13 + 0x20]
mov rbx, r11
shr rdx, 5
lea rcx, [r10 + 0x10]
mov r8d, edx
mov rdi, rsi
shl r8d, 5
sub rbx, r10
sub rdi, r10
mov r9, rdx
shl rdx, 5
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmm1, xmmword [rcx + rbx - 0x10]
lea rcx, [rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rdi - 0x30], xmm1
movdqu xmm2, xmmword [rcx + rbx - 0x20]
movdqu xmm0, xmmword [rcx - 0x20]
pxor xmm2, xmm0
movdqu xmmword [rcx + rdi - 0x20], xmm2
sub r9, 1
jne 0x1400d1570
lea r9d, [r15 - 8]
cmp r8d, r9d
jg 0x1400d15fd
mov eax, r9d
movsxd rcx, r8d
sub eax, r8d
mov rbx, rsi
shr eax, 3
mov rdi, r10
add rcx, r11
sub rbx, r11
sub rdi, r11
inc eax
mov r9d, eax
lea r8d, [r8 + rax*8]
lea rdx, [rdx + rax*8]
nop word [rax + rax]
movq xmm1, qword [rdi + rcx]
movq xmm0, qword [rcx]
lea rcx, [rcx + 8]
pxor xmm1, xmm0
movq qword [rbx + rcx - 8], xmm1
sub r9, 1
jne 0x1400d15e0
mov rcx, qword [rsp]
cmp rdx, rcx
jg 0x1400d166b
lea rax, [r10 + 1]
mov r9, r11
mov rbx, rsi
add rax, rdx
sub r9, r10
sub rbx, r10
sub rcx, rdx
shr rcx, 2
lea rdi, [rcx + 1]
lea r8d, [r8 + rdi*4]
nop dword [rax + rax]
movzx edx, byte [r9 + rax]
xor dl, byte [rax]
movzx ecx, byte [r9 + rax - 1]
xor cl, byte [rax - 1]
mov byte [rbx + rax - 1], cl
mov byte [rbx + rax], dl
movzx edx, byte [r9 + rax + 2]
movzx ecx, byte [r9 + rax + 1]
xor dl, byte [rax + 2]
xor cl, byte [rax + 1]
mov byte [rbx + rax + 1], cl
mov byte [rbx + rax + 2], dl
lea rax, [rax + 4]
sub rdi, 1
jne 0x1400d1630
mov ecx, r15d
sub ecx, r8d
cmp r8d, r15d
jge 0x1400d175d
cmp ecx, 0x40
jb 0x1400d175d
lea eax, [r15 - 1]
movsxd rdx, r8d
movsxd r9, eax
lea rdi, [rdx + rsi]
lea rax, [r9 + r10]
lea rbx, [r9 + rsi]
lea rbp, [rdx + r10]
cmp rdi, rax
ja 0x1400d16ab
cmp rbx, rbp
jae 0x1400d1758
add rdx, r11
lea rax, [r9 + r11]
cmp rdi, rax
ja 0x1400d16c0
cmp rbx, rdx
jae 0x1400d1758
and ecx, 0x8000003f
jge 0x1400d16cf
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r15d
mov rdx, r11
sub eax, ecx
sub rdx, r10
mov r9, rsi
movsxd rbx, eax
sub r9, r10
lea rcx, [rbp + 0x10]
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r8d, 0x40
movdqu xmm1, xmmword [rdx + rcx - 0x10]
movdqu xmm2, xmmword [rdx + rcx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rcx + r14]
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmmword [r9 + rcx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rcx - 0x30]
movdqu xmm1, xmmword [rdx + rcx - 0x30]
movdqu xmmword [r9 + rcx - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm2, xmmword [rdx + rcx - 0x20]
movdqu xmmword [r9 + rcx - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rcx + r9 - 0x20], xmm2
cmp rax, rbx
jl 0x1400d16f0
mov rbp, qword [rsp + 0x68]
movsxd rax, r8d
cmp rax, r15
jge 0x1400d1795
mov r8, r11
lea rcx, [rax + r10]
mov r9, rsi
sub r8, r10
sub r9, r10
mov rdx, r15
sub rdx, rax
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400d1780
add r11, qword [rsp + 0x58]
add r10, rbp
add rsi, qword [rsp + 0x78]
sub r14, rbp
test r12d, r12d
jne 0x1400d14b0
mov r14, qword [rsp + 0x10]
mov r13, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop r15
pop r12
pop rbp
ret