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

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x60
vmovups xmmword [rsp], xmm6
vmovups xmmword [rsp + 0x10], xmm7
vmovups xmmword [rsp + 0x20], xmm8
vmovups xmmword [rsp + 0x30], xmm9
vmovups xmmword [rsp + 0x40], xmm10
vmovups xmmword [rsp + 0x50], xmm11
vmovdqu xmm9, xmmword [str._f__nc]
vmovdqu xmm10, xmmword [0x14016f960]
vmovdqu xmm11, xmmword [0x14016f970]
vmovdqu xmm1, xmmword [0x14016f980]
vmovdqu xmm8, xmmword [r9]
vmovdqu xmm3, xmmword [r9 + 0x10]
vmovdqu xmm2, xmmword [r9 + 0x20]
vmovdqu xmm0, xmmword [r9 + 0x30]
vmovdqu xmm7, xmmword [0x14016f9b0]
vmovdqu xmm6, xmmword [0x14016f9c0]
vmovdqu xmm5, xmmword [0x14016f9d0]
vmovdqu xmm4, xmmword [0x14016f9e0]
lea r10, [rcx + rdx - 0x1000]
mov rbx, rcx
lea rdi, [rcx + 0x1000]
lea rsi, [r10 + 0x2000]
cmp rcx, r10
jae 0x1400b72d6
mov r11, rcx
vaesdec xmm8, xmm8, xmm7
vaesenc xmm3, xmm3, xmm6
prefetcht0 byte [rdi]
not r11
vaesdec xmm2, xmm2, xmm5
vaesenc xmm0, xmm0, xmm4
add r11, r10
lea rax, [rcx + 0x40]
lea rdx, [rdi + 0x40]
shr r11, 6
vaesenc xmm1, xmm1, xmmword [rcx]
vmovdqu xmmword [rcx], xmm8
vaesdec xmm11, xmm11, xmmword [rcx + 0x10]
vaesenc xmm10, xmm10, xmmword [rcx + 0x20]
vaesdec xmm9, xmm9, xmmword [rcx + 0x30]
and r11d, 3
vmovdqu xmmword [rcx + 0x10], xmm3
vmovdqu xmmword [rcx + 0x20], xmm2
vmovdqu xmmword [rcx + 0x30], xmm0
cmp rax, r10
jae 0x1400b72c3
test r11, r11
je 0x1400b717c
cmp r11, 1
je 0x1400b7128
cmp r11, 2
jne 0x1400b7388
vaesdec xmm8, xmm8, xmm7
vaesenc xmm3, xmm3, xmm6
vaesdec xmm2, xmm2, xmm5
prefetcht0 byte [rdx]
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax]
add rdx, 0x40
vmovdqu xmmword [rax], xmm8
vaesdec xmm11, xmm11, xmmword [rax + 0x10]
vaesenc xmm10, xmm10, xmmword [rax + 0x20]
vaesdec xmm9, xmm9, xmmword [rax + 0x30]
add rax, 0x40
vmovdqu xmmword [rax - 0x30], xmm3
vmovdqu xmmword [rax - 0x20], xmm2
vmovdqu xmmword [rax - 0x10], xmm0
vaesdec xmm8, xmm8, xmm7
vaesenc xmm3, xmm3, xmm6
vaesdec xmm2, xmm2, xmm5
add rax, 0x40
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax - 0x40]
prefetcht0 byte [rdx]
vaesdec xmm11, xmm11, xmmword [rax - 0x30]
vaesenc xmm10, xmm10, xmmword [rax - 0x20]
vaesdec xmm9, xmm9, xmmword [rax - 0x10]
vmovdqu xmmword [rax - 0x40], xmm8
add rdx, 0x40
vmovdqu xmmword [rax - 0x30], xmm3
vmovdqu xmmword [rax - 0x20], xmm2
vmovdqu xmmword [rax - 0x10], xmm0
cmp rax, r10
jae 0x1400b72c3
vaesdec xmm8, xmm8, xmm7
vaesenc xmm3, xmm3, xmm6
vaesdec xmm2, xmm2, xmm5
prefetcht0 byte [rdx]
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax]
vmovdqu xmmword [rax], xmm8
vaesdec xmm11, xmm11, xmmword [rax + 0x10]
vaesenc xmm10, xmm10, xmmword [rax + 0x20]
vaesdec xmm9, xmm9, xmmword [rax + 0x30]
vmovdqu xmmword [rax + 0x10], xmm3
vaesdec xmm8, xmm8, xmm7
vmovdqu xmmword [rax + 0x20], xmm2
vaesenc xmm3, xmm3, xmm6
prefetcht0 byte [rdx + 0x40]
vaesdec xmm2, xmm2, xmm5
vmovdqu xmmword [rax + 0x30], xmm0
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax + 0x40]
vaesdec xmm11, xmm11, xmmword [rax + 0x50]
vaesenc xmm10, xmm10, xmmword [rax + 0x60]
vaesdec xmm9, xmm9, xmmword [rax + 0x70]
vmovdqu xmmword [rax + 0x40], xmm8
vaesdec xmm8, xmm8, xmm7
vmovdqu xmmword [rax + 0x50], xmm3
vaesenc xmm3, xmm3, xmm6
vaesenc xmm1, xmm1, xmmword [rax + 0x80]
vaesdec xmm11, xmm11, xmmword [rax + 0x90]
vmovdqu xmmword [rax + 0x60], xmm2
vaesdec xmm2, xmm2, xmm5
vaesenc xmm10, xmm10, xmmword [rax + 0xa0]
vaesdec xmm9, xmm9, xmmword [rax + 0xb0]
vmovdqu xmmword [rax + 0x70], xmm0
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax + 0xc0]
prefetcht0 byte [rdx + 0x80]
vmovdqu xmmword [rax + 0x80], xmm8
vaesdec xmm8, xmm8, xmm7
vaesdec xmm11, xmm11, xmmword [rax + 0xd0]
vaesenc xmm10, xmm10, xmmword [rax + 0xe0]
vmovdqu xmmword [rax + 0x90], xmm3
vaesenc xmm3, xmm3, xmm6
vaesdec xmm9, xmm9, xmmword [rax + 0xf0]
add rax, 0x100
vmovdqu xmmword [rax - 0x60], xmm2
vaesdec xmm2, xmm2, xmm5
prefetcht0 byte [rdx + 0xc0]
add rdx, 0x100
vmovdqu xmmword [rax - 0x50], xmm0
vaesenc xmm0, xmm0, xmm4
vmovdqu xmmword [rax - 0x40], xmm8
vmovdqu xmmword [rax - 0x30], xmm3
vmovdqu xmmword [rax - 0x20], xmm2
vmovdqu xmmword [rax - 0x10], xmm0
cmp rax, r10
jb 0x1400b717c
mov rdi, r10
sub rdi, rcx
sub rdi, 1
and rdi, 0xffffffffffffffc0
lea rcx, [rcx + rdi + 0x40]
add r10, 0x1000
cmp r10, rsi
je 0x1400b72f0
mov rdi, rbx
jmp 0x1400b705a
vmovdqu xmm4, xmmword [0x14016f990]
vmovdqu xmmword [r9], xmm8
vmovdqu xmm8, xmmword [0x14016f9a0]
vmovdqu xmmword [r9 + 0x10], xmm3
vaesdec xmm6, xmm11, xmm4
vaesenc xmm7, xmm10, xmm4
vaesdec xmm9, xmm9, xmm4
vmovdqu xmmword [r9 + 0x20], xmm2
vaesdec xmm11, xmm6, xmm8
vaesenc xmm10, xmm7, xmm8
vaesenc xmm5, xmm1, xmm4
vmovdqu xmmword [r9 + 0x30], xmm0
vaesdec xmm3, xmm9, xmm8
vaesenc xmm1, xmm5, xmm8
vmovups xmm6, xmmword [rsp]
vmovdqu xmmword [r8 + 0x10], xmm11
vmovdqu xmmword [r8 + 0x20], xmm10
vmovups xmm7, xmmword [rsp + 0x10]
vmovups xmm8, xmmword [rsp + 0x20]
vmovups xmm9, xmmword [rsp + 0x30]
vmovups xmm10, xmmword [rsp + 0x40]
vmovdqu xmmword [r8], xmm1
vmovups xmm11, xmmword [rsp + 0x50]
vmovdqu xmmword [r8 + 0x30], xmm3
add rsp, 0x60
pop rbx
pop rsi
pop rdi
ret
vaesdec xmm8, xmm8, xmm7
vaesenc xmm3, xmm3, xmm6
vaesdec xmm2, xmm2, xmm5
prefetcht0 byte [rdx]
vaesenc xmm0, xmm0, xmm4
vaesenc xmm1, xmm1, xmmword [rax]
vmovdqu xmmword [rax], xmm8
vaesdec xmm11, xmm11, xmmword [rax + 0x10]
vaesenc xmm10, xmm10, xmmword [rax + 0x20]
vaesdec xmm9, xmm9, xmmword [rax + 0x30]
vmovdqu xmmword [rax + 0x10], xmm3
lea rdx, [rdi + 0x80]
vmovdqu xmmword [rax + 0x20], xmm2
vmovdqu xmmword [rax + 0x30], xmm0
lea rax, [rcx + 0x80]
jmp 0x1400b70df