Function at 0x18002fbd0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rsi
push r13
push r14
sub rsp, 0x80
mov rax, qword [0x1800ff400]
xor rax, rsp
mov qword [rsp + 0x58], rax
sub rdx, rcx
movabs rax, 0x2aaaaaaaaaaaaaab
imul rdx
mov rsi, rcx
mov r13, rdx
sar r13, 3
mov rax, r13
shr rax, 0x3f
add r13, rax
mov r14, r13
sar r14, 1
test r14, r14
jle 0x18002fe73
mov qword [r11 + 0x18], rbx
lea r8, [r13 - 1]
mov qword [r11 - 0x20], rbp
mov r9d, 0xff
mov qword [r11 - 0x28], rdi
mov qword [r11 - 0x30], r12
mov r12, r8
mov qword [r11 - 0x38], r15
lea r15, [r14 + r14*2]
sar r12, 1
shl r15, 4
add r15, rcx
mov qword [rsp + 0x20], r12
nop word [rax + rax]
movups xmm3, xmmword [r15 - 0x30]
lea r15, [r15 - 0x30]
dec r14
mov rdi, r14
mov rdx, r14
movups xmm4, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmmword [rsp + 0x28], xmm3
movups xmmword [rsp + 0x38], xmm4
movups xmmword [rsp + 0x48], xmm2
cmp r14, r12
jge 0x18002fd04
lea rbx, [rdx + rdx]
lea rcx, [rbx + 2]
lea rcx, [rcx + rcx*2]
shl rcx, 4
add rcx, rsi
lea rdx, [rcx - 0x30]
call fcn.180031620
movzx edx, al
lea rax, [rdi + rdi*2]
add rax, rax
xor rdx, 1
inc rdx
add rdx, rbx
mov rdi, rdx
lea rcx, [rdx + rdx*2]
add rcx, rcx
movups xmm0, xmmword [rsi + rcx*8]
movups xmmword [rsi + rax*8], xmm0
movups xmm1, xmmword [rsi + rcx*8 + 0x10]
movups xmmword [rsi + rax*8 + 0x10], xmm1
movups xmm0, xmmword [rsi + rcx*8 + 0x20]
movups xmmword [rsi + rax*8 + 0x20], xmm0
cmp rdx, r12
jl 0x18002fc90
movups xmm2, xmmword [rsp + 0x48]
lea r8, [r13 - 1]
mov r9d, 0xff
movups xmm4, xmmword [rsp + 0x38]
movups xmm3, xmmword [rsp + 0x28]
cmp rdi, r12
jne 0x18002fd44
test r13b, 1
jne 0x18002fd44
lea rax, [rdi + rdi*2]
mov rdi, r8
lea rcx, [r13*2]
add rcx, r13
add rcx, rcx
add rax, rax
movups xmm0, xmmword [rsi + rcx*8 - 0x30]
movups xmmword [rsi + rax*8], xmm0
movups xmm1, xmmword [rsi + rcx*8 - 0x20]
movups xmmword [rsi + rax*8 + 0x10], xmm1
movups xmm0, xmmword [rsi + rcx*8 - 0x10]
movups xmmword [rsi + rax*8 + 0x20], xmm0
cmp r14, rdi
jge 0x18002fe35
movdqa xmm0, xmm2
mov r12d, 1
psrldq xmm0, 8
movq rbp, xmm0
nop dword [rax]
nop word [rax + rax]
lea rbx, [rdi - 1]
sar rbx, 1
lea rax, [rsp + 0x40]
lea r11, [rbx + rbx*2]
shl r11, 4
add r11, rsi
lea rcx, [r11 + 0x18]
lea r10, [rcx + 0x10]
cmp rcx, r10
je 0x18002fddd
lea rdx, [rsp + 0x40]
mov r9, r11
sub r9, rdx
add r9, 0x18
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x50]
cmp rax, rcx
je 0x18002fe9f
movzx edx, byte [r9 + rax]
cmp dl, byte [rax]
jne 0x18002fe8d
inc rax
lea rcx, [r9 + rax]
cmp rcx, r10
jne 0x18002fdb0
mov r9d, 0xff
xor ecx, ecx
lea rdx, [rsp + 0x50]
cmp rax, rdx
cmovne ecx, r9d
test cl, cl
jne 0x18002fdff
cmp word [r11 + 0x28], bp
je 0x18002fdfd
mov ecx, r12d
cmovb ecx, r9d
test cl, cl
jns 0x18002fe30
movups xmm0, xmmword [r11]
lea rax, [rdi + rdi*2]
mov rdi, rbx
add rax, rax
movups xmmword [rsi + rax*8], xmm0
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [rsi + rax*8 + 0x10], xmm1
movups xmm0, xmmword [r11 + 0x20]
movups xmmword [rsi + rax*8 + 0x20], xmm0
cmp r14, rbx
jl 0x18002fd70
mov r12, qword [rsp + 0x20]
lea rax, [rdi + rdi*2]
add rax, rax
lea r8, [r13 - 1]
movups xmmword [rsi + rax*8], xmm3
movups xmmword [rsi + rax*8 + 0x10], xmm4
movups xmmword [rsi + rax*8 + 0x20], xmm2
test r14, r14
jg 0x18002fc60
mov r15, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1800737c0
add rsp, 0x80
pop r14
pop r13
pop rsi
ret
mov r9d, 0xff
mov ecx, r9d
cmovae ecx, r12d
jmp 0x18002fdfd
movzx ecx, byte [0x1800a6d03]
mov r9d, 0xff
jmp 0x18002fdeb