Function at 0x1401212f0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x290
vmovups xmmword [rsp + 0x1f0], xmm6
vmovups xmmword [rsp + 0x200], xmm7
vmovups xmmword [rsp + 0x210], xmm8
vmovups xmmword [rsp + 0x220], xmm9
vmovups xmmword [rsp + 0x230], xmm10
vmovups xmmword [rsp + 0x240], xmm11
vmovups xmmword [rsp + 0x250], xmm12
vmovups xmmword [rsp + 0x260], xmm13
vmovups xmmword [rsp + 0x270], xmm14
vmovups xmmword [rsp + 0x280], xmm15
mov rbx, qword [rcx + 0xe0]
mov esi, r8d
mov rax, rdx
movzx r8d, r8b
xor edx, edx
add r8, 1
shr rax, 5
lea r10, [rsp + 0xbf]
mov r11, rcx
div r8
and r10, 0xffffffffffffffe0
mov qword [rsp + 0x50], r10
lea rdx, [r10 + 0x120]
lea r9, [r10 + 0xe0]
lea r8, [r10 + 0x100]
mov rdi, rax
lea rax, [r10 + 0x20]
mov qword [rsp + 0x48], rax
lea rax, [r10 + 0x40]
mov qword [rsp + 0x40], rax
lea rax, [r10 + 0x60]
mov qword [rsp + 0x38], rax
lea rax, [r10 + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [r10 + 0xa0]
mov qword [rsp + 0x28], rax
lea rax, [r10 + 0xc0]
mov qword [rsp + 0x20], rax
call fcn.140120d30
test sil, sil
je 0x1401213f4
cmp byte [rcx + 0x1b0], 0
je 0x140121698
vmovdqu ymm1, ymmword [r11 + 0x40]
vmovdqu ymm2, ymmword [r11 + 0x60]
vmovdqu ymm14, ymmword [r11 + 0x80]
vmovdqu ymm12, ymmword [r11 + 0xa0]
vmovdqu ymmword [rsp + 0x60], ymm1
vmovdqu ymmword [rsp + 0x80], ymm2
lea rcx, [rdi - 0x40]
vmovdqu ymm10, ymmword [r10]
vmovdqa ymm15, ymm12
vmovdqu ymm9, ymmword [r10 + 0x20]
shl rcx, 5
vmovdqu ymm8, ymmword [r10 + 0x40]
vmovdqu ymm7, ymmword [r10 + 0x60]
lea rdx, [rbx + 0x800]
vmovdqu ymm6, ymmword [r10 + 0x80]
add rcx, rbx
vmovdqu ymm5, ymmword [r10 + 0xa0]
vmovdqu ymm4, ymmword [r10 + 0xc0]
lea r9, [rcx + 0x1000]
vmovdqu ymm3, ymmword [r10 + 0xe0]
vmovdqu ymm2, ymmword [r10 + 0x100]
vmovdqu ymm1, ymmword [r10 + 0x120]
xor r10d, r10d
mov rax, rbx
nop word [rax + rax]
vaesenc ymm12, ymm14, ymm1
vmovdqu ymm0, ymmword [rsp + 0x60]
prefetcht0 byte [rdx]
prefetcht0 byte [rdx + 0x40]
vaesenc ymm13, ymm15, ymm1
sub rax, 0xffffffffffffff80
sub rdx, 0xffffffffffffff80
vmovdqu ymm11, ymmword [rsp + 0x80]
vaesenc ymm0, ymm0, ymm1
vaesenc ymm11, ymm11, ymm1
vaesenc ymm12, ymm12, ymm2
vaesenc ymm13, ymm13, ymm2
vaesenc ymm0, ymm0, ymm2
vaesenc ymm11, ymm11, ymm2
vaesenc ymm12, ymm12, ymm3
vaesenc ymm13, ymm13, ymm3
vaesenc ymm0, ymm0, ymm3
vaesenc ymm11, ymm11, ymm3
vaesenc ymm12, ymm12, ymm4
vaesenc ymm13, ymm13, ymm4
vaesenc ymm0, ymm0, ymm4
vaesenc ymm11, ymm11, ymm4
vaesenc ymm12, ymm12, ymm5
vaesenc ymm13, ymm13, ymm5
vaesenc ymm0, ymm0, ymm5
vaesenc ymm11, ymm11, ymm5
vaesenc ymm12, ymm12, ymm6
vaesenc ymm13, ymm13, ymm6
vaesenc ymm0, ymm0, ymm6
vaesenc ymm11, ymm11, ymm6
vaesenc ymm12, ymm12, ymm7
vaesenc ymm13, ymm13, ymm7
vaesenc ymm0, ymm0, ymm7
vaesenc ymm11, ymm11, ymm7
vaesenc ymm12, ymm12, ymm8
vaesenc ymm13, ymm13, ymm8
vaesenc ymm0, ymm0, ymm8
vaesenc ymm11, ymm11, ymm8
vaesenc ymm12, ymm12, ymm9
vaesenc ymm13, ymm13, ymm9
vaesenc ymm0, ymm0, ymm9
vaesenc ymm11, ymm11, ymm9
vaesenc ymm12, ymm12, ymm10
vaesenc ymm13, ymm13, ymm10
vaesenc ymm0, ymm0, ymm10
vaesenc ymm11, ymm11, ymm10
vmovdqu ymmword [rax - 0x40], ymm12
vmovdqa ymm14, ymm12
vmovdqu ymmword [rax - 0x20], ymm13
vmovdqa ymm15, ymm13
vmovdqu ymmword [rax - 0x80], ymm0
vmovdqu ymmword [rax - 0x60], ymm11
vmovdqu ymmword [rsp + 0x60], ymm0
vmovdqu ymmword [rsp + 0x80], ymm11
cmp rax, rcx
jb 0x140121498
lea r8, [rcx + 0x800]
cmp r8, r9
je 0x1401215f0
mov rax, rcx
lea rdx, [rbx + 1]
sub rax, rbx
sub rax, 1
and rax, 0xffffffffffffff80
cmp rcx, rdx
mov rcx, r8
cmovb rax, r10
lea rdx, [rbx + rax + 0x80]
mov rbx, rdx
jmp 0x14012148f
vmovdqa ymm15, ymm11
vmovdqa ymm11, ymm13
test sil, sil
je 0x14012162d
cmp byte [r11 + 0x1b0], 0
je 0x14012162d
vmovdqu ymmword [r11 + 0x130], ymm0
vmovdqu ymmword [r11 + 0x150], ymm15
vmovdqu ymmword [r11 + 0x170], ymm12
vmovdqu ymmword [r11 + 0x190], ymm11
vzeroupper
vmovups xmm6, xmmword [rsp + 0x1f0]
vmovups xmm7, xmmword [rsp + 0x200]
vmovups xmm8, xmmword [rsp + 0x210]
vmovups xmm9, xmmword [rsp + 0x220]
vmovups xmm10, xmmword [rsp + 0x230]
vmovups xmm11, xmmword [rsp + 0x240]
vmovups xmm12, xmmword [rsp + 0x250]
vmovups xmm13, xmmword [rsp + 0x260]
vmovups xmm14, xmmword [rsp + 0x270]
vmovups xmm15, xmmword [rsp + 0x280]
add rsp, 0x290
pop rbx
pop rsi
pop rdi
ret
vmovdqu ymm3, ymmword [rcx + 0x130]
vmovdqu ymm4, ymmword [rcx + 0x150]
vmovdqu ymm14, ymmword [rcx + 0x170]
vmovdqu ymm12, ymmword [rcx + 0x190]
vmovdqu ymmword [rsp + 0x60], ymm3
vmovdqu ymmword [rsp + 0x80], ymm4
jmp 0x140121421