Function at 0x14009efa0
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.14009e9e0
test sil, sil
je 0x14009f0a4
cmp byte [rcx + 0x1b0], 0
je 0x14009f350
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 ymm4, ymmword [r10 + 0x60]
vmovdqu ymm10, ymmword [r10 + 0x120]
lea rdx, [rbx + 0x800]
shl rcx, 5
vmovdqu ymm3, ymmword [r10 + 0x40]
vmovdqu ymm9, ymmword [r10 + 0x100]
vmovdqa ymm15, ymm12
add rcx, rbx
vmovdqu ymm2, ymmword [r10 + 0x20]
vmovdqu ymm8, ymmword [r10 + 0xe0]
vmovdqu ymm7, ymmword [r10 + 0xc0]
vmovdqu ymm1, ymmword [r10]
lea r9, [rcx + 0x1000]
vmovdqu ymm6, ymmword [r10 + 0xa0]
vmovdqu ymm5, ymmword [r10 + 0x80]
mov r10d, pe_nt_image_headers64
mov rax, rbx
nop dword [rax]
vaesenc ymm12, ymm14, ymm10
vmovdqu ymm0, ymmword [rsp + 0x60]
prefetcht0 byte [rdx]
prefetcht0 byte [rdx + 0x40]
vaesenc ymm13, ymm15, ymm10
sub rax, 0xffffffffffffff80
sub rdx, 0xffffffffffffff80
vmovdqu ymm11, ymmword [rsp + 0x80]
vaesenc ymm0, ymm0, ymm10
vaesenc ymm11, ymm11, ymm10
vaesenc ymm12, ymm12, ymm9
vaesenc ymm13, ymm13, ymm9
vaesenc ymm0, ymm0, ymm9
vaesenc ymm11, ymm11, ymm9
vaesenc ymm12, ymm12, ymm8
vaesenc ymm13, ymm13, ymm8
vaesenc ymm0, ymm0, ymm8
vaesenc ymm11, ymm11, ymm8
vaesenc ymm12, ymm12, ymm7
vaesenc ymm13, ymm13, ymm7
vaesenc ymm0, ymm0, ymm7
vaesenc ymm11, ymm11, ymm7
vaesenc ymm12, ymm12, ymm6
vaesenc ymm13, ymm13, ymm6
vaesenc ymm0, ymm0, ymm6
vaesenc ymm11, ymm11, ymm6
vaesenc ymm12, ymm12, ymm5
vaesenc ymm13, ymm13, ymm5
vaesenc ymm0, ymm0, ymm5
vaesenc ymm11, ymm11, ymm5
vaesenc ymm12, ymm12, ymm4
vaesenc ymm13, ymm13, ymm4
vaesenc ymm0, ymm0, ymm4
vaesenc ymm11, ymm11, ymm4
vaesenc ymm12, ymm12, ymm3
vaesenc ymm13, ymm13, ymm3
vaesenc ymm0, ymm0, ymm3
vaesenc ymm11, ymm11, ymm3
vaesenc ymm12, ymm12, ymm2
vaesenc ymm13, ymm13, ymm2
vaesenc ymm0, ymm0, ymm2
vaesenc ymm11, ymm11, ymm2
vaesenc ymm12, ymm12, ymm1
vaesenc ymm13, ymm13, ymm1
vaesenc ymm0, ymm0, ymm1
vaesenc ymm11, ymm11, ymm1
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 0x14009f148
lea r8, [rcx + 0x800]
cmp r8, r9
je 0x14009f2a0
mov rax, rcx
sub rax, rbx
sub rax, 1
and rax, 0xffffffffffffff80
lea rdx, [rax + 0x80]
lea rax, [rbx + 1]
cmp rcx, rax
mov rcx, r8
cmovb rdx, r10
add rdx, rbx
mov rbx, rdx
jmp 0x14009f142
vmovdqa ymm15, ymm11
vmovdqa ymm11, ymm13
test sil, sil
je 0x14009f2dd
cmp byte [r11 + 0x1b0], 0
je 0x14009f2dd
vmovdqu ymmword [r11 + 0x130], ymm0
vmovdqu ymmword [r11 + 0x150], ymm15
vmovdqu ymmword [r11 + 0x170], ymm12
vmovdqu ymmword [r11 + 0x190], ymm11
vzeroupper
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 0x14009f0d1