Function at 0x14009fc90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movdqa xmmword [rsp + 0xd0], xmm14
movdqa xmmword [rsp + 0xc0], xmm13
movdqa xmmword [rsp + 0xb0], xmm12
movdqa xmmword [rsp + 0xa0], xmm11
movdqa xmmword [rsp + 0x90], xmm10
movdqa xmmword [rsp + 0x80], xmm9
movdqa xmmword [rsp + 0x70], xmm8
movdqa xmmword [rsp + 0x60], xmm7
movdqa xmmword [rsp + 0x50], xmm6
mov r12, r9
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x140127050]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r14d, dword [r8]
mov r13d, dword [r8 + 4]
mov edx, 2
mov rcx, r14
xor r8d, r8d
call fcn.140042c20
mov rsi, rax
test r14, r14
mov qword [rsp + 0x28], rbx
je 0x14009fe6d
mov eax, r13d
shr eax, 1
add eax, 1
mov ecx, 0xaaaaaaab
imul rcx, rax
shr rcx, 0x21
lea eax, [rcx + rcx]
add eax, 1
cmp r14d, 0x10
jae 0x14009fd5a
xor ecx, ecx
jmp 0x14009fe60
mov ecx, r14d
and ecx, 0xfffffff0
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbp, [rcx - 0x10]
mov rdx, rbp
shr rdx, 4
add rdx, 1
mov ebx, edx
and ebx, 7
cmp rbp, 0x70
jae 0x14009fd8f
xor ebp, ebp
jmp 0x14009fe25
and rdx, 0xfffffffffffffff8
xor ebp, ebp
nop word cs:[rax + rax]
nop
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 rdx, 0xfffffffffffffff8
jne 0x14009fda0
test rbx, rbx
je 0x14009fe54
lea rdx, [rsi + rbp*2]
add rdx, 0x10
shl rbx, 5
xor ebp, ebp
nop dword [rax + rax]
movdqu xmmword [rdx + rbp - 0x10], xmm0
movdqu xmmword [rdx + rbp], xmm0
add rbp, 0x20
cmp rbx, rbp
jne 0x14009fe40
cmp rcx, r14
mov rbx, qword [rsp + 0x28]
je 0x14009fe6d
nop
mov word [rsi + rcx*2], ax
add rcx, 1
cmp r14, rcx
jne 0x14009fe60
mov rcx, rsi
mov rdx, r14
call fcn.14009c380
mov r15, rax
mov rcx, rsi
call fcn.140042cc0
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x14009fea0
mov rcx, qword [r15 + 0x20]
cmp rax, 4
jae 0x14009fea8
xor edx, edx
xor r8d, r8d
jmp 0x14009ffc0
xor r8d, r8d
jmp 0x14009ffd6
mov rdx, rax
and rdx, 0xfffffffffffffffc
lea rbp, [rdx - 4]
mov r8, rbp
shr r8, 2
add r8, 1
test rbp, rbp
je 0x1400a0050
mov rbx, r8
and rbx, 0xfffffffffffffffe
pxor xmm0, xmm0
xor esi, esi
movdqa xmm2, xmmword [0x1400f7790]
movdqa xmm3, xmmword [0x1400f77a0]
pxor xmm1, xmm1
nop dword [rax + rax]
movq xmm4, qword [rcx + rsi*4]
movq xmm5, qword [rcx + rsi*4 + 8]
pshufd xmm4, xmm4, 0xd4
pcmpeqd xmm4, xmm2
pand xmm4, xmm3
paddq xmm4, xmm0
pshufd xmm5, xmm5, 0xd4
pcmpeqd xmm5, xmm2
pand xmm5, xmm3
paddq xmm5, xmm1
movq xmm0, qword [rcx + rsi*4 + 0x10]
movq xmm1, qword [rcx + rsi*4 + 0x18]
pshufd xmm0, xmm0, 0xd4
pcmpeqd xmm0, xmm2
pand xmm0, xmm3
paddq xmm0, xmm4
pshufd xmm1, xmm1, 0xd4
pcmpeqd xmm1, xmm2
pand xmm1, xmm3
paddq xmm1, xmm5
add rsi, 8
add rbx, 0xfffffffffffffffe
jne 0x14009fef0
test r8b, 1
je 0x14009ff98
movq xmm2, qword [rcx + rsi*4]
movq xmm3, qword [rcx + rsi*4 + 8]
pshufd xmm2, xmm2, 0xd4
movdqa xmm4, xmmword [0x1400f7790]
pcmpeqd xmm2, xmm4
movdqa xmm5, xmmword [0x1400f77a0]
pand xmm2, xmm5
paddq xmm0, xmm2
pshufd xmm2, xmm3, 0xd4
pcmpeqd xmm2, xmm4
pand xmm2, xmm5
paddq xmm1, xmm2
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movq r8, xmm1
cmp rax, rdx
mov rbx, qword [rsp + 0x28]
je 0x14009ffd6
nop word cs:[rax + rax]
nop
xor ebp, ebp
cmp dword [rcx + rdx*4], 1
sete bpl
add r8, rbp
add rdx, 1
cmp rax, rdx
jne 0x14009ffc0
mov rdx, qword [r12 + 0x20]
mov rcx, rbx
call fcn.140042760
mov rax, qword [r12 + 0x20]
cmp dword [rax + 0x18], 0
je 0x1400a0003
add r14, r14
mov rcx, rdi
xor edx, edx
mov r8, r14
call fcn.1400b9c20
jmp 0x1400a0545
movdqu xmm0, xmmword [rbx]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov rcx, r15
mov rdx, rdi
call fcn.14009cb60
movzx ecx, r13w
movabs rax, 0x1000000000000
xor edx, edx
div rcx
test r14, r14
je 0x1400a0545
movq xmm8, rax
movd xmm9, ecx
cmp r14d, 8
jae 0x1400a0069
xor edx, edx
jmp 0x1400a0280
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
test r8b, 1
jne 0x14009ff5b
jmp 0x14009ff98
mov edx, r14d
and edx, 0xfffffff8
pshufd xmm14, xmm8, 0x44
pshufd xmm13, xmm9, 0
movd xmm0, r13d
pshufd xmm11, xmm0, 0
lea rbx, [r14 + r14]
and rbx, 0xfffffffffffffff0
xor esi, esi
pxor xmm12, xmm12
movdqa xmm6, xmm14
psrlq xmm6, 0x20
pslld xmm13, 0x10
psrad xmm13, 0x10
packssdw xmm13, xmm13
pcmpeqd xmm10, xmm10
nop word cs:[rax + rax]
nop
movdqu xmm0, xmmword [rdi + rsi]
movdqa xmm1, xmm0
punpckhwd xmm1, xmm12
punpcklwd xmm0, xmm12
movdqa xmm4, xmm0
paddd xmm4, xmm0
paddd xmm4, xmm0
movdqa xmm3, xmm1
paddd xmm3, xmm1
paddd xmm3, xmm1
movdqa xmm5, xmm3
punpckhdq xmm5, xmm12
movdqa xmm1, xmm3
punpckldq xmm1, xmm12
movdqa xmm7, xmm4
punpckhdq xmm7, xmm12
movdqa xmm0, xmm4
punpckldq xmm0, xmm12
movdqa xmm2, xmm14
pmuludq xmm2, xmm0
pmuludq xmm0, xmm6
psllq xmm0, 0x20
paddq xmm0, xmm2
movdqa xmm2, xmm14
pmuludq xmm2, xmm7
pmuludq xmm7, xmm6
psllq xmm7, 0x20
paddq xmm7, xmm2
movdqa xmm2, xmm14
pmuludq xmm2, xmm1
pmuludq xmm1, xmm6
psllq xmm1, 0x20
paddq xmm1, xmm2
movdqa xmm2, xmm14
pmuludq xmm2, xmm5
pmuludq xmm5, xmm6
psllq xmm5, 0x20
paddq xmm5, xmm2
movdqa xmm2, xmm5
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm5, 0x10
pshufd xmm5, xmm5, 0xed
punpckldq xmm5, xmm2
movdqa xmm2, xmm1
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm1, 0x10
pshufd xmm1, xmm1, 0xed
punpckldq xmm1, xmm2
packssdw xmm1, xmm5
movdqa xmm2, xmm7
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm7, 0x10
pshufd xmm5, xmm7, 0xed
punpckldq xmm5, xmm2
movdqa xmm2, xmm0
psrad xmm2, 0x1f
pshufd xmm2, xmm2, 0xed
psrad xmm0, 0x10
pshufd xmm0, xmm0, 0xed
punpckldq xmm0, xmm2
packssdw xmm0, xmm5
packssdw xmm0, xmm1
movdqa xmm1, xmm13
pmulhuw xmm1, xmm0
pmullw xmm0, xmm13
movdqa xmm2, xmm0
punpckhwd xmm2, xmm1
punpcklwd xmm0, xmm1
psubd xmm4, xmm0
psubd xmm3, xmm2
movdqa xmm0, xmm3
pxor xmm0, xmm10
movdqa xmm1, xmm4
pxor xmm1, xmm10
paddd xmm1, xmm11
paddd xmm0, xmm11
pslld xmm0, 0x10
pslld xmm1, 0x10
packssdw xmm1, xmm0
psrlw xmm1, 0xf
pmullw xmm1, xmm13
movdqa xmm0, xmm1
punpckhwd xmm0, xmm0
punpcklwd xmm1, xmm1
psubd xmm4, xmm1
psubd xmm3, xmm0
pslld xmm3, 0x10
psrad xmm3, 0x10
pslld xmm4, 0x10
psrad xmm4, 0x10
packssdw xmm4, xmm3
movdqu xmmword [rdi + rsi], xmm4
add rsi, 0x10
cmp rbx, rsi
jne 0x1400a00c0
cmp rdx, r14
je 0x1400a02be
nop dword [rax]
movzx ebp, word [rdi + rdx*2]
lea rbx, [rbp*2]
add rbx, rbp
mov rbp, rbx
imul rbp, rax
shr rbp, 0x30
imul ebp, ecx
sub ebx, ebp
mov ebp, ebx
not ebp
add ebp, r13d
shr ebp, 0xf
and ebp, 1
imul ebp, ecx
sub ebx, ebp
mov word [rdi + rdx*2], bx
add rdx, 1
cmp r14, rdx
jne 0x1400a0280
mov edx, r13d
shr edx, 1
lea ebp, [rdx + 1]
mov ebx, 0xaaaaaaab
imul rbx, rbp
shr rbx, 0x21
lea ebp, [rbx + rbx*2]
neg ebp
add ebp, edx
add ebp, 1
not edx
add edx, r13d
add edx, ebp
cmp r14d, 8
jae 0x1400a02f1
xor ebx, ebx
jmp 0x1400a0510
mov ebx, r14d
and ebx, 0xfffffff8
movd xmm0, edx
pshufd xmm10, xmm0, 0
pshufd xmm13, xmm8, 0x44
pshufd xmm9, xmm9, 0
movd xmm1, r13d
pshufd xmm11, xmm1, 0
lea r8, [r14 + r14]
and r8, 0xfffffffffffffff0
xor esi, esi
pxor xmm12, xmm12
movdqa xmm5, xmm13
psrlq xmm5, 0x20
pslld xmm9, 0x10
psrad xmm9, 0x10
pcmpeqd xmm8, xmm8
nop word cs:[rax + rax]
nop dword [rax]
movdqu xmm1, xmmword [rdi + rsi]
movdqa xmm4, xmm1
punpckhwd xmm4, xmm12
punpcklwd xmm1, xmm12
paddd xmm1, xmm10
paddd xmm4, xmm10
movdqa xmm3, xmm4
punpckhdq xmm3, xmm12
movdqa xmm2, xmm4
punpckldq xmm2, xmm12
movdqa xmm6, xmm1
punpckhdq xmm6, xmm12
movdqa xmm7, xmm1
punpckldq xmm7, xmm12
movdqa xmm0, xmm13
pmuludq xmm0, xmm7
pmuludq xmm7, xmm5
psllq xmm7, 0x20
paddq xmm7, xmm0
movdqa xmm0, xmm13
pmuludq xmm0, xmm6
pmuludq xmm6, xmm5
psllq xmm6, 0x20
paddq xmm6, xmm0
movdqa xmm0, xmm13
pmuludq xmm0, xmm2
pmuludq xmm2, xmm5
psllq xmm2, 0x20
paddq xmm2, xmm0
movdqa xmm0, xmm13
pmuludq xmm0, xmm3
pmuludq xmm3, xmm5
psllq xmm3, 0x20
paddq xmm3, xmm0
movdqa xmm0, xmm3
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xed
psrad xmm3, 0x10
pshufd xmm3, xmm3, 0xed
punpckldq xmm3, xmm0
movdqa xmm0, xmm2
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xed
psrad xmm2, 0x10
pshufd xmm2, xmm2, 0xed
punpckldq xmm2, xmm0
packssdw xmm2, xmm3
movdqa xmm0, xmm6
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xed
psrad xmm6, 0x10
pshufd xmm3, xmm6, 0xed
punpckldq xmm3, xmm0
movdqa xmm0, xmm7
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xed
psrad xmm7, 0x10
pshufd xmm6, xmm7, 0xed
punpckldq xmm6, xmm0
packssdw xmm6, xmm3
packssdw xmm6, xmm2
movdqa xmm0, xmm9
packssdw xmm0, xmm9
movdqa xmm2, xmm0
pmulhuw xmm2, xmm6
pmullw xmm6, xmm0
movdqa xmm3, xmm6
punpckhwd xmm3, xmm2
punpcklwd xmm6, xmm2
psubd xmm1, xmm6
psubd xmm4, xmm3
movdqa xmm2, xmm4
pxor xmm2, xmm8
movdqa xmm3, xmm1
pxor xmm3, xmm8
paddd xmm3, xmm11
paddd xmm2, xmm11
pslld xmm2, 0x10
pslld xmm3, 0x10
packssdw xmm3, xmm2
psrlw xmm3, 0xf
pmullw xmm3, xmm0
movdqa xmm0, xmm3
punpckhwd xmm0, xmm0
punpcklwd xmm3, xmm3
psubd xmm1, xmm3
psubd xmm4, xmm0
pslld xmm4, 0x10
psrad xmm4, 0x10
pslld xmm1, 0x10
psrad xmm1, 0x10
packssdw xmm1, xmm4
movdqu xmmword [rdi + rsi], xmm1
add rsi, 0x10
cmp r8, rsi
jne 0x1400a0350
cmp rbx, r14
je 0x1400a0545
nop word cs:[rax + rax]
nop
movzx ebp, word [rdi + rbx*2]
add ebp, edx
mov rsi, rax
imul rsi, rbp
shr rsi, 0x30
imul esi, ecx
sub ebp, esi
mov esi, ebp
not esi
add esi, r13d
shr esi, 0xf
and esi, 1
imul esi, ecx
sub ebp, esi
mov word [rdi + rbx*2], bp
add rbx, 1
cmp r14, rbx
jne 0x1400a0510
mov rcx, qword [r15 + 0x20]
call fcn.140042cc0
mov rcx, r15
call fcn.140042cc0
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b8300
mov rax, qword [rsp + 0x28]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm11, xmmword [rsp + 0xa0]
movaps xmm12, xmmword [rsp + 0xb0]
movaps xmm13, xmmword [rsp + 0xc0]
movaps xmm14, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret