Function at 0x14009e8e0
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.140042c20
mov r12, rax
movzx ecx, bp
movabs rax, 0x1000000000000
xor edx, edx
div rcx
test r15d, r15d
je 0x14009e97a
mov r9d, ebp
shr r9, 1
cmp r15d, 8
jae 0x14009e992
xor esi, esi
jmp 0x14009ebd0
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042c20
mov rbx, rax
jmp 0x14009ed3d
lea rdx, [rdi*2]
add rdx, r13
cmp r12, rdx
jae 0x14009e9b2
lea rdx, [r12 + rdi*2]
cmp rdx, r13
jbe 0x14009e9b2
xor esi, esi
jmp 0x14009ebd0
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 0x14009ea10
cmp rsi, rdi
je 0x14009ec08
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 0x14009ebd0
xor esi, esi
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042c20
mov rbx, rax
cmp r15d, 0x10
jb 0x14009ed30
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 0x14009ec5b
xor edx, edx
jmp 0x14009ecf5
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 0x14009ec70
test rax, rax
je 0x14009ed24
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 0x14009ed10
cmp rsi, rdi
je 0x14009ed3d
nop dword [rax]
mov word [rbx + rsi*2], bp
add rsi, 1
cmp rdi, rsi
jne 0x14009ed30
mov rcx, rbx
mov rdx, rdi
call fcn.14009c380
mov rbp, rax
mov rcx, rbx
call fcn.140042cc0
mov rcx, rbp
mov rdx, r12
mov r8, r14
call fcn.14009c7e0
mov rcx, qword [rbp + 0x20]
call fcn.140042cc0
mov rcx, rbp
call fcn.140042cc0
add rdi, rdi
mov rcx, r12
mov rdx, rdi
call fcn.140076fb0
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.140042cc0