Function at 0x14009fe30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movdqa xmmword [rsp + 0x90], xmm13
movdqa xmmword [rsp + 0x80], xmm12
movdqa xmmword [rsp + 0x70], xmm11
movdqa xmmword [rsp + 0x60], xmm10
movdqa xmmword [rsp + 0x50], xmm9
movdqa xmmword [rsp + 0x40], xmm8
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x20], xmm6
mov r14, r9
mov ebp, r8d
mov r15d, edx
mov r13, rcx
mov edi, edx
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.14003f680
mov r12, rax
movzx ecx, bp
movabs rax, 0x1000000000000
xor edx, edx
div rcx
test r15d, r15d
je 0x14009feca
mov r9d, ebp
shr r9, 1
cmp r15d, 8
jae 0x14009fee2
xor esi, esi
jmp 0x1400a0120
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.14003f680
mov rbx, rax
jmp 0x1400a028d
lea rdx, [rdi*2]
add rdx, r13
cmp r12, rdx
jae 0x14009ff02
lea rdx, [r12 + rdi*2]
cmp rdx, r13
jbe 0x14009ff02
xor esi, esi
jmp 0x1400a0120
mov esi, edi
and esi, 0xfffffff8
movd xmm0, r9d
pshufd xmm10, xmm0, 0
movq xmm0, rax
pshufd xmm13, xmm0, 0x44
movd xmm0, ecx
pshufd xmm9, xmm0, 0
movd xmm0, ebp
pshufd xmm11, xmm0, 0
lea r8, [rdi + rdi]
and r8, 0xfffffffffffffff0
xor edx, edx
pxor xmm12, xmm12
movdqa xmm5, xmm13
psrlq xmm5, 0x20
pslld xmm9, 0x10
psrad xmm9, 0x10
pcmpeqd xmm8, xmm8
nop dword [rax + rax]
movdqu xmm2, xmmword [r13 + rdx]
movdqa xmm4, xmm2
punpckhwd xmm4, xmm12
punpcklwd xmm2, xmm12
paddd xmm2, xmm10
paddd xmm4, xmm10
movdqa xmm3, xmm4
punpckhdq xmm3, xmm12
movdqa xmm0, xmm4
punpckldq xmm0, xmm12
movdqa xmm6, xmm2
punpckhdq xmm6, xmm12
movdqa xmm7, xmm2
punpckldq xmm7, xmm12
movdqa xmm1, xmm13
pmuludq xmm1, xmm7
pmuludq xmm7, xmm5
psllq xmm7, 0x20
paddq xmm7, xmm1
movdqa xmm1, xmm13
pmuludq xmm1, xmm6
pmuludq xmm6, xmm5
psllq xmm6, 0x20
paddq xmm6, xmm1
movdqa xmm1, xmm13
pmuludq xmm1, xmm0
pmuludq xmm0, xmm5
psllq xmm0, 0x20
paddq xmm0, xmm1
movdqa xmm1, xmm13
pmuludq xmm1, xmm3
pmuludq xmm3, xmm5
psllq xmm3, 0x20
paddq xmm3, xmm1
movdqa xmm1, xmm3
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm3, 0x10
pshufd xmm3, xmm3, 0xed
punpckldq xmm3, xmm1
movdqa xmm1, xmm0
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm0, 0x10
pshufd xmm0, xmm0, 0xed
punpckldq xmm0, xmm1
packssdw xmm0, xmm3
movdqa xmm1, xmm6
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm6, 0x10
pshufd xmm3, xmm6, 0xed
punpckldq xmm3, xmm1
movdqa xmm1, xmm7
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm7, 0x10
pshufd xmm6, xmm7, 0xed
punpckldq xmm6, xmm1
packssdw xmm6, xmm3
packssdw xmm6, xmm0
movdqa xmm0, xmm9
packssdw xmm0, xmm9
movdqa xmm1, xmm0
pmulhuw xmm1, xmm6
pmullw xmm6, xmm0
movdqa xmm3, xmm6
punpckhwd xmm3, xmm1
punpcklwd xmm6, xmm1
psubd xmm2, xmm6
psubd xmm4, xmm3
movdqa xmm1, xmm4
pxor xmm1, xmm8
movdqa xmm3, xmm2
pxor xmm3, xmm8
paddd xmm3, xmm11
paddd xmm1, xmm11
pslld xmm1, 0x10
pslld xmm3, 0x10
packssdw xmm3, xmm1
psrlw xmm3, 0xf
pmullw xmm3, xmm0
movdqa xmm0, xmm3
punpckhwd xmm0, xmm0
punpcklwd xmm3, xmm3
psubd xmm2, xmm3
psubd xmm4, xmm0
pslld xmm4, 0x10
psrad xmm4, 0x10
pslld xmm2, 0x10
psrad xmm2, 0x10
packssdw xmm2, xmm4
movdqu xmmword [r12 + rdx], xmm2
add rdx, 0x10
cmp r8, rdx
jne 0x14009ff60
cmp rsi, rdi
je 0x1400a0158
nop dword [rax + rax]
movzx ebx, word [r13 + rsi*2]
add rbx, r9
mov rdx, rbx
imul rdx, rax
shr rdx, 0x30
imul edx, ecx
sub ebx, edx
mov edx, ebx
not edx
add edx, ebp
shr edx, 0xf
and edx, 1
imul edx, ecx
sub ebx, edx
mov word [r12 + rsi*2], bx
add rsi, 1
cmp rdi, rsi
jne 0x1400a0120
xor esi, esi
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.14003f680
mov rbx, rax
cmp r15d, 0x10
jb 0x1400a0280
mov esi, edi
and esi, 0xfffffff0
movd xmm0, ebp
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rsi - 0x10]
mov rcx, rdx
shr rcx, 4
add rcx, 1
mov eax, ecx
and eax, 7
cmp rdx, 0x70
jae 0x1400a01ab
xor edx, edx
jmp 0x1400a0245
and rcx, 0xfffffffffffffff8
xor edx, edx
nop word cs:[rax + rax]
nop dword [rax + rax]
movdqu xmmword [rbx + rdx*2], xmm0
movdqu xmmword [rbx + rdx*2 + 0x10], xmm0
movdqu xmmword [rbx + rdx*2 + 0x20], xmm0
movdqu xmmword [rbx + rdx*2 + 0x30], xmm0
movdqu xmmword [rbx + rdx*2 + 0x40], xmm0
movdqu xmmword [rbx + rdx*2 + 0x50], xmm0
movdqu xmmword [rbx + rdx*2 + 0x60], xmm0
movdqu xmmword [rbx + rdx*2 + 0x70], xmm0
movdqu xmmword [rbx + rdx*2 + 0x80], xmm0
movdqu xmmword [rbx + rdx*2 + 0x90], xmm0
movdqu xmmword [rbx + rdx*2 + 0xa0], xmm0
movdqu xmmword [rbx + rdx*2 + 0xb0], xmm0
movdqu xmmword [rbx + rdx*2 + 0xc0], xmm0
movdqu xmmword [rbx + rdx*2 + 0xd0], xmm0
movdqu xmmword [rbx + rdx*2 + 0xe0], xmm0
movdqu xmmword [rbx + rdx*2 + 0xf0], xmm0
sub rdx, 0xffffffffffffff80
add rcx, 0xfffffffffffffff8
jne 0x1400a01c0
test rax, rax
je 0x1400a0274
lea rcx, [rbx + rdx*2]
add rcx, 0x10
shl rax, 5
xor edx, edx
nop dword [rax + rax]
movdqu xmmword [rcx + rdx - 0x10], xmm0
movdqu xmmword [rcx + rdx], xmm0
add rdx, 0x20
cmp rax, rdx
jne 0x1400a0260
cmp rsi, rdi
je 0x1400a028d
nop dword [rax]
mov word [rbx + rsi*2], bp
add rsi, 1
cmp rdi, rsi
jne 0x1400a0280
mov rcx, rbx
mov rdx, rdi
call fcn.14009d930
mov rbp, rax
mov rcx, rbx
call fcn.14003f720
mov rcx, rbp
mov rdx, r12
mov r8, r14
call fcn.14009dd90
mov rcx, qword [rbp + 0x20]
call fcn.14003f720
mov rcx, rbp
call fcn.14003f720
add rdi, rdi
mov rcx, r12
mov rdx, rdi
call fcn.140076910
mov rcx, r12
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14003f720