Function at 0x14009f370
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], xmm15
movdqa xmmword [rsp + 0xc0], xmm14
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
movaps xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm6
mov r14, r8
mov qword [rsp + 0x30], rdx
mov rsi, rcx
mov r12d, dword [r8]
mov r13d, dword [r8 + 4]
mov r15d, r13d
mov edi, dword [r8 + 8]
xor ebp, ebp
mov edx, 2
mov rcx, r12
xor r8d, r8d
call fcn.14003f680
mov rbx, rax
mov r8, qword [r14 + 0x18]
mov dword [rsp + 0x2c], r13d
mov dword [rsp + 0x20], r13d
mov rcx, rax
mov rdx, qword [rsp + 0x30]
mov r9d, r12d
call fcn.14009b880
movzx r11d, r13w
movabs rax, 0x1000000000000
xor edx, edx
div r11
test r12, r12
je 0x14009f48c
movabs r8, 0x555555555555
shr r13, 1
lea edx, [r13 - 1]
imul rdx, r8
shr rdx, 0x30
lea edx, [rdx + rdx*2]
neg edx
add edx, r13d
add edx, 0xffffffff
mov ebp, 2
sub ebp, edx
shr ebp, 0xf
and ebp, 1
lea ebp, [rbp + rbp*2]
sub ebp, edx
add ebp, 3
movzx r10d, bp
cmp r12d, 8
jae 0x14009f4bf
xor ebp, ebp
mov r15d, dword [rsp + 0x2c]
jmp 0x14009f830
mov r8, qword [r14 + 0x20]
mov dword [rsp + 0x20], 3
mov rcx, rsi
mov rdx, rbx
mov r9d, r12d
call fcn.14009b880
lea rdx, [r12 + r12]
mov rcx, rbx
call fcn.140076910
mov rcx, rbx
call fcn.14003f720
jmp 0x14009fb4b
mov ebp, r12d
and ebp, 0xfffffff8
movd xmm0, r13d
pshufd xmm13, xmm0, 0
movq xmm0, rax
pshufd xmm11, xmm0, 0x44
movd xmm0, r11d
pshufd xmm1, xmm0, 0
mov r15d, dword [rsp + 0x2c]
movd xmm0, r15d
pshufd xmm14, xmm0, 0
movd xmm0, r10d
pshufd xmm15, xmm0, 0
lea r9, [r12 + r12]
and r9, 0xfffffffffffffff0
xor edx, edx
pxor xmm5, xmm5
movdqa xmm6, xmm11
psrlq xmm6, 0x20
pslld xmm1, 0x10
psrad xmm1, 0x10
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmm12, xmmword [0x1400fad70]
movdqa xmm10, xmmword [0x1400fad80]
nop word [rax + rax]
movdqu xmm4, xmmword [rbx + rdx]
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 + 0x30]
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 [0x1400fad50]
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 [0x1400ef5e0]
movdqa xmm0, xmm1
psubd xmm0, xmm4
psubd xmm1, xmm9
psrld xmm1, 0xf
psrld xmm0, 0xf
movdqa xmm2, xmmword [0x1400fad40]
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 [rbx + rdx], xmm4
add rdx, 0x10
cmp r9, rdx
jne 0x14009f540
cmp rbp, r12
je 0x14009f892
nop
movzx ecx, word [rbx + rbp*2]
add rcx, r13
mov rdx, rcx
imul rdx, rax
shr rdx, 0x30
imul edx, r11d
sub ecx, edx
mov edx, ecx
not edx
add edx, r15d
shr edx, 0xf
and edx, 1
imul edx, r11d
sub ecx, edx
movzx ecx, cx
add ecx, r10d
mov rdx, rcx
imul rdx, r8
shr rdx, 0x30
lea edx, [rdx + rdx*2]
sub ecx, edx
mov edx, 2
sub edx, ecx
shr edx, 0xf
and edx, 1
lea edx, [rdx + rdx*2]
not edx
add edx, ecx
mov word [rbx + rbp*2], dx
add rbp, 1
cmp r12, rbp
jne 0x14009f830
cmp r12d, 0x10
jae 0x14009f89f
xor eax, eax
jmp 0x14009f9a0
mov eax, r12d
and eax, 0xfffffff0
lea rcx, [rax - 0x10]
mov rbp, rcx
shr rbp, 4
add rbp, 1
test rcx, rcx
je 0x14009fddd
mov rdx, rbp
and rdx, 0xfffffffffffffffe
xor ecx, ecx
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rbx + rcx*2]
movdqu xmm1, xmmword [rbx + rcx*2 + 0x10]
movdqu xmm2, xmmword [rbx + rcx*2 + 0x20]
movdqu xmm3, xmmword [rbx + rcx*2 + 0x30]
movdqa xmm4, xmm0
psraw xmm4, 0xf
psrlw xmm4, 0xe
movdqa xmm5, xmm1
psraw xmm5, 0xf
psrlw xmm5, 0xe
paddw xmm4, xmm0
paddw xmm5, xmm1
movdqu xmmword [rbx + rcx*2], xmm4
movdqu xmmword [rbx + rcx*2 + 0x10], xmm5
movdqa xmm0, xmm2
psraw xmm0, 0xf
psrlw xmm0, 0xe
movdqa xmm1, xmm3
psraw xmm1, 0xf
psrlw xmm1, 0xe
paddw xmm0, xmm2
paddw xmm1, xmm3
movdqu xmmword [rbx + rcx*2 + 0x20], xmm0
movdqu xmmword [rbx + rcx*2 + 0x30], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x14009f8d0
test bpl, 1
je 0x14009f990
movdqu xmm0, xmmword [rbx + rcx*2]
movdqu xmm1, xmmword [rbx + rcx*2 + 0x10]
movdqa xmm2, xmm0
psraw xmm2, 0xf
psrlw xmm2, 0xe
movdqa xmm3, xmm1
psraw xmm3, 0xf
psrlw xmm3, 0xe
paddw xmm2, xmm0
paddw xmm3, xmm1
movdqu xmmword [rbx + rcx*2], xmm2
movdqu xmmword [rbx + rcx*2 + 0x10], xmm3
cmp rax, r12
je 0x14009f9bb
nop word cs:[rax + rax]
nop
movsx ecx, word [rbx + rax*2]
mov edx, ecx
shr edx, 0xf
and edx, 3
add edx, ecx
mov word [rbx + rax*2], dx
add rax, 1
cmp r12, rax
jne 0x14009f9a0
mov r8, qword [r14 + 0x20]
mov dword [rsp + 0x20], 3
mov rcx, rsi
mov rdx, rbx
mov r9d, r12d
call fcn.14009b880
lea rdx, [r12 + r12]
mov rcx, rbx
call fcn.140076910
mov rcx, rbx
call fcn.14003f720
test r12d, r12d
je 0x14009f9fe
cmp r12d, 8
jae 0x14009fa05
xor eax, eax
mov ebp, r12d
jmp 0x14009fb30
xor ebp, ebp
jmp 0x14009fb4b
mov eax, r12d
and eax, 0xfffffff8
movd xmm0, r12d
lea rcx, [rax - 8]
mov rbp, rcx
shr rbp, 3
add rbp, 1
test rcx, rcx
je 0x14009fe0f
mov rcx, rbp
and rcx, 0xfffffffffffffffe
pxor xmm2, xmm2
xor edx, edx
movdqa xmm3, xmmword [0x1400fad50]
movdqa xmm4, xmmword [0x1400fadb0]
pxor xmm1, xmm1
nop dword [rax]
movq xmm6, qword [rsi + rdx*2]
movq xmm5, qword [rsi + rdx*2 + 8]
punpcklwd xmm6, xmm2
punpcklwd xmm5, xmm2
paddd xmm6, xmm3
paddd xmm5, xmm3
psrld xmm6, 0x10
paddd xmm6, xmm0
psrld xmm5, 0x10
paddd xmm5, xmm1
movq xmm0, qword [rsi + rdx*2 + 0x10]
punpcklwd xmm0, xmm2
paddd xmm0, xmm3
psrld xmm0, 0x10
movq xmm1, qword [rsi + rdx*2 + 0x18]
punpcklwd xmm1, xmm2
paddd xmm1, xmm3
psrld xmm1, 0x10
paddd xmm0, xmm4
paddd xmm0, xmm6
paddd xmm1, xmm4
paddd xmm1, xmm5
add rdx, 0x10
add rcx, 0xfffffffffffffffe
jne 0x14009fa50
test bpl, 1
je 0x14009fb08
movq xmm2, qword [rsi + rdx*2]
movq xmm3, qword [rsi + rdx*2 + 8]
pxor xmm4, xmm4
punpcklwd xmm2, xmm4
punpcklwd xmm3, xmm4
movdqa xmm4, xmmword [0x1400fad50]
paddd xmm2, xmm4
paddd xmm3, xmm4
psrld xmm2, 0x10
paddd xmm0, xmm2
psrld xmm3, 0x10
paddd xmm1, xmm3
pcmpeqd xmm2, xmm2
paddd xmm0, xmm2
paddd xmm1, xmm2
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd ebp, xmm0
cmp rax, r12
je 0x14009fb4b
nop word [rax + rax]
movzx ecx, word [rsi + rax*2]
add ecx, 0xffff
shr ecx, 0x10
add ebp, ecx
add ebp, 0xffffffff
add rax, 1
cmp r12, rax
jne 0x14009fb30
mov eax, edi
xor eax, ebp
movzx eax, ax
add eax, 0xffff
shr eax, 0x10
neg eax
test rdi, rdi
je 0x14009fc8a
cmp edi, 0x10
jae 0x14009fb71
xor ecx, ecx
jmp 0x14009fc68
mov ecx, edi
and ecx, 0xfffffff0
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rcx - 0x10]
mov rbx, rdx
shr rbx, 4
add rbx, 1
test rdx, rdx
je 0x14009fdee
mov rbp, rbx
and rbp, 0xfffffffffffffffe
xor edx, edx
movdqa xmm1, xmmword [0x1400fadc0]
pand xmm1, xmm0
nop word cs:[rax + rax]
nop dword [rax + rax]
movdqu xmm2, xmmword [rsi + rdx*2]
movdqu xmm3, xmmword [rsi + rdx*2 + 0x10]
movdqu xmm4, xmmword [rsi + rdx*2 + 0x20]
movdqu xmm5, xmmword [rsi + rdx*2 + 0x30]
movdqa xmm6, xmm0
pandn xmm6, xmm2
por xmm6, xmm1
movdqa xmm2, xmm0
pandn xmm2, xmm3
por xmm2, xmm1
movdqu xmmword [rsi + rdx*2], xmm6
movdqu xmmword [rsi + rdx*2 + 0x10], xmm2
movdqa xmm2, xmm0
pandn xmm2, xmm4
por xmm2, xmm1
movdqa xmm3, xmm0
pandn xmm3, xmm5
por xmm3, xmm1
movdqu xmmword [rsi + rdx*2 + 0x20], xmm2
movdqu xmmword [rsi + rdx*2 + 0x30], xmm3
add rdx, 0x20
add rbp, 0xfffffffffffffffe
jne 0x14009fbc0
test bl, 1
je 0x14009fc63
movdqu xmm1, xmmword [rsi + rdx*2]
movdqu xmm2, xmmword [rsi + rdx*2 + 0x10]
movdqa xmm3, xmmword [0x1400fadc0]
pand xmm3, xmm0
movdqa xmm4, xmm0
pandn xmm4, xmm1
por xmm4, xmm3
pandn xmm0, xmm2
por xmm0, xmm3
movdqu xmmword [rsi + rdx*2], xmm4
movdqu xmmword [rsi + rdx*2 + 0x10], xmm0
cmp rcx, rdi
je 0x14009fc8a
movsx edx, ax
nop dword [rax + rax]
movzx ebx, word [rsi + rcx*2]
mov ebp, ebx
xor ebp, 1
and ebp, edx
xor ebp, ebx
mov word [rsi + rcx*2], bp
add rcx, 1
cmp rdi, rcx
jne 0x14009fc70
cmp edi, r12d
jae 0x14009fd7d
not eax
mov rcx, r12
sub rcx, rdi
cmp rcx, 0x10
jb 0x14009fd70
mov r8, rcx
and r8, 0xfffffffffffffff0
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [r8 - 0x10]
mov r9, rdx
shr r9, 4
add r9, 1
test rdx, rdx
je 0x14009fdfe
mov rbx, r9
and rbx, 0xfffffffffffffffe
lea rdx, [rsi + rdi*2]
add rdx, 0x30
xor ebp, ebp
nop word cs:[rax + rax]
nop dword [rax]
movdqu xmm1, xmmword [rdx + rbp*2 - 0x30]
movdqu xmm2, xmmword [rdx + rbp*2 - 0x20]
movdqu xmm3, xmmword [rdx + rbp*2 - 0x10]
movdqu xmm4, xmmword [rdx + rbp*2]
pand xmm1, xmm0
pand xmm2, xmm0
movdqu xmmword [rdx + rbp*2 - 0x30], xmm1
movdqu xmmword [rdx + rbp*2 - 0x20], xmm2
pand xmm3, xmm0
pand xmm4, xmm0
movdqu xmmword [rdx + rbp*2 - 0x10], xmm3
movdqu xmmword [rdx + rbp*2], xmm4
add rbp, 0x20
add rbx, 0xfffffffffffffffe
jne 0x14009fcf0
test r9b, 1
je 0x14009fd5f
add rbp, rdi
movdqu xmm1, xmmword [rsi + rbp*2]
movdqu xmm2, xmmword [rsi + rbp*2 + 0x10]
pand xmm1, xmm0
pand xmm2, xmm0
movdqu xmmword [rsi + rbp*2], xmm1
movdqu xmmword [rsi + rbp*2 + 0x10], xmm2
cmp rcx, r8
je 0x14009fd7d
add rdi, r8
nop word [rax + rax]
and word [rsi + rdi*2], ax
add rdi, 1
cmp r12, rdi
jne 0x14009fd70
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]
movaps xmm14, xmmword [rsp + 0xc0]
movaps xmm15, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
test bpl, 1
jne 0x14009f956
jmp 0x14009f990
xor edx, edx
test bl, 1
jne 0x14009fc2d
jmp 0x14009fc63
xor ebp, ebp
test r9b, 1
jne 0x14009fd3e
jmp 0x14009fd5f
pxor xmm1, xmm1
xor edx, edx
test bpl, 1
jne 0x14009fac3
jmp 0x14009fb08