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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
vmovups xmmword [rsp + 0x2e0], xmm6
vmovups xmmword [rsp + 0x2f0], xmm7
vmovups xmmword [rsp + 0x300], xmm8
vmovups xmmword [rsp + 0x310], xmm9
vmovups xmmword [rsp + 0x320], xmm10
vmovups xmmword [rsp + 0x330], xmm11
vmovups xmmword [rsp + 0x340], xmm12
vmovups xmmword [rsp + 0x350], xmm13
vmovups xmmword [rsp + 0x360], xmm14
vmovups xmmword [rsp + 0x370], xmm15
mov r13, qword [rcx + 0xe0]
mov rbp, r8
mov rdi, rdx
xor edx, edx
mov r12, rcx
mov byte [rsp + 0x12f], r9b
shr rbp, 4
movzx r9d, r9b
lea rsi, [rsp + 0x1af]
lea r15, [r9 + 1]
mov rax, rbp
lea rcx, [rcx + 0x20]
and rsi, 0xffffffffffffffe0
div r15
mov r14, qword [rdi + 0xe0]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x3e0], r8
lea rdx, [rdi + 0x20]
lea r9, [rsi + 0x100]
lea r8, [rsi + 0x120]
mov rbx, rax
lea rax, [rsi + 0x20]
mov qword [rsp + 0x50], rax
lea rax, [rsi + 0x40]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsi + 0x80]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsi + 0xc0]
mov qword [rsp + 0x28], rax
lea rax, [rsi + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.140084ba0
mov rcx, r14
mov rdx, r13
xor eax, eax
vmovdqu xmm0, xmmword [r12 + 0x40]
vinserti128 ymm14, ymm0, xmmword [rdi + 0x40], 1
vmovdqu xmm0, xmmword [r12 + 0x50]
vinserti128 ymm13, ymm0, xmmword [rdi + 0x50], 1
vmovdqu xmm0, xmmword [r12 + 0x60]
vinserti128 ymm12, ymm0, xmmword [rdi + 0x60], 1
vmovdqu xmm0, xmmword [r12 + 0x70]
vinserti128 ymm11, ymm0, xmmword [rdi + 0x70], 1
vmovdqu xmm0, xmmword [r12 + 0x80]
vinserti128 ymm10, ymm0, xmmword [rdi + 0x80], 1
vmovdqu xmm0, xmmword [r12 + 0x90]
vinserti128 ymm7, ymm0, xmmword [rdi + 0x90], 1
vmovdqu ymmword [rsp + 0xe0], ymm11
vmovdqu xmm0, xmmword [r12 + 0xa0]
vmovdqu ymmword [rsp + 0x100], ymm7
vinserti128 ymm7, ymm0, xmmword [rdi + 0xa0], 1
vmovdqu xmm0, xmmword [r12 + 0xb0]
vinserti128 ymm1, ymm0, xmmword [rdi + 0xb0], 1
vmovdqu ymmword [rsp + 0xa0], ymm7
vmovdqu ymmword [rsp + 0xc0], ymm1
test rax, rax
je 0x1400860c1
cmp byte [rsp + 0x12f], 0
je 0x1400860c1
mov qword [rsp + 0x60], rax
mov rdx, rdi
mov r8, qword [rsp + 0x3e0]
mov rcx, r12
mov byte [r12 + 0x1b0], 0
mov r9d, 1
mov byte [rdi + 0x1b0], 0
vmovdqu ymmword [rsp + 0x170], ymm10
vmovdqu ymmword [rsp + 0x150], ymm12
vmovdqu ymmword [rsp + 0x130], ymm13
vmovdqu ymmword [rsp + 0x80], ymm14
vzeroupper
call fcn.140085360
mov rax, qword [rsp + 0x60]
mov rcx, r14
vmovdqu ymm14, ymmword [rsp + 0x80]
mov rdx, r13
vmovdqu ymm13, ymmword [rsp + 0x130]
vmovdqu ymm12, ymmword [rsp + 0x150]
vmovdqu ymm10, ymmword [rsp + 0x170]
cmp rbp, r15
jb 0x140086432
vmovdqu ymm5, ymmword [rsi + 0x20]
vmovdqu ymm8, ymmword [rsi + 0xa0]
xor r8d, r8d
vmovdqu ymm9, ymmword [rsi + 0x80]
vmovdqu ymm15, ymmword [rsi + 0x60]
vmovdqu ymm4, ymmword [rsi + 0x40]
vmovdqu ymm0, ymmword [rsi]
vmovdqu ymmword [rsp + 0x80], ymm5
vmovdqu ymm2, ymmword [rsi + 0x120]
vmovdqu ymm1, ymmword [rsi + 0x100]
vmovdqu ymm6, ymmword [rsi + 0xe0]
vmovdqu ymm7, ymmword [rsi + 0xc0]
vmovdqu ymmword [rsp + 0x60], ymm4
vmovdqa ymm4, ymm14
vmovdqu ymm5, ymmword [rsp + 0x100]
vmovdqa ymm14, ymm15
vmovdqa ymm15, ymm8
vmovdqa ymm8, ymm13
vmovdqa ymm13, ymm9
vmovdqa ymm9, ymm12
vmovdqa ymm12, ymm0
vmovdqa ymm0, ymm10
nop dword [rax]
vmovdqu xmm3, xmmword [rdx]
add r8, 8
sub rdx, 0xffffffffffffff80
sub rcx, 0xffffffffffffff80
vmovdqu xmm11, xmmword [rdx - 0x70]
vinserti128 ymm11, ymm11, xmmword [rcx - 0x70], 1
vinserti128 ymm3, ymm3, xmmword [rcx - 0x80], 1
vmovdqu xmm10, xmmword [rdx - 0x60]
vpxor ymm11, ymm8, ymm11
vmovdqu xmm8, xmmword [rdx - 0x40]
vinserti128 ymm8, ymm8, xmmword [rcx - 0x40], 1
vinserti128 ymm10, ymm10, xmmword [rcx - 0x60], 1
vpxor ymm4, ymm4, ymm3
vmovdqu xmm3, xmmword [rdx - 0x20]
vpxor ymm8, ymm0, ymm8
vmovdqu xmm0, xmmword [rdx - 0x30]
vinserti128 ymm0, ymm0, xmmword [rcx - 0x30], 1
vinserti128 ymm3, ymm3, xmmword [rcx - 0x20], 1
vpxor ymm10, ymm9, ymm10
vmovdqu xmm9, xmmword [rdx - 0x50]
vpxor ymm5, ymm5, ymm0
vinserti128 ymm9, ymm9, xmmword [rcx - 0x50], 1
vmovdqu xmm0, xmmword [rdx - 0x10]
vpxor ymm9, ymm9, ymmword [rsp + 0xe0]
vinserti128 ymm0, ymm0, xmmword [rcx - 0x10], 1
vpxor ymm3, ymm3, ymmword [rsp + 0xa0]
vpxor ymm0, ymm0, ymmword [rsp + 0xc0]
cmp r8, rbx
jae 0x140086200
prefetcht0 byte [rdx]
prefetcht0 byte [rdx + 0x40]
prefetcht0 byte [rcx]
prefetcht0 byte [rcx + 0x40]
vaesenc ymm9, ymm9, ymm2
vaesenc ymm8, ymm8, ymm2
vaesenc ymm10, ymm10, ymm2
vaesenc ymm3, ymm3, ymm2
vaesenc ymm0, ymm0, ymm2
vaesenc ymm11, ymm11, ymm2
vaesenc ymm9, ymm9, ymm1
vaesenc ymm8, ymm8, ymm1
vaesenc ymm5, ymm5, ymm2
vaesenc ymm10, ymm10, ymm1
vaesenc ymm3, ymm3, ymm1
vaesenc ymm0, ymm0, ymm1
vaesenc ymm9, ymm9, ymm6
vaesenc ymm8, ymm8, ymm6
vaesenc ymm4, ymm4, ymm2
vaesenc ymm11, ymm11, ymm1
vaesenc ymm5, ymm5, ymm1
vaesenc ymm10, ymm10, ymm6
vaesenc ymm9, ymm9, ymm7
vaesenc ymm3, ymm3, ymm6
vaesenc ymm0, ymm0, ymm6
vaesenc ymm8, ymm8, ymm7
vaesenc ymm4, ymm4, ymm1
vaesenc ymm11, ymm11, ymm6
vaesenc ymm9, ymm9, ymm15
vaesenc ymm5, ymm5, ymm6
vaesenc ymm10, ymm10, ymm7
vaesenc ymm3, ymm3, ymm7
vaesenc ymm0, ymm0, ymm7
vaesenc ymm8, ymm8, ymm15
vaesenc ymm9, ymm9, ymm13
vaesenc ymm4, ymm4, ymm6
vaesenc ymm11, ymm11, ymm7
vaesenc ymm5, ymm5, ymm7
vaesenc ymm10, ymm10, ymm15
vaesenc ymm3, ymm3, ymm15
vaesenc ymm9, ymm9, ymm14
vaesenc ymm0, ymm0, ymm15
vaesenc ymm8, ymm8, ymm13
vaesenc ymm4, ymm4, ymm7
vaesenc ymm11, ymm11, ymm15
vaesenc ymm5, ymm5, ymm15
vaesenc ymm9, ymm9, ymmword [rsp + 0x60]
vaesenc ymm10, ymm10, ymm13
vaesenc ymm3, ymm3, ymm13
vaesenc ymm0, ymm0, ymm13
vaesenc ymm8, ymm8, ymm14
vaesenc ymm4, ymm4, ymm15
vaesenc ymm11, ymm11, ymm13
vaesenc ymm9, ymm9, ymmword [rsp + 0x80]
vaesenc ymm5, ymm5, ymm13
vaesenc ymm10, ymm10, ymm14
vaesenc ymm3, ymm3, ymm14
vaesenc ymm0, ymm0, ymm14
vaesenc ymm8, ymm8, ymmword [rsp + 0x60]
vaesenc ymm4, ymm4, ymm13
vmovdqu ymmword [rsp + 0xa0], ymm9
vmovdqu ymm9, ymmword [rsp + 0x80]
vaesenc ymm11, ymm11, ymm14
vaesenc ymm5, ymm5, ymm14
vaesenc ymm10, ymm10, ymmword [rsp + 0x60]
vaesenc ymm0, ymm0, ymmword [rsp + 0x60]
vaesenc ymm8, ymm8, ymm9
vaesenc ymm3, ymm3, ymmword [rsp + 0x60]
vaesenc ymm4, ymm4, ymm14
vaesenc ymm11, ymm11, ymmword [rsp + 0x60]
vaesenc ymm10, ymm10, ymmword [rsp + 0x80]
vaesenc ymm5, ymm5, ymmword [rsp + 0x60]
vmovdqu ymmword [rsp + 0xc0], ymm8
vaesenc ymm3, ymm3, ymm9
vaesenc ymm8, ymm0, ymm9
vmovdqu ymm0, ymmword [rsp + 0xa0]
vaesenc ymm11, ymm11, ymmword [rsp + 0x80]
vaesenc ymm4, ymm4, ymmword [rsp + 0x60]
vaesenc ymm5, ymm5, ymm9
vaesenc ymm9, ymm10, ymm12
vaesenc ymm10, ymm3, ymm12
vmovdqu ymmword [rsp + 0x100], ymm8
vmovdqu ymm3, ymmword [rsp + 0x100]
vaesenc ymm8, ymm11, ymm12
vaesenc ymm4, ymm4, ymmword [rsp + 0x80]
vaesenc ymm11, ymm0, ymm12
vmovdqu ymm0, ymmword [rsp + 0xc0]
vaesenc ymm3, ymm3, ymm12
vaesenc ymm0, ymm0, ymm12
vmovdqu ymmword [rsp + 0xa0], ymm10
vaesenc ymm5, ymm5, ymm12
vaesenc ymm4, ymm4, ymm12
vmovdqu ymmword [rsp + 0xe0], ymm11
vmovdqu ymmword [rsp + 0xc0], ymm3
cmp r8, rbx
jb 0x140086150
vmovdqa ymm14, ymm4
vmovdqa ymm13, ymm8
vmovdqa ymm12, ymm9
vmovdqu ymmword [rsp + 0x100], ymm5
vmovdqa ymm10, ymm0
test rax, rax
mov eax, 1
sete r8b
shl r8, 0x3f
sar r8, 0x3f
add r8, 2
cmp r8, r15
jb 0x140086026
vmovdqu ymm11, ymmword [rsp + 0xe0]
vmovdqu xmmword [r12 + 0x40], xmm14
vextracti128 xmm14, ymm14, 1
vmovdqu ymm6, ymmword [rsp + 0x100]
vmovdqu ymm2, ymmword [rsp + 0xa0]
vmovdqu xmmword [rdi + 0x40], xmm14
vmovdqu ymm1, ymmword [rsp + 0xc0]
vmovdqu xmmword [r12 + 0x50], xmm13
vextracti128 xmm13, ymm13, 1
vextracti128 xmm0, ymm6, 1
vmovdqu xmmword [rdi + 0x50], xmm13
vmovdqu xmmword [r12 + 0x60], xmm12
vextracti128 xmm12, ymm12, 1
vmovdqu xmmword [rdi + 0x60], xmm12
vmovdqu xmmword [r12 + 0x70], xmm11
vextracti128 xmm11, ymm11, 1
vmovdqu xmmword [rdi + 0x70], xmm11
vmovdqu xmmword [r12 + 0x80], xmm10
vextracti128 xmm10, ymm10, 1
vmovdqu xmmword [rdi + 0x80], xmm10
vmovdqu xmmword [r12 + 0x90], xmm6
vmovdqu xmmword [rdi + 0x90], xmm0
vextracti128 xmm0, ymm2, 1
vmovdqu xmmword [r12 + 0xa0], xmm2
vmovdqu xmmword [rdi + 0xa0], xmm0
vextracti128 xmm0, ymm1, 1
vmovdqu xmmword [r12 + 0xb0], xmm1
vmovdqu xmmword [rdi + 0xb0], xmm0
vzeroupper
vzeroupper
vmovups xmm6, xmmword [rsp + 0x2e0]
vmovups xmm7, xmmword [rsp + 0x2f0]
vmovups xmm8, xmmword [rsp + 0x300]
vmovups xmm9, xmmword [rsp + 0x310]
vmovups xmm10, xmmword [rsp + 0x320]
vmovups xmm11, xmmword [rsp + 0x330]
vmovups xmm12, xmmword [rsp + 0x340]
vmovups xmm13, xmmword [rsp + 0x350]
vmovups xmm14, xmmword [rsp + 0x360]
vmovups xmm15, xmmword [rsp + 0x370]
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret