Function at 0x14009f750
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
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 ebp, r9d
mov r12d, r8d
mov r13, rdx
mov qword [rsp + 0x28], rcx
mov rax, qword [0x140129050]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov edi, r8d
mov edx, 2
mov rcx, rdi
xor r8d, r8d
call fcn.140042eb0
mov rsi, rax
test r12d, r12d
je 0x14009f8fd
cmp r12d, 0x10
jae 0x14009f7f1
xor eax, eax
jmp 0x14009f8f0
mov eax, edi
and eax, 0xfffffff0
movd xmm0, ebp
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbx, [rax - 0x10]
mov rdx, rbx
shr rdx, 4
add rdx, 1
mov ecx, edx
and ecx, 7
cmp rbx, 0x70
jae 0x14009f825
xor ebx, ebx
jmp 0x14009f8b5
and rdx, 0xfffffffffffffff8
xor ebx, ebx
nop dword [rax + rax]
movdqu xmmword [rsi + rbx*2], xmm0
movdqu xmmword [rsi + rbx*2 + 0x10], xmm0
movdqu xmmword [rsi + rbx*2 + 0x20], xmm0
movdqu xmmword [rsi + rbx*2 + 0x30], xmm0
movdqu xmmword [rsi + rbx*2 + 0x40], xmm0
movdqu xmmword [rsi + rbx*2 + 0x50], xmm0
movdqu xmmword [rsi + rbx*2 + 0x60], xmm0
movdqu xmmword [rsi + rbx*2 + 0x70], xmm0
movdqu xmmword [rsi + rbx*2 + 0x80], xmm0
movdqu xmmword [rsi + rbx*2 + 0x90], xmm0
movdqu xmmword [rsi + rbx*2 + 0xa0], xmm0
movdqu xmmword [rsi + rbx*2 + 0xb0], xmm0
movdqu xmmword [rsi + rbx*2 + 0xc0], xmm0
movdqu xmmword [rsi + rbx*2 + 0xd0], xmm0
movdqu xmmword [rsi + rbx*2 + 0xe0], xmm0
movdqu xmmword [rsi + rbx*2 + 0xf0], xmm0
sub rbx, 0xffffffffffffff80
add rdx, 0xfffffffffffffff8
jne 0x14009f830
test rcx, rcx
je 0x14009f8e4
lea rdx, [rsi + rbx*2]
add rdx, 0x10
shl rcx, 5
xor ebx, ebx
nop dword [rax + rax]
movdqu xmmword [rdx + rbx - 0x10], xmm0
movdqu xmmword [rdx + rbx], xmm0
add rbx, 0x20
cmp rcx, rbx
jne 0x14009f8d0
cmp rax, rdi
je 0x14009f8fd
nop dword [rax]
mov word [rsi + rax*2], bp
add rax, 1
cmp rdi, rax
jne 0x14009f8f0
mov r14, qword [rsp + 0x140]
mov rcx, rsi
mov rdx, rdi
call fcn.14009cd00
mov r15, rax
mov rcx, rsi
call fcn.140042f50
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x14009f93d
mov rcx, qword [r15 + 0x20]
cmp rax, 4
jae 0x14009f94a
xor edx, edx
xor r8d, r8d
mov rsi, qword [rsp + 0x28]
jmp 0x14009fa60
xor r8d, r8d
mov rsi, qword [rsp + 0x28]
jmp 0x14009fa75
mov rdx, rax
and rdx, 0xfffffffffffffffc
lea rbx, [rdx - 4]
mov r8, rbx
shr r8, 2
add r8, 1
test rbx, rbx
je 0x14009faec
mov rsi, r8
and rsi, 0xfffffffffffffffe
pxor xmm0, xmm0
xor ebx, ebx
movdqa xmm2, xmmword [0x1400f87d0]
movdqa xmm3, xmmword [0x1400f87e0]
pxor xmm1, xmm1
nop word [rax + rax]
movq xmm4, qword [rcx + rbx*4]
movq xmm5, qword [rcx + rbx*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 + rbx*4 + 0x10]
movq xmm1, qword [rcx + rbx*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 rbx, 8
add rsi, 0xfffffffffffffffe
jne 0x14009f990
test r8b, 1
je 0x14009fa38
movq xmm2, qword [rcx + rbx*4]
movq xmm3, qword [rcx + rbx*4 + 8]
pshufd xmm2, xmm2, 0xd4
movdqa xmm4, xmmword [0x1400f87d0]
pcmpeqd xmm2, xmm4
movdqa xmm5, xmmword [0x1400f87e0]
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 rsi, qword [rsp + 0x28]
je 0x14009fa75
nop word cs:[rax + rax]
nop
xor ebx, ebx
cmp dword [rcx + rdx*4], 1
sete bl
add r8, rbx
add rdx, 1
cmp rax, rdx
jne 0x14009fa60
mov rdx, qword [r14 + 0x20]
mov rcx, rsi
call fcn.1400429f0
mov rax, qword [r14 + 0x20]
cmp dword [rax + 0x18], 0
je 0x14009faa0
add rdi, rdi
mov rcx, r13
xor edx, edx
mov r8, rdi
call fcn.1400ba5e0
jmp 0x14009fd59
movdqu xmm0, xmmword [rsi]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov rcx, r15
mov rdx, r13
call fcn.14009d4e0
movzx ecx, bp
movabs rax, 0x1000000000000
xor edx, edx
div rcx
test r12d, r12d
je 0x14009fd59
mov ebx, ebp
shr ebx, 1
mov r9d, ebp
sub r9d, ebx
cmp r12d, 8
jae 0x14009fb05
xor ebx, ebx
jmp 0x14009fd20
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
test r8b, 1
jne 0x14009f9fb
jmp 0x14009fa38
mov ebx, edi
and ebx, 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 esi, esi
pxor xmm12, xmm12
movdqa xmm5, xmm13
psrlq xmm5, 0x20
pslld xmm9, 0x10
psrad xmm9, 0x10
pcmpeqd xmm8, xmm8
nop
movdqu xmm2, xmmword [r13 + rsi]
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 [r13 + rsi], xmm2
add rsi, 0x10
cmp r8, rsi
jne 0x14009fb60
cmp rbx, rdi
je 0x14009fd59
nop dword [rax]
movzx esi, word [r13 + rbx*2]
add esi, r9d
mov rdx, rax
imul rdx, rsi
shr rdx, 0x30
imul edx, ecx
sub esi, edx
mov edx, esi
not edx
add edx, ebp
shr edx, 0xf
and edx, 1
imul edx, ecx
sub esi, edx
mov word [r13 + rbx*2], si
add rbx, 1
cmp rdi, rbx
jne 0x14009fd20
mov rcx, qword [r15 + 0x20]
call fcn.140042f50
mov rcx, r15
call fcn.140042f50
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b8cc0
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]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret