Function at 0x14009fbd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x928
movaps xmmword [rsp + 0x910], xmm7
movaps xmmword [rsp + 0x900], xmm6
mov r15, r8
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
mov rax, qword [0x140124058]
xor rax, rsp
mov qword [rsp + 0x8f8], rax
lea rbx, [rsp + 0x240]
mov r13d, 0xf
movdqa xmm6, xmmword [0x140106c70]
movdqa xmm7, xmmword [0x140106c80]
lea r12, [rsp + 0xd0]
mov rcx, r12
mov rdx, r15
call fcn.14009ff50
lea rdx, [r15 + 0x20]
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.14009ff50
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movq rax, xmm0
movdqa xmm3, xmmword [rsp + 0xd0]
movdqa xmm2, xmmword [rsp + 0xe0]
movq rcx, xmm3
add rcx, rax
pshufd xmm4, xmm0, 0x4e
movq rax, xmm4
pshufd xmm4, xmm3, 0x4e
movq rdx, xmm4
add rdx, rax
movq rax, xmm1
movq rdi, xmm2
add rdi, rax
pshufd xmm4, xmm1, 0x4e
movq rax, xmm4
pshufd xmm4, xmm2, 0x4e
movq rbp, xmm4
add rbp, rax
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xf0]
lea r8, [rsi + rax]
mov qword [rbx - 0x50], rcx
mov qword [rbx - 0x48], rdx
mov qword [rbx - 0x40], rdi
mov qword [rbx - 0x38], rbp
mov qword [rbx - 0x30], r8
paddq xmm0, xmm6
psubq xmm0, xmm3
paddq xmm1, xmm7
psubq xmm1, xmm2
movabs rcx, 0xffffffffffffe
add rax, rcx
sub rax, rsi
movdqu xmmword [rbx - 0x28], xmm0
movdqu xmmword [rbx - 0x18], xmm1
mov qword [rbx - 8], rax
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.1400a4040
mov rcx, rbx
mov rdx, rbx
lea r8, [0x140106cf0]
call fcn.1400a4040
add rbx, 0x78
add r15, 0x40
dec r13
jne 0x14009fc30
pxor xmm6, xmm6
mov r14, qword [rsp + 0x20]
movdqu xmmword [r14 + 0x10], xmm6
movdqu xmmword [r14], xmm6
xor eax, eax
mov qword [r14 + 0x20], rax
movdqu xmmword [r14 + 0x40], xmm6
movdqu xmmword [r14 + 0x30], xmm6
mov ecx, 1
mov qword [r14 + 0x28], rcx
movdqu xmmword [r14 + 0x68], xmm6
movdqu xmmword [r14 + 0x58], xmm6
mov qword [r14 + 0x50], rcx
movdqu xmmword [r14 + 0x88], xmm6
movdqu xmmword [r14 + 0x78], xmm6
mov qword [r14 + 0x98], rax
lea r15, [rsp + 0x180]
mov r12d, 0x3f
lea r13, [rsp + 0x30]
mov rsi, r12
shr rsi, 3
add rsi, qword [rsp + 0x28]
mov eax, r12d
and eax, 7
xor edx, edx
xor ebp, ebp
movzx ebx, byte [rsi + rdx*8]
mov ecx, eax
shr ebx, cl
and ebx, 1
mov ecx, edx
shl ebx, cl
or bpl, bl
inc rdx
cmp rdx, 4
jne 0x14009fdbc
movdqu xmmword [r15 + 0x10], xmm6
movdqu xmmword [r15], xmm6
mov eax, 1
mov qword [rsp + 0x178], rax
movdqu xmmword [r15 + 0x38], xmm6
movdqu xmmword [r15 + 0x28], xmm6
mov qword [rsp + 0x1a0], rax
movdqu xmmword [r15 + 0x58], xmm6
movdqu xmmword [r15 + 0x48], xmm6
mov qword [r15 + 0x68], 0
lea rcx, [rsp + 0x1f0]
mov edx, ebp
xor dl, al
movzx edx, dl
dec edx
shr edx, 0x1f
neg rdx
xor esi, esi
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 5
jne 0x14009fe30
mov esi, 5
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 0xa
jne 0x14009fe5b
mov esi, 0xa
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 0xf
jne 0x14009fe86
inc rax
add rcx, 0x78
cmp rax, 0x10
jne 0x14009fe1f
lea rsi, [rsp + 0xd0]
mov rcx, rsi
mov rdx, r14
call fcn.14009f590
mov rcx, r13
mov rdx, r14
mov r8, rsi
call fcn.14009f6d0
mov rcx, r14
mov rdx, r13
call fcn.14009f670
mov rcx, r13
mov rdx, r14
lea r8, [rsp + 0x178]
call fcn.1400a0100
mov rcx, r14
mov rdx, r13
call fcn.14009f670
dec r12
cmp r12d, 0x40
jb 0x14009fda6
mov rcx, qword [rsp + 0x8f8]
xor rcx, rsp
call fcn.1400a5a90
movaps xmm6, xmmword [rsp + 0x900]
movaps xmm7, xmmword [rsp + 0x910]
add rsp, 0x928
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret