Function at 0x1400d5810
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rax - 0xd8]
sub rsp, 0x1c0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x140532100]
xor rax, rsp
mov qword [rbp + 0x80], rax
movsx r9, r8b
mov al, r8b
mov rsi, r9
xorps xmm0, xmm0
shr rsi, 0x3f
mov rdi, rcx
xor ecx, ecx
neg sil
and al, sil
mov qword [rbp + 0x31], rcx
add al, al
mov dword [rbp + 0x39], ecx
sub r8b, al
mov word [rbp + 0x3d], cx
lea rax, [r9 - 1]
mov byte [rbp + 0x3f], cl
shr rax, 0x3f
lea r10d, [rcx + 1]
not r9
movzx r14d, r8b
shr r9, 0x3f
lea r11d, [rcx + 8]
and al, r9b
xor ebx, ebx
neg al
and al, 1
mov byte [rbp + 0x20], al
mov byte [rbp + 0x40], al
xor eax, eax
mov qword [rbp + 0x51], rax
mov qword [rbp + 0x59], rax
mov qword [rbp + 0x71], rax
mov dword [rbp + 0x79], eax
mov word [rbp + 0x7d], ax
mov byte [rbp + 0x7f], al
movsxd rax, edx
movups xmmword [rbp + 0x21], xmm0
movups xmmword [rbp + 0x41], xmm0
lea r9, [rax + rax*2]
shl r9, 8
lea rax, [rbp + 0x20]
sub r9, rax
lea rax, [0x1404e93c0]
add r9, rax
movups xmmword [rbp + 0x61], xmm0
movsxd rdx, r10d
mov r8, rbx
xor rdx, r14
lea rax, [rdx - 1]
not rdx
shr rdx, 0x3f
shr rax, 0x3f
and dl, al
neg dl
lea rcx, [rbp + 0x20]
add rcx, r8
inc r8
mov al, byte [rcx + r9]
and al, dl
xor byte [rcx], al
cmp r8, 0x60
jb 0x1400d5900
inc r10d
add r9, 0x60
sub r11, 1
jne 0x1400d58e4
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x48]
call fcn.1400d0530
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.1400d0530
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.1400d0530
movups xmm8, xmmword [rsp + 0x48]
lea r8, [rdi + 0x28]
movabs rcx, 0xfffffffffffda
movups xmm7, xmmword [rsp + 0x58]
lea rdx, [rdi + 0x50]
movups xmm4, xmmword [rsp + 0x70]
movsd xmm6, qword [rsp + 0x68]
movups xmm3, xmmword [rbp - 0x80]
movups xmm5, xmmword [rsp + 0x20]
movsd xmm2, qword [rbp - 0x70]
movups xmm0, xmmword [rsp + 0x30]
movsd xmm1, qword [rsp + 0x40]
movq rax, xmm5
movups xmmword [rdi], xmm8
sub rcx, rax
movups xmmword [rdi + 0x10], xmm7
mov qword [rbp - 0x10], rcx
movsd qword [rdi + 0x20], xmm6
movups xmmword [r8], xmm4
movups xmmword [r8 + 0x10], xmm3
movsd qword [r8 + 0x20], xmm2
movups xmmword [rdx], xmm5
movups xmmword [rdx + 0x10], xmm0
movsd qword [rdx + 0x20], xmm1
movups xmmword [rbp - 0x60], xmm4
movups xmmword [rbp - 0x50], xmm3
movsd qword [rbp - 0x40], xmm2
movups xmmword [rbp - 0x38], xmm8
movups xmmword [rbp - 0x28], xmm7
movsd qword [rbp - 0x18], xmm6
movabs rax, 0xffffffffffffe
sub rax, qword [rsp + rbx + 0x28]
mov qword [rbp + rbx - 8], rax
add rbx, 8
cmp rbx, 0x20
jl 0x1400d59df
movzx ecx, sil
lea r10, [rbp - 0x60]
shr rcx, 7
mov r9d, 5
neg rcx
mov r11d, r9d
sub r10, rdi
mov rax, qword [rdi]
xor rax, qword [r10 + rdi]
and rax, rcx
xor qword [rdi], rax
lea rdi, [rdi + 8]
sub r11, 1
jne 0x1400d5a18
lea r10, [rbp - 0x38]
mov r11, r9
sub r10, r8
mov rax, qword [r8]
xor rax, qword [r10 + r8]
and rax, rcx
xor qword [r8], rax
lea r8, [r8 + 8]
sub r11, 1
jne 0x1400d5a39
lea r8, [rbp - 0x10]
sub r8, rdx
mov rax, qword [rdx]
xor rax, qword [r8 + rdx]
and rax, rcx
xor qword [rdx], rax
lea rdx, [rdx + 8]
sub r9, 1
jne 0x1400d5a57
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.1400d83e0
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret