Function at 0x140183ae0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x88
mov rax, qword [0x140672360]
xor rax, rsp
mov qword [rsp + 0x10], rax
lea rax, [r8 - 3]
mov r9, rdx
cmp rax, 0xfc
jbe 0x140183b1d
mov rax, r8
mov rcx, qword [rsp + 0x10]
xor rcx, rsp
call fcn.140359070
add rsp, 0x88
ret
mov qword [rsp + 0x90], rbx
mov r10, r8
mov qword [rsp + 0x80], rdi
lea rbx, [r8 - 1]
movzx edi, byte [rdx + r8 - 1]
mov rcx, r8
sub r10, rdi
movaps xmmword [rsp + 0x70], xmm6
mov r11, r10
movsx eax, dil
xor r11, r8
xor edx, edx
or rcx, r11
xor rcx, r8
movq xmm6, r10
shr rcx, 0x3f
movd xmm0, eax
neg rcx
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp], xmm0
punpcklqdq xmm6, xmm6
test rbx, rbx
je 0x140183da7
mov qword [rsp + 0xa0], rsi
cmp rbx, 4
jb 0x140183d58
movzx eax, word [rsp]
xorps xmm0, xmm0
mov qword [rsp + 0x98], rbp
mov r8, rbx
movaps xmmword [rsp + 0x60], xmm7
and r8, 0xfffffffffffffffc
movaps xmmword [rsp + 0x50], xmm8
mov esi, 2
movaps xmmword [rsp + 0x40], xmm9
xorps xmm7, xmm7
movdqa xmm9, xmmword [0x14060b000]
xorps xmm4, xmm4
movd xmm5, eax
mov rbp, r9
punpcklbw xmm5, xmm0
mov eax, 0x3f
movaps xmmword [rsp + 0x30], xmm10
sub rsi, r9
movdqa xmm10, xmmword [0x14060af10]
punpcklwd xmm5, xmm0
movaps xmmword [rsp + 0x20], xmm11
movq xmm8, rax
punpckldq xmm5, xmm0
movdqa xmm11, xmm9
nop dword [rax]
movzx eax, word [rbp]
xorps xmm0, xmm0
movq xmm1, rdx
add rdx, 4
punpcklqdq xmm1, xmm1
paddq xmm1, xmm10
movd xmm3, eax
movdqa xmm2, xmm1
movzx eax, word [rbp + 2]
psubq xmm2, xmm6
punpcklbw xmm3, xmm0
pxor xmm2, xmm1
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
movdqa xmm0, xmm1
pxor xmm0, xmm6
pxor xmm3, xmm5
por xmm2, xmm0
movdqa xmm0, xmm3
pxor xmm2, xmm1
paddq xmm0, xmm9
pandn xmm3, xmm11
psrlq xmm0, xmm8
psrlq xmm2, xmm8
psrlq xmm3, xmm8
paddq xmm2, xmm9
pand xmm0, xmm3
movd xmm3, eax
lea rax, [rsi + rbp]
paddq xmm0, xmm9
lea rbp, [rbp + 4]
pand xmm2, xmm0
xorps xmm0, xmm0
por xmm7, xmm2
punpcklbw xmm3, xmm0
movq xmm1, rax
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
punpcklqdq xmm1, xmm1
pxor xmm3, xmm5
paddq xmm1, xmm10
movdqa xmm2, xmm1
movdqa xmm0, xmm1
psubq xmm2, xmm6
pxor xmm0, xmm6
pxor xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmm3
paddq xmm0, xmm9
pxor xmm2, xmm1
pandn xmm3, xmm11
psrlq xmm0, xmm8
psrlq xmm2, xmm8
psrlq xmm3, xmm8
paddq xmm2, xmm9
pand xmm0, xmm3
paddq xmm0, xmm9
pand xmm2, xmm0
por xmm4, xmm2
cmp rdx, r8
jne 0x140183c10
movaps xmm11, xmmword [rsp + 0x20]
por xmm4, xmm7
movaps xmm10, xmmword [rsp + 0x30]
movdqa xmm0, xmm4
movaps xmm9, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
mov rbp, qword [rsp + 0x98]
psrldq xmm0, 8
por xmm4, xmm0
movq rax, xmm4
or rcx, rax
cmp rdx, rbx
je 0x140183d9f
lea rsi, [r10 + r9]
nop dword [rax]
mov r8, rdx
mov rax, rdx
sub r8, r10
xor rax, r10
mov r9, r8
xor r9, rdx
or r9, rax
movzx r8d, byte [rsi + r8]
xor r9, rdx
xor r8, rdi
shr r9, 0x3f
dec r8
dec r9
shr r8, 0x3f
inc rdx
dec r8
and r9, r8
or rcx, r9
cmp rdx, rbx
jne 0x140183d60
mov rsi, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x70]
and r11, rcx
mov rdi, qword [rsp + 0x80]
xor r11, r10
mov rbx, qword [rsp + 0x90]
mov rax, r11
mov rcx, qword [rsp + 0x10]
xor rcx, rsp
call fcn.140359070
add rsp, 0x88
ret