Function at 0x140090800
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x30
xor r8d, r8d
mov rbx, rcx
cmp edx, 0x46
je 0x140090c53
cmp edx, 0x4b
je 0x140090c53
cmp edx, 0x37
je 0x140090b9f
cmp edx, 0x3c
je 0x140090b9f
cmp edx, 0x2c
jne 0x1400908c1
movq xmm1, qword [0x140d623f0]
paddd xmm1, xmmword [0x140d64ed0]
mov dword [rbp + 0x18], 0x9bf0
movzx eax, word [rbp + 0x18]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
xorps xmm0, xmm0
andps xmm1, xmmword [0x140d625b0]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov qword [rcx + 0x18], r8
mov r8, 0xffffffffffffffff
mov word [rbp + 0x18], ax
lea rax, [rbp + 0x18]
nop
inc r8
cmp byte [rax + r8], 0
jne 0x1400908a0
lea rdx, [rbp + 0x18]
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret
cmp edx, 0x1a
jne 0x140090951
movq xmm1, qword [0x140d623f0]
paddd xmm1, xmmword [0x140d64ed0]
mov dword [rbp + 0x18], 0x9af0
movzx eax, word [rbp + 0x18]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
xorps xmm0, xmm0
andps xmm1, xmmword [0x140d625b0]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov qword [rcx + 0x18], r8
mov r8, 0xffffffffffffffff
mov word [rbp + 0x18], ax
lea rax, [rbp + 0x18]
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140090930
lea rdx, [rbp + 0x18]
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret
cmp edx, 0x14
jne 0x1400909e1
movq xmm1, qword [0x140d623f0]
paddd xmm1, xmmword [0x140d64ed0]
mov dword [rbp + 0x18], 0x9df0
movzx eax, word [rbp + 0x18]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
xorps xmm0, xmm0
andps xmm1, xmmword [0x140d625b0]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov qword [rcx + 0x18], r8
mov r8, 0xffffffffffffffff
mov word [rbp + 0x18], ax
lea rax, [rbp + 0x18]
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400909c0
lea rdx, [rbp + 0x18]
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret
cmp edx, 0xd
jne 0x140090a71
movq xmm1, qword [0x140d623f0]
paddd xmm1, xmmword [0x140d64ed0]
mov dword [rbp + 0x18], 0x9ff0
movzx eax, word [rbp + 0x18]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
xorps xmm0, xmm0
andps xmm1, xmmword [0x140d625b0]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov qword [rcx + 0x18], r8
mov r8, 0xffffffffffffffff
mov word [rbp + 0x18], ax
lea rax, [rbp + 0x18]
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140090a50
lea rdx, [rbp + 0x18]
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret
movdqa xmm2, xmmword [0x140d62440]
cmp edx, 0xb
jne 0x140090b02
movq xmm1, qword [0x140d623f0]
paddd xmm1, xmmword [0x140d64ed0]
mov dword [rbp + 0x18], 0x91f0
movzx eax, word [rbp + 0x18]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
xorps xmm0, xmm0
andps xmm1, xmmword [0x140d625b0]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov qword [rcx + 0x18], r8
mov r8, 0xffffffffffffffff
mov word [rbp + 0x18], ax
lea rax, [rbp + 0x18]
inc r8
cmp byte [rax + r8], 0
jne 0x140090ae1
lea rdx, [rbp + 0x18]
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret
movdqa xmm3, xmmword [0x140d64ec0]
mov rcx, r8
movdqa xmm4, xmmword [0x140d625b0]
mov dword [rbp + 0x20], 0xfdf9f9db
mov word [rbp + 0x24], 0x100
movzx eax, word [rbp + rcx + 0x20]
movq xmm0, rcx
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm3
paddd xmm1, xmm0
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
andps xmm1, xmm4
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov word [rbp + rcx + 0x20], ax
add rcx, 2
cmp rcx, 4
jb 0x140090b22
xorps xmm0, xmm0
mov byte [rbp + 0x25], r8b
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r8
lea rax, [rbp + 0x20]
mov qword [rbx + 0x18], r8
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x140090b90
jmp 0x140090cfa
movdqa xmm2, xmmword [0x140d62440]
mov rcx, r8
movdqa xmm3, xmmword [0x140d64eb0]
movdqa xmm4, xmmword [0x140d625b0]
mov dword [rbp + 0x20], 0xd1f0f6c0
mov dword [rbp + 0x24], 0x100e3f9
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x20]
movq xmm0, rcx
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm3
paddd xmm1, xmm0
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
andps xmm1, xmm4
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov word [rbp + rcx + 0x20], ax
add rcx, 2
cmp rcx, 6
jb 0x140090bd0
xorps xmm0, xmm0
mov byte [rbp + 0x27], r8b
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r8
lea rax, [rbp + 0x20]
mov qword [rbx + 0x18], r8
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140090c40
lea rdx, [rbp + 0x20]
jmp 0x140090cfe
movdqa xmm2, xmmword [0x140d62440]
mov rcx, r8
movdqa xmm3, xmmword [0x140d64ec0]
movdqa xmm4, xmmword [0x140d625b0]
mov dword [rbp + 0x20], 0xf6f8e4dc
mov word [rbp + 0x24], 0x100
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x20]
movq xmm0, rcx
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm3
paddd xmm1, xmm0
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm1, xmm0
andps xmm1, xmm4
packuswb xmm1, xmm1
packuswb xmm1, xmm1
movd eax, xmm1
mov word [rbp + rcx + 0x20], ax
add rcx, 2
cmp rcx, 4
jb 0x140090c80
xorps xmm0, xmm0
mov byte [rbp + 0x25], r8b
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r8
lea rax, [rbp + 0x20]
mov qword [rbx + 0x18], r8
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140090cf0
lea rdx, [rbp + 0x20]
mov rcx, rbx
call fcn.1400643b0
mov rax, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rbp
ret