Function at 0x14009f260
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.140042eb0
mov r12, rax
movzx ecx, bp
movabs rax, 0x1000000000000
xor edx, edx
div rcx
test r15d, r15d
je 0x14009f2fa
mov r9d, ebp
shr r9, 1
cmp r15d, 8
jae 0x14009f312
xor esi, esi
jmp 0x14009f550
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042eb0
mov rbx, rax
jmp 0x14009f6bd
lea rdx, [rdi*2]
add rdx, r13
cmp r12, rdx
jae 0x14009f332
lea rdx, [r12 + rdi*2]
cmp rdx, r13
jbe 0x14009f332
xor esi, esi
jmp 0x14009f550
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 0x14009f390
cmp rsi, rdi
je 0x14009f588
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 0x14009f550
xor esi, esi
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042eb0
mov rbx, rax
cmp r15d, 0x10
jb 0x14009f6b0
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 0x14009f5db
xor edx, edx
jmp 0x14009f675
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 0x14009f5f0
test rax, rax
je 0x14009f6a4
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 0x14009f690
cmp rsi, rdi
je 0x14009f6bd
nop dword [rax]
mov word [rbx + rsi*2], bp
add rsi, 1
cmp rdi, rsi
jne 0x14009f6b0
mov rcx, rbx
mov rdx, rdi
call fcn.14009cd00
mov rbp, rax
mov rcx, rbx
call fcn.140042f50
mov rcx, rbp
mov rdx, r12
mov r8, r14
call fcn.14009d160
mov rcx, qword [rbp + 0x20]
call fcn.140042f50
mov rcx, rbp
call fcn.140042f50
add rdi, rdi
mov rcx, r12
mov rdx, rdi
call fcn.1400778a0
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.140042f50