Function at 0x14009f450
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm13
movdqa xmmword [rsp + 0xa0], xmm12
movdqa xmmword [rsp + 0x90], xmm11
movdqa xmmword [rsp + 0x80], xmm10
movdqa xmmword [rsp + 0x70], xmm9
movdqa xmmword [rsp + 0x60], xmm8
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], r9
mov r12d, r8d
mov ebx, edx
mov rsi, rcx
movzx r13d, r12w
movabs rax, 0x1000000000000
xor edx, edx
div r13
mov r14, rax
mov edi, ebx
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042c20
mov r9d, ebx
mov rcx, rdi
mov r15, rax
mov eax, r12d
shr eax, 1
add eax, 1
mov r10d, 0xaaaaaaab
imul r10, rax
shr r10, 0x21
test ebx, ebx
je 0x14009f789
lea rax, [r10 + r10*2]
cmp r9d, 8
jae 0x14009f512
xor ebp, ebp
jmp 0x14009f750
lea rdx, [rsi + rcx*2]
cmp r15, rdx
jae 0x14009f52b
lea rdx, [r15 + rcx*2]
cmp rdx, rsi
jbe 0x14009f52b
xor ebp, ebp
jmp 0x14009f750
mov ebp, ecx
and ebp, 0xfffffff8
movd xmm0, eax
pshufd xmm10, xmm0, 0
movq xmm0, r14
pshufd xmm13, xmm0, 0x44
movd xmm0, r13d
pshufd xmm9, xmm0, 0
movd xmm0, r12d
pshufd xmm11, xmm0, 0
lea r8, [rcx + rcx]
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 word cs:[rax + rax]
nop
movdqu xmm2, xmmword [rsi + 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 [r15 + rdx], xmm2
add rdx, 0x10
cmp r8, rdx
jne 0x14009f590
cmp rbp, rcx
je 0x14009f789
nop word cs:[rax + rax]
movzx ebx, word [rsi + rbp*2]
add rbx, rax
mov rdx, rbx
imul rdx, r14
shr rdx, 0x30
imul edx, r13d
sub ebx, edx
mov edx, ebx
not edx
add edx, r12d
shr edx, 0xf
and edx, 1
imul edx, r13d
sub ebx, edx
mov word [r15 + rbp*2], bx
add rbp, 1
cmp rcx, rbp
jne 0x14009f750
lea esi, [r13 - 2]
mov edi, 1
mov ebx, 3
mov eax, 1
jmp 0x14009f7c9
imul ebx, ebx
mov rdx, r14
imul rdx, rbx
shr rdx, 0x30
imul edx, r13d
sub ebx, edx
mov edx, ebx
not edx
add edx, r12d
shr edx, 0xf
and edx, 1
imul edx, r13d
sub ebx, edx
add edi, edi
movzx ebx, bx
test esi, edi
je 0x14009f7a0
imul eax, ebx
mov rbp, r14
imul rbp, rax
shr rbp, 0x30
imul ebp, r13d
sub eax, ebp
mov ebp, eax
not ebp
add ebp, r12d
shr ebp, 0xf
and ebp, 1
imul ebp, r13d
sub eax, ebp
movzx eax, ax
mov edx, edi
not edx
and esi, edx
jne 0x14009f7a0
test r9d, r9d
je 0x14009f81e
cmp r9d, 8
mov dword [rsp + 0x2c], r9d
mov qword [rsp + 0x30], r10
jae 0x14009f839
xor ebx, ebx
jmp 0x14009fa70
mov edx, 2
xor r8d, r8d
mov rsi, rcx
call fcn.140042c20
mov rdx, rsi
mov rsi, rax
jmp 0x14009fbed
mov ebx, ecx
and ebx, 0xfffffff8
movd xmm0, eax
pshufd xmm12, xmm0, 0
movq xmm0, r14
pshufd xmm13, xmm0, 0x44
movd xmm0, r13d
pshufd xmm9, xmm0, 0
movd xmm0, r12d
pshufd xmm10, xmm0, 0
lea r8, [rcx + rcx]
and r8, 0xfffffffffffffff0
xor edx, edx
pslld xmm12, 0x10
psrad xmm12, 0x10
packssdw xmm12, xmm12
pxor xmm11, xmm11
movdqa xmm5, xmm13
psrlq xmm5, 0x20
pslld xmm9, 0x10
psrad xmm9, 0x10
pcmpeqd xmm8, xmm8
nop word cs:[rax + rax]
nop
movdqu xmm4, xmmword [r15 + rdx]
movdqa xmm2, xmm12
pmulhuw xmm2, xmm4
pmullw xmm4, xmm12
movdqa xmm0, xmm4
punpcklwd xmm0, xmm2
punpckhwd xmm4, xmm2
movdqa xmm3, xmm4
punpckhdq xmm3, xmm11
movdqa xmm7, xmm4
punpckldq xmm7, xmm11
movdqa xmm2, xmm0
punpckhdq xmm2, xmm11
movdqa xmm6, xmm0
punpckldq xmm6, xmm11
movdqa xmm1, xmm13
pmuludq xmm1, xmm6
pmuludq xmm6, xmm5
psllq xmm6, 0x20
paddq xmm6, xmm1
movdqa xmm1, xmm13
pmuludq xmm1, xmm2
pmuludq xmm2, xmm5
psllq xmm2, 0x20
paddq xmm2, xmm1
movdqa xmm1, xmm13
pmuludq xmm1, xmm7
pmuludq xmm7, xmm5
psllq xmm7, 0x20
paddq xmm7, 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, xmm7
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm7, 0x10
pshufd xmm7, xmm7, 0xed
punpckldq xmm7, xmm1
packssdw xmm7, xmm3
movdqa xmm1, xmm2
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm2, 0x10
pshufd xmm2, xmm2, 0xed
punpckldq xmm2, xmm1
movdqa xmm1, xmm6
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm6, 0x10
pshufd xmm3, xmm6, 0xed
punpckldq xmm3, xmm1
packssdw xmm3, xmm2
packssdw xmm3, xmm7
movdqa xmm1, xmm9
packssdw xmm1, xmm9
movdqa xmm2, xmm1
pmulhuw xmm2, xmm3
pmullw xmm3, xmm1
movdqa xmm6, xmm3
punpckhwd xmm6, xmm2
punpcklwd xmm3, xmm2
psubd xmm0, xmm3
psubd xmm4, xmm6
movdqa xmm2, xmm4
pxor xmm2, xmm8
movdqa xmm3, xmm0
pxor xmm3, xmm8
paddd xmm3, xmm10
paddd xmm2, xmm10
pslld xmm2, 0x10
pslld xmm3, 0x10
packssdw xmm3, xmm2
psrlw xmm3, 0xf
pmullw xmm3, xmm1
movdqa xmm1, xmm3
punpckhwd xmm1, xmm1
punpcklwd xmm3, xmm3
psubd xmm0, xmm3
psubd xmm4, xmm1
pslld xmm4, 0x10
psrad xmm4, 0x10
pslld xmm0, 0x10
psrad xmm0, 0x10
packssdw xmm0, xmm4
movdqu xmmword [r15 + rdx], xmm0
add rdx, 0x10
cmp r8, rdx
jne 0x14009f8b0
cmp rbx, rcx
je 0x14009faab
nop dword [rax]
movzx ebp, word [r15 + rbx*2]
imul rbp, rax
mov rdx, rbp
imul rdx, r14
shr rdx, 0x30
imul edx, r13d
sub ebp, edx
mov edx, ebp
not edx
add edx, r12d
shr edx, 0xf
and edx, 1
imul edx, r13d
sub ebp, edx
mov word [r15 + rbx*2], bp
add rbx, 1
cmp rcx, rbx
jne 0x14009fa70
xor edi, edi
mov edx, 2
xor r8d, r8d
mov rsi, rcx
call fcn.140042c20
mov rdx, rsi
mov rsi, rax
mov rax, qword [rsp + 0x30]
add eax, eax
add eax, 1
cmp dword [rsp + 0x2c], 0x10
jb 0x14009fbe0
mov edi, edx
and edi, 0xfffffff0
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbp, [rdi - 0x10]
mov rcx, rbp
shr rcx, 4
add rcx, 1
mov ebx, ecx
and ebx, 7
cmp rbp, 0x70
jae 0x14009fb0c
xor ebp, ebp
jmp 0x14009fba5
and rcx, 0xfffffffffffffff8
xor ebp, ebp
nop word cs:[rax + rax]
nop dword [rax]
movdqu xmmword [rsi + rbp*2], xmm0
movdqu xmmword [rsi + rbp*2 + 0x10], xmm0
movdqu xmmword [rsi + rbp*2 + 0x20], xmm0
movdqu xmmword [rsi + rbp*2 + 0x30], xmm0
movdqu xmmword [rsi + rbp*2 + 0x40], xmm0
movdqu xmmword [rsi + rbp*2 + 0x50], xmm0
movdqu xmmword [rsi + rbp*2 + 0x60], xmm0
movdqu xmmword [rsi + rbp*2 + 0x70], xmm0
movdqu xmmword [rsi + rbp*2 + 0x80], xmm0
movdqu xmmword [rsi + rbp*2 + 0x90], xmm0
movdqu xmmword [rsi + rbp*2 + 0xa0], xmm0
movdqu xmmword [rsi + rbp*2 + 0xb0], xmm0
movdqu xmmword [rsi + rbp*2 + 0xc0], xmm0
movdqu xmmword [rsi + rbp*2 + 0xd0], xmm0
movdqu xmmword [rsi + rbp*2 + 0xe0], xmm0
movdqu xmmword [rsi + rbp*2 + 0xf0], xmm0
sub rbp, 0xffffffffffffff80
add rcx, 0xfffffffffffffff8
jne 0x14009fb20
test rbx, rbx
je 0x14009fbd4
lea rcx, [rsi + rbp*2]
add rcx, 0x10
shl rbx, 5
xor ebp, ebp
nop dword [rax + rax]
movdqu xmmword [rcx + rbp - 0x10], xmm0
movdqu xmmword [rcx + rbp], xmm0
add rbp, 0x20
cmp rbx, rbp
jne 0x14009fbc0
cmp rdi, rdx
je 0x14009fbed
nop dword [rax]
mov word [rsi + rdi*2], ax
add rdi, 1
cmp rdx, rdi
jne 0x14009fbe0
mov rcx, rsi
mov rbx, rdx
call fcn.14009c380
mov rdi, rax
mov rcx, rsi
call fcn.140042cc0
mov rcx, rdi
mov rdx, r15
mov r8, qword [rsp + 0x38]
call fcn.14009c7e0
mov rcx, qword [rdi + 0x20]
call fcn.140042cc0
mov rcx, rdi
call fcn.140042cc0
add rbx, rbx
mov rcx, r15
mov rdx, rbx
call fcn.140076fb0
mov rcx, r15
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm11, xmmword [rsp + 0x90]
movaps xmm12, xmmword [rsp + 0xa0]
movaps xmm13, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140042cc0