Function at 0x14009c540
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
movdqa xmmword [rsp + 0xa0], xmm15
movdqa xmmword [rsp + 0x90], xmm14
movdqa xmmword [rsp + 0x80], xmm13
movdqa xmmword [rsp + 0x70], xmm12
movdqa xmmword [rsp + 0x60], xmm11
movdqa xmmword [rsp + 0x50], xmm10
movdqa xmmword [rsp + 0x40], xmm9
movdqa xmmword [rsp + 0x30], xmm8
movaps xmmword [rsp + 0x20], xmm7
movdqa xmmword [rsp + 0x10], xmm6
mov r10, rdx
movzx r11d, r9w
movabs rax, 0x1000000000000
xor edx, edx
div r11
test r8d, r8d
je 0x14009ca63
movabs r14, 0x555555555555
mov r13d, r9d
shr r13, 1
lea esi, [r13 - 1]
imul rsi, r14
shr rsi, 0x30
lea esi, [rsi + rsi*2]
neg esi
add esi, r13d
add esi, 0xffffffff
mov edi, 2
sub edi, esi
shr edi, 0xf
and edi, 1
lea edi, [rdi + rdi*2]
sub edi, esi
add edi, 3
movzx r12d, di
mov ebp, r8d
cmp r8d, 8
jae 0x14009c60e
xor esi, esi
jmp 0x14009c990
lea rsi, [r10 + rbp*2]
cmp rsi, rcx
jbe 0x14009c627
lea rsi, [rcx + rbp*2]
cmp rsi, r10
jbe 0x14009c627
xor esi, esi
jmp 0x14009c990
mov esi, ebp
and esi, 0xfffffff8
movd xmm0, r13d
pshufd xmm13, xmm0, 0
movq xmm0, rax
pshufd xmm11, xmm0, 0x44
movd xmm0, r11d
pshufd xmm1, xmm0, 0
movd xmm0, r9d
pshufd xmm14, xmm0, 0
movd xmm0, r12d
pshufd xmm15, xmm0, 0
mov r15, rbp
add r15, rbp
and r15, 0xfffffffffffffff0
xor ebx, ebx
pxor xmm5, xmm5
movdqa xmm6, xmm11
psrlq xmm6, 0x20
pslld xmm1, 0x10
psrad xmm1, 0x10
movdqa xmmword [rsp], xmm1
movdqa xmm12, xmmword [0x1400f87b0]
movdqa xmm10, xmmword [0x1400f87c0]
nop dword [rax]
movdqu xmm4, xmmword [r10 + rbx]
movdqa xmm9, xmm4
punpckhwd xmm9, xmm5
punpcklwd xmm4, xmm5
paddd xmm4, xmm13
paddd xmm9, xmm13
movdqa xmm2, xmm9
punpckhdq xmm2, xmm5
movdqa xmm8, xmm9
punpckldq xmm8, xmm5
movdqa xmm3, xmm4
punpckhdq xmm3, xmm5
movdqa xmm0, xmm4
punpckldq xmm0, xmm5
movdqa xmm7, xmm11
pmuludq xmm7, xmm0
pmuludq xmm0, xmm6
psllq xmm0, 0x20
paddq xmm0, xmm7
movdqa xmm7, xmm11
pmuludq xmm7, xmm3
pmuludq xmm3, xmm6
psllq xmm3, 0x20
paddq xmm3, xmm7
movdqa xmm7, xmm11
pmuludq xmm7, xmm8
pmuludq xmm8, xmm6
psllq xmm8, 0x20
paddq xmm8, xmm7
movdqa xmm7, xmm11
pmuludq xmm7, xmm2
pmuludq xmm2, xmm6
psllq xmm2, 0x20
paddq xmm2, xmm7
movdqa xmm7, xmm2
psrad xmm7, 0x1f
pshufd xmm7, xmm7, 0xed
psrad xmm2, 0x10
pshufd xmm2, xmm2, 0xed
punpckldq xmm2, xmm7
movdqa xmm7, xmm8
psrad xmm7, 0x1f
pshufd xmm7, xmm7, 0xed
psrad xmm8, 0x10
pshufd xmm1, xmm8, 0xed
punpckldq xmm1, xmm7
packssdw xmm1, xmm2
movdqa xmm2, xmm3
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm3, 0x10
pshufd xmm3, xmm3, 0xed
punpckldq xmm3, xmm2
movdqa xmm2, xmm0
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm0, 0x10
pshufd xmm0, xmm0, 0xed
punpckldq xmm0, xmm2
packssdw xmm0, xmm3
packssdw xmm0, xmm1
movdqa xmm1, xmmword [rsp]
packssdw xmm1, xmm1
movdqa xmm2, xmm1
pmulhuw xmm2, xmm0
pmullw xmm0, xmm1
movdqa xmm3, xmm0
punpckhwd xmm3, xmm2
punpcklwd xmm0, xmm2
psubd xmm4, xmm0
psubd xmm9, xmm3
movdqa xmm0, xmm9
pcmpeqd xmm8, xmm8
pxor xmm0, xmm8
movdqa xmm2, xmm4
pxor xmm2, xmm8
paddd xmm2, xmm14
paddd xmm0, xmm14
pslld xmm0, 0x10
pslld xmm2, 0x10
packssdw xmm2, xmm0
psrlw xmm2, 0xf
pmullw xmm2, xmm1
movdqa xmm0, xmm2
punpcklwd xmm0, xmm0
punpckhwd xmm2, xmm2
psubd xmm9, xmm2
psubd xmm4, xmm0
movdqa xmm0, xmmword [0x1400f8790]
pand xmm4, xmm0
pand xmm9, xmm0
paddd xmm9, xmm15
paddd xmm4, xmm15
movdqa xmm7, xmm4
punpckhdq xmm7, xmm5
movdqa xmm3, xmm4
punpckldq xmm3, xmm5
movdqa xmm2, xmm9
punpckhdq xmm2, xmm5
movdqa xmm0, xmm9
punpckldq xmm0, xmm5
movdqa xmm1, xmm0
pmuludq xmm1, xmm12
pmuludq xmm0, xmm10
psllq xmm0, 0x20
paddq xmm0, xmm1
movdqa xmm1, xmm2
pmuludq xmm1, xmm12
pmuludq xmm2, xmm10
psllq xmm2, 0x20
paddq xmm2, xmm1
movdqa xmm1, xmm3
pmuludq xmm1, xmm12
pmuludq xmm3, xmm10
psllq xmm3, 0x20
paddq xmm3, xmm1
movdqa xmm1, xmm7
pmuludq xmm1, xmm12
pmuludq xmm7, xmm10
psllq xmm7, 0x20
paddq xmm7, xmm1
psrlq xmm7, 0x30
psrlq xmm3, 0x30
shufps xmm3, xmm7, 0x88
psrlq xmm2, 0x30
psrlq xmm0, 0x30
shufps xmm0, xmm2, 0x88
movaps xmm1, xmm3
paddd xmm1, xmm3
paddd xmm1, xmm3
movaps xmm2, xmm0
paddd xmm2, xmm0
paddd xmm2, xmm0
psubd xmm9, xmm2
psubd xmm4, xmm1
movdqa xmm1, xmmword [0x1400ef3d0]
movdqa xmm0, xmm1
psubd xmm0, xmm4
psubd xmm1, xmm9
psrld xmm1, 0xf
psrld xmm0, 0xf
movdqa xmm2, xmmword [0x1400f8780]
pand xmm0, xmm2
pand xmm1, xmm2
movdqa xmm2, xmm1
paddd xmm2, xmm1
por xmm2, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm0
por xmm1, xmm0
psubd xmm4, xmm1
psubd xmm9, xmm2
pslld xmm9, 0x10
psrad xmm9, 0x10
pslld xmm4, 0x10
psrad xmm4, 0x10
packssdw xmm4, xmm9
paddw xmm4, xmm8
movdqu xmmword [rcx + rbx], xmm4
add rbx, 0x10
cmp r15, rbx
jne 0x14009c6a0
cmp rsi, rbp
je 0x14009c9f3
nop
movzx edi, word [r10 + rsi*2]
add rdi, r13
mov rbx, rdi
imul rbx, rax
shr rbx, 0x30
imul ebx, r11d
sub edi, ebx
mov ebx, edi
not ebx
add ebx, r9d
shr ebx, 0xf
and ebx, 1
imul ebx, r11d
sub edi, ebx
movzx edi, di
add edi, r12d
mov rbx, rdi
imul rbx, r14
shr rbx, 0x30
lea ebx, [rbx + rbx*2]
sub edi, ebx
mov ebx, 2
sub ebx, edi
shr ebx, 0xf
and ebx, 1
lea ebx, [rbx + rbx*2]
not ebx
add ebx, edi
mov word [rcx + rsi*2], bx
add rsi, 1
cmp rbp, rsi
jne 0x14009c990
test r8d, r8d
je 0x14009ca63
cmp r8d, 8
jb 0x14009ca18
lea rbx, [r10 + rbp*2]
cmp rbx, rcx
jbe 0x14009caba
lea rbx, [rcx + rbp*2]
cmp rbx, r10
jbe 0x14009caba
xor edi, edi
mov ebx, r13d
nop dword [rax]
movzx edx, word [r10 + rdi*2]
add rdx, rbx
mov rsi, rdx
imul rsi, rax
shr rsi, 0x30
imul esi, r11d
sub edx, esi
mov esi, edx
not esi
add esi, r9d
shr esi, 0xf
and esi, 1
imul esi, r11d
sub edx, esi
movzx esi, word [rcx + rdi*2]
add si, r13w
sub edx, esi
mov word [rcx + rdi*2], dx
add rdi, 1
cmp rbp, rdi
jne 0x14009ca20
movaps xmm6, xmmword [rsp + 0x10]
movaps xmm7, xmmword [rsp + 0x20]
movaps xmm8, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x40]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm13, xmmword [rsp + 0x80]
movaps xmm14, xmmword [rsp + 0x90]
movaps xmm15, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edi, ebp
and edi, 0xfffffff8
movd xmm0, r13d
pshufd xmm11, xmm0, 0
movq xmm0, rax
pshufd xmm14, xmm0, 0x44
movd xmm0, r11d
pshufd xmm10, xmm0, 0
movd xmm0, r9d
pshufd xmm12, xmm0, 0
movd xmm0, r13d
pshuflw xmm0, xmm0, 0
pshufd xmm8, xmm0, 0
mov rbx, rbp
add rbx, rbp
and rbx, 0xfffffffffffffff0
xor esi, esi
pxor xmm13, xmm13
movdqa xmm6, xmm14
psrlq xmm6, 0x20
pslld xmm10, 0x10
psrad xmm10, 0x10
pcmpeqd xmm9, xmm9
nop word [rax + rax]
movdqu xmm2, xmmword [r10 + rsi]
movdqa xmm5, xmm2
punpckhwd xmm5, xmm13
punpcklwd xmm2, xmm13
paddd xmm2, xmm11
paddd xmm5, xmm11
movdqa xmm3, xmm5
punpckhdq xmm3, xmm13
movdqa xmm0, xmm5
punpckldq xmm0, xmm13
movdqa xmm7, xmm2
punpckhdq xmm7, xmm13
movdqa xmm4, xmm2
punpckldq xmm4, xmm13
movdqa xmm1, xmm14
pmuludq xmm1, xmm4
pmuludq xmm4, xmm6
psllq xmm4, 0x20
paddq xmm4, xmm1
movdqa xmm1, xmm14
pmuludq xmm1, xmm7
pmuludq xmm7, xmm6
psllq xmm7, 0x20
paddq xmm7, xmm1
movdqa xmm1, xmm14
pmuludq xmm1, xmm0
pmuludq xmm0, xmm6
psllq xmm0, 0x20
paddq xmm0, xmm1
movdqa xmm1, xmm14
pmuludq xmm1, xmm3
pmuludq xmm3, xmm6
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, xmm7
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm7, 0x10
pshufd xmm3, xmm7, 0xed
punpckldq xmm3, xmm1
movdqa xmm1, xmm4
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xed
psrad xmm4, 0x10
pshufd xmm4, xmm4, 0xed
punpckldq xmm4, xmm1
packssdw xmm4, xmm3
packssdw xmm4, xmm0
movdqa xmm0, xmm10
packssdw xmm0, xmm10
movdqa xmm1, xmm0
pmulhuw xmm1, xmm4
pmullw xmm4, xmm0
movdqa xmm3, xmm4
punpckhwd xmm3, xmm1
punpcklwd xmm4, xmm1
psubd xmm2, xmm4
psubd xmm5, xmm3
movdqa xmm1, xmm5
pxor xmm1, xmm9
movdqa xmm3, xmm2
pxor xmm3, xmm9
paddd xmm3, xmm12
paddd xmm1, xmm12
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 xmm5, xmm0
pslld xmm5, 0x10
psrad xmm5, 0x10
pslld xmm2, 0x10
psrad xmm2, 0x10
packssdw xmm2, xmm5
movdqu xmm0, xmmword [rcx + rsi]
paddw xmm0, xmm8
psubw xmm2, xmm0
movdqu xmmword [rcx + rsi], xmm2
add rsi, 0x10
cmp rbx, rsi
jne 0x14009cb30
cmp rdi, rbp
je 0x14009ca63
jmp 0x14009ca1a