Function at 0x1400d5be0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r14
sub rsp, 0x38
mov esi, dword [rsp + 0x90]
mov rdi, rcx
mov ecx, r9d
mov ebp, edx
call fcn.1400bcd40
mov r14d, eax
test eax, eax
js 0x1400d5d11
mov qword [rsp + 0x60], rbx
mov edx, 0xff
mov qword [rsp + 0x30], r15
lea r15d, [rsi - 1]
and r15d, 7
mov ecx, r15d
shl edx, cl
test byte [rdi], dl
jne 0x1400d5ead
lea rbx, [rdi + 1]
test r15d, r15d
lea ecx, [rbp - 1]
cmovne ecx, ebp
cmovne rbx, rdi
mov edi, ecx
sub edi, eax
sub edi, 1
jns 0x1400d5c55
mov eax, 0xffffff16
jmp 0x1400d5d07
mov ebp, dword [rsp + 0x88]
cmp ebp, 0xffffffff
jne 0x1400d5c78
mov ebp, r14d
cmp esi, 0x400
jne 0x1400d5c8a
cmp r14d, 0x40
jne 0x1400d5c8a
lea ebp, [r14 - 2]
jmp 0x1400d5c8a
cmp ebp, r14d
jg 0x1400d5ea3
cmp ebp, 0xffffffff
jl 0x1400d5ea3
lea eax, [rbp + 1]
cmp edi, eax
jl 0x1400d5ea3
lea eax, [rcx - 1]
cmp byte [rax + rbx], 0xbc
jne 0x1400d5ead
mov qword [rsp + 0x68], r12
movsxd r12, edi
mov rcx, r12
call fcn.1400ac7b0
mov rsi, rax
test rax, rax
jne 0x1400d5cbf
lea eax, [rsi - 0x7d]
jmp 0x1400d5d02
mov rax, qword [rsp + 0x98]
lea rdx, [rbx + r12]
mov ecx, dword [rsp + 0x80]
mov r9, rsi
mov qword [rsp + 0x28], rax
mov r8d, r14d
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x78], r13
call fcn.1400d4870
mov r13d, eax
test eax, eax
je 0x1400d5d1b
mov rcx, rsi
call fcn.1400ac790
mov eax, r13d
mov r13, qword [rsp + 0x78]
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x30]
add rsp, 0x38
pop r14
pop rdi
pop rsi
pop rbp
ret
mov eax, 1
xor edx, edx
mov ecx, r15d
mov r9, rsi
shl al, cl
sub r9, rbx
dec al
and byte [rsi], al
and byte [rbx], al
mov eax, edi
sub eax, ebp
dec eax
movsxd r8, eax
test eax, eax
jle 0x1400d5d5c
mov rcx, rbx
movzx eax, byte [rcx]
cmp byte [r9 + rcx], al
jne 0x1400d5d6a
inc rcx
inc edx
mov rax, rcx
sub rax, rbx
cmp rax, r8
jl 0x1400d5d43
movsxd rcx, edx
movzx eax, byte [rbx + rcx]
xor al, 1
cmp byte [rcx + rsi], al
je 0x1400d5d79
mov rcx, rsi
call fcn.1400ac790
mov eax, 0xffffff06
jmp 0x1400d5cfd
inc edx
mov r8d, edi
sub r8d, edx
mov r10d, edx
cmp edx, edi
jge 0x1400d5e50
cmp r8d, 0x40
jb 0x1400d5e50
lea eax, [rdi - 1]
movsxd rdx, edx
movsxd rcx, eax
lea r11, [rbx + rdx]
add rdx, rsi
lea rax, [rcx + rsi]
lea r15, [rbx + rcx]
cmp r11, rax
ja 0x1400d5dbc
cmp r15, rdx
jae 0x1400d5e50
and r8d, 0x8000003f
jge 0x1400d5dcf
dec r8d
or r8d, 0xffffffc0
inc r8d
sub edi, r8d
lea rcx, [r11 + 0x10]
mov rdx, rsi
movsxd rdi, edi
sub rdx, rbx
mov r8, 0xfffffffffffffff0
sub r8, rbx
nop dword [rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r10d, 0x40
movdqu xmm1, xmmword [rdx + rcx - 0x10]
movdqu xmm2, xmmword [rcx + rdx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rcx + r8]
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rdx + rcx - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [rdx + rcx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
cmp rax, rdi
jl 0x1400d5df0
movsxd rcx, r10d
cmp rcx, r12
jge 0x1400d5e81
mov rdx, r12
lea rax, [rbx + rcx]
sub rdx, rcx
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r9 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x1400d5e70
mov rcx, rsi
call fcn.1400ac790
movsxd rax, ebp
sub rbx, rax
mov rax, qword [rsp + 0x70]
add rbx, r12
mov qword [rax], rbx
lea eax, [r14 + rbp]
jmp 0x1400d5cfd
mov eax, 0xffffff06
jmp 0x1400d5d07
mov eax, 0xffffff3f
jmp 0x1400d5d07