Function at 0x14122cc80
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
movsx eax, r8w
movq xmm4, r9
punpcklqdq xmm4, xmm4
movq xmm0, r8
lea r9, [rcx + rdx]
pinsrw xmm0, eax, 4
pshufhw xmm2, xmm0, 0
xorps xmm2, xmm4
aesenc xmm2, xmm2
cmp rdx, 0x10
jae 0x14122c706
test rdx, rdx
je 0x14122c7b9
bt rcx, 0xb
jb 0x14122c6d5
movdqu xmm0, xmmword [rcx]
lea rax, [0x14007a947]
sub rax, rdx
movdqu xmm1, xmmword [rax]
andps xmm1, xmm0
jmp 0x14122c6ee
movdqu xmm1, xmmword [r9 - 0x10]
lea rax, [0x14007a967]
sub rax, rdx
movdqu xmm0, xmmword [rax]
pshufb xmm1, xmm0
xorps xmm2, xmm1
aesenc xmm2, xmm2
aesenc xmm2, xmm2
aesenc xmm2, xmm2
movq rax, xmm2
ret
cmp rdx, 0x20
ja 0x14122c721
movdqa xmm1, xmm2
mov r8, rcx
aesenc xmm1, xmm4
movdqa xmm0, xmm2
jmp 0x14122c7c0
lea rax, [rcx + 0x20]
movdqa xmm3, xmm2
aesenc xmm3, xmm4
cmp rax, r9
jae 0x14122c763
movdqu xmm0, xmmword [rcx]
add rcx, 0x20
movdqu xmm1, xmmword [rax - 0x10]
add rax, 0x20
xorps xmm2, xmm0
xorps xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
cmp rax, r9
jb 0x14122c733
lea rax, [rcx + 0x10]
cmp rax, r9
jae 0x14122c799
movdqu xmm1, xmmword [r9 - 0x10]
movdqu xmm0, xmmword [rcx]
xorps xmm3, xmm1
aesenc xmm3, xmm3
aesenc xmm3, xmm3
xorps xmm2, xmm0
aesenc xmm2, xmm2
aesenc xmm2, xmm2
xorps xmm2, xmm3
movq rax, xmm2
ret
cmp rcx, r9
je 0x14122c7b6
movdqu xmm0, xmmword [r9 - 0x10]
xorps xmm2, xmm0
aesenc xmm2, xmm2
aesenc xmm2, xmm2
aesenc xmm2, xmm2
xorps xmm2, xmm3
movq rax, xmm2
ret
lea rax, [r8 + 0x10]
movdqa xmm3, xmm0
cmp rax, r9
jae 0x14122c7fb
movdqu xmm2, xmmword [r8]
movdqu xmm0, xmmword [r9 - 0x10]
xorps xmm3, xmm2
xorps xmm1, xmm0
aesenc xmm3, xmm3
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm3, xmm3
xorps xmm3, xmm1
movq rax, xmm3
ret
cmp r8, r9
je 0x14122c818
movdqu xmm0, xmmword [r9 - 0x10]
xorps xmm3, xmm0
aesenc xmm3, xmm3
aesenc xmm3, xmm3
aesenc xmm3, xmm3
xorps xmm3, xmm1
movq rax, xmm3
ret
vmovq xmm1, r8
vpunpcklqdq xmm1, xmm1, xmm1
lea rcx, [rdx + r8]
lea rax, [rdx + 0x40]
vinsertf128 ymm1, ymm1, xmm1, 1
vaesenc ymm3, ymm0, ymm1
vmovdqu ymm2, ymm0
cmp rax, rcx
jae 0x14122c88e
lea r8, [rax - 0x20]
nop dword [rax]
vpxor ymm2, ymm2, ymmword [rdx]
vpxor ymm1, ymm3, ymmword [r8]
add rdx, 0x40
lea r8, [r8 + 0x40]
add rax, 0x40
vaesenc ymm2, ymm2, ymm2
vaesenc ymm0, ymm1, ymm1
vaesenc ymm2, ymm2, ymm2
vaesenc ymm3, ymm0, ymm0
cmp rax, rcx
jb 0x14122c860
lea rax, [rdx + 0x20]
cmp rax, rcx
jae 0x14122c8b6
vpxor ymm2, ymm2, ymmword [rdx]
vpxor ymm1, ymm3, ymmword [rcx - 0x20]
vaesenc ymm2, ymm2, ymm2
vaesenc ymm0, ymm1, ymm1
vaesenc ymm2, ymm2, ymm2
vaesenc ymm3, ymm0, ymm0
jmp 0x14122c8cf
cmp rdx, rcx
je 0x14122c8cf
vpxor ymm1, ymm2, ymmword [rcx - 0x20]
vaesenc ymm2, ymm1, ymm1
vaesenc ymm0, ymm2, ymm2
vaesenc ymm2, ymm0, ymm0
vpxor ymm0, ymm3, ymm2
vextracti128 xmm1, ymm0, 1
vxorps xmm1, xmm1, xmm0
vmovq rax, xmm1
vzeroupper
ret
mov rax, qword [0x141374240]
bt rax, 0x1b
jae 0x14122ca56
mov rax, qword [0x141374240]
movq xmm3, r9
movsx r9d, r8w
movq xmm0, r8
punpcklqdq xmm3, xmm3
pinsrw xmm0, r9d, 4
bt rax, 0x16
jae 0x14122c9bf
pshufhw xmm0, xmm0, 0
xorps xmm0, xmm3
aesenc xmm0, xmm0
movdqa xmm1, xmm0
aesenc xmm1, xmm3
cmp rdx, 0x20
ja 0x14122c9ae
vinsertf128 ymm2, ymm0, xmm1, 1
test rdx, rdx
je 0x14122c9a5
mov eax, 0xffffffff
bzhi eax, eax, edx
kmovd k1, eax
vmovdqu8 ymm0 {k1} {z}, ymmword [rcx]
cmp rdx, 0x10
jb 0x14122c98e
vpxor ymm0, ymm2, ymm0
vaesenc ymm1, ymm0, ymm0
vaesenc ymm2, ymm1, ymm1
vextracti128 xmm0, ymm2, 1
vxorps xmm2, xmm2, xmm0
vmovq rax, xmm2
vzeroupper
ret
vxorps xmm0, xmm0, xmm2
vaesenc xmm0, xmm0, xmm0
vaesenc xmm0, xmm0, xmm0
vaesenc xmm0, xmm0, xmm0
vmovdqa xmm2, xmm0
vmovq rax, xmm2
vzeroupper
ret
mov r8, rdx
mov rdx, rcx
vinsertf128 ymm0, ymm0, xmm1, 1
jmp 0x14122c830
pshufhw xmm2, xmm0, 0
lea r9, [rcx + rdx]
xorps xmm2, xmm3
aesenc xmm2, xmm2
cmp rdx, 0x10
jae 0x14122ca2a
test rdx, rdx
je 0x14122ca24
bt rcx, 0xb
jb 0x14122c9f9
movdqu xmm0, xmmword [rcx]
lea rax, [0x14007a947]
sub rax, rdx
movdqu xmm1, xmmword [rax]
andps xmm1, xmm0
jmp 0x14122ca12
movdqu xmm1, xmmword [r9 - 0x10]
lea rax, [0x14007a967]
sub rax, rdx
movdqu xmm0, xmmword [rax]
pshufb xmm1, xmm0
xorps xmm2, xmm1
aesenc xmm2, xmm2
aesenc xmm2, xmm2
aesenc xmm2, xmm2
movq rax, xmm2
ret
movdqa xmm1, xmm2
aesenc xmm1, xmm3
cmp rdx, 0x20
ja 0x14122ca45
mov r8, rcx
movdqa xmm0, xmm2
jmp 0x14122c7c0
mov r8, rdx
mov rdx, rcx
vinsertf128 ymm0, ymm2, xmm1, 1
jmp 0x14122c830
jmp 0x14122c680
movabs r11, 0xc6a4a7935bd1e995
mov r10, rdx
imul r10, r11
mov eax, 0xfffffff8
mov r9, rcx
xor r10, r8
mov r8, rdx
and r8, rax
add r8, rcx
cmp rcx, r8
je 0x14122cbd5
nop word [rax + rax]
mov rax, qword [r9]
add r9, 8
imul rax, r11
mov rcx, rax
shr rcx, 0x2f
xor rcx, rax
imul rcx, r11
xor r10, rcx
imul r10, r11
cmp r9, r8
jne 0x14122cbb0
and edx, 7
je 0x14122cc0a
xor eax, eax
add r8, rdx
cmp r9, r8
je 0x14122cc03
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r9]
inc r9
shl rax, 8
or rax, rcx
cmp r9, r8
jne 0x14122cbf0
xor r10, rax
imul r10, r11
mov rcx, r10
shr rcx, 0x2f
xor rcx, r10
imul rcx, r11
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
ret
mov r8, rdx
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
add rdx, rdx
mov r9, rdx
test r8, r8
je 0x14122ccb9
mov r9, qword [0x141372a58]
mov rax, qword [0x141374240]
bt rax, 8
jae 0x14122ccb9
mov rax, qword [0x141374240]
test al, 0x20
jne 0x14122c8f0
cmp rdx, 8
jbe 0x14122cb80
jmp 0x14122cd10
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov rdi, rcx
mov rax, r9
mov rsi, rdx
mov r11, r8
and rsi, 0xfffffffffffffff8
mov r10, r8
add rsi, rcx
mov rbx, rdx
movabs rcx, 0x7465646279746573
shl rbx, 0x38
xor rax, rcx
mov ebp, edx
movabs rcx, 0x6c7967656e657261
and ebp, 7
xor r11, rcx
movabs rcx, 0x646f72616e646f6d
xor r9, rcx
movabs rcx, 0x736f6d6570736575
xor r10, rcx
cmp rdi, rsi
je 0x14122cdcf
nop
xor rax, qword [rdi]
add r10, r9
add r11, rax
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, r11
ror r10, 0x20
add r11, r9
add r10, rax
mov rdx, r11
ror r9, 0x2f
mov rcx, r11
shr rdx, 0x20
xor r9, r11
ror rax, 0x2b
xor rax, r10
shl rcx, 0x20
xor r10, qword [rdi]
mov r11, rdx
or r11, rcx
add rdi, 8
cmp rdi, rsi
jne 0x14122cd80
lea ecx, [rbp - 1]
cmp ecx, 6
ja case.default.0x14122cdec
lea r8, [0x140000000]
movsxd rcx, ecx
mov edx, dword [r8 + rcx*4 + 0x122cee4]
add rdx, r8
jmp rdx
movzx ecx, byte [rdi + 6]
shl rcx, 0x30
or rbx, rcx
movzx ecx, byte [rdi + 5]
shl rcx, 0x28
or rbx, rcx
movzx ecx, byte [rdi + 4]
shl rcx, 0x20
or rbx, rcx
movzx ecx, byte [rdi + 3]
shl rcx, 0x18
or rbx, rcx
movzx ecx, byte [rdi + 2]
shl rcx, 0x10
or rbx, rcx
movzx ecx, byte [rdi + 1]
shl rcx, 8
or rbx, rcx
movzx ecx, byte [rdi]
or rbx, rcx
add r10, r9
xor rax, rbx
add r11, rax
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, r11
ror r10, 0x20
add r10, rax
add r11, r9
ror rax, 0x2b
mov r8d, 2
ror r9, 0x2f
xor rax, r10
xor r9, r11
xor r10, rbx
ror r11, 0x20
xor r11, 0xff
nop dword [rax]
add r11, rax
add r10, r9
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, r11
ror r10, 0x20
add r11, r9
add r10, rax
mov rdx, r11
ror r9, 0x2f
mov rcx, r11
shr rdx, 0x20
xor r9, r11
ror rax, 0x2b
shl rcx, 0x20
mov r11, rdx
or r11, rcx
xor rax, r10
sub r8, 1
jne 0x14122ce80
mov rbx, qword [rsp + 8]
xor rax, r11
mov rbp, qword [rsp + 0x10]
xor rax, r9
mov rsi, qword [rsp + 0x18]
xor rax, r10
mov rdi, qword [rsp + 0x20]
ret