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

Disassembly:
sub rsp, 0x158
movups xmmword [rsp + 0xb0], xmm6
movups xmmword [rsp + 0xc0], xmm7
movups xmmword [rsp + 0xd0], xmm8
movups xmmword [rsp + 0xe0], xmm9
movups xmmword [rsp + 0xf0], xmm10
movups xmmword [rsp + 0x100], xmm11
movups xmmword [rsp + 0x110], xmm12
movups xmmword [rsp + 0x120], xmm13
movups xmmword [rsp + 0x130], xmm14
movups xmmword [rsp + 0x140], xmm15
cmp byte [0x1407ce5e0], 0
jne 0x1400fb608
movdqu xmm13, xmmword [rcx + 0x20]
movdqu xmm4, xmmword [rcx + 0x30]
xor edx, edx
mov rax, qword [rcx + 0xe0]
movdqu xmm7, xmmword [rcx + 0x90]
movdqa xmm3, xmm13
aeskeygenassist xmm2, xmm4, 1
movdqu xmm8, xmmword [rcx + 0x80]
movdqu xmm6, xmmword [rcx + 0xa0]
pslldq xmm3, 4
pshufd xmm2, xmm2, 0xff
movdqa xmm1, xmm3
pslldq xmm1, 4
movdqa xmm0, xmm1
pxor xmm1, xmm3
movdqa xmm3, xmm4
pslldq xmm0, 4
pslldq xmm3, 4
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm1, xmm3
pxor xmm0, xmm13
pslldq xmm1, 4
movdqa xmm11, xmm0
aeskeygenassist xmm2, xmm0, 0
movdqa xmm0, xmm1
pshufd xmm2, xmm2, 0xaa
pslldq xmm0, 4
pxor xmm1, xmm3
movups xmmword [rsp + 0xa0], xmm11
pxor xmm0, xmm2
movdqa xmm5, xmm11
pxor xmm0, xmm1
pslldq xmm5, 4
movdqa xmm3, xmm0
movdqa xmm1, xmm5
pxor xmm3, xmm4
pslldq xmm1, 4
movdqa xmm0, xmm1
aeskeygenassist xmm2, xmm3, 2
pxor xmm1, xmm5
pshufd xmm2, xmm2, 0xff
pslldq xmm0, 4
movdqa xmm5, xmm3
pslldq xmm5, 4
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm1, xmm5
pxor xmm0, xmm11
pslldq xmm1, 4
movdqa xmm10, xmm0
aeskeygenassist xmm2, xmm0, 0
movdqa xmm0, xmm1
pshufd xmm2, xmm2, 0xaa
pxor xmm1, xmm5
movdqa xmm5, xmm10
pslldq xmm0, 4
pslldq xmm5, 4
movdqa xmm11, xmm10
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm1, xmm5
pxor xmm0, xmm3
pslldq xmm1, 4
movdqa xmm15, xmm0
aeskeygenassist xmm2, xmm0, 4
movdqa xmm0, xmm1
pshufd xmm2, xmm2, 0xff
pslldq xmm0, 4
pxor xmm1, xmm5
pxor xmm0, xmm2
movdqa xmm5, xmm15
pxor xmm0, xmm1
pslldq xmm5, 4
pxor xmm0, xmm10
movdqa xmm14, xmm0
aeskeygenassist xmm2, xmm0, 0
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xaa
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqa xmm5, xmm14
pslldq xmm1, 4
pslldq xmm5, 4
pxor xmm1, xmm2
pxor xmm0, xmm1
pxor xmm0, xmm15
movdqa xmm12, xmm0
aeskeygenassist xmm2, xmm0, 8
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xff
movdqa xmm10, xmm12
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqa xmm5, xmm12
pslldq xmm1, 4
pslldq xmm5, 4
pxor xmm1, xmm2
pxor xmm0, xmm1
pxor xmm0, xmm14
aeskeygenassist xmm2, xmm0, 0
movups xmmword [rsp + 0x60], xmm0
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xaa
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqu xmm5, xmmword [rcx + 0x40]
pslldq xmm1, 4
pxor xmm1, xmm2
movups xmmword [rsp], xmm5
movdqu xmm5, xmmword [rcx + 0x70]
pxor xmm0, xmm1
movdqu xmm1, xmmword [rcx + 0x50]
pxor xmm0, xmm12
movups xmmword [rsp + 0x10], xmm5
movdqa xmm12, xmm14
movdqu xmm5, xmmword [rcx + 0xb0]
movups xmmword [rsp + 0x70], xmm0
movdqu xmm0, xmmword [rcx + 0x60]
movdqa xmm14, xmm13
movdqa xmm13, xmm15
movups xmmword [rsp + 0x20], xmm5
movdqa xmm15, xmm4
movups xmmword [rsp + 0x30], xmm1
movups xmmword [rsp + 0x40], xmm0
nop word [rax + rax]
add rdx, 8
movdqu xmm1, xmmword [rsp]
movdqu xmm4, xmmword [rsp + 0x30]
sub rax, 0xffffffffffffff80
movdqu xmm0, xmmword [rsp + 0x40]
movdqu xmm9, xmmword [rsp + 0x10]
movdqu xmm2, xmmword [rsp + 0x20]
pxor xmm1, xmmword [rax - 0x80]
pxor xmm4, xmmword [rax - 0x70]
pxor xmm0, xmmword [rax - 0x60]
pxor xmm9, xmmword [rax - 0x50]
pxor xmm8, xmmword [rax - 0x40]
pxor xmm7, xmmword [rax - 0x30]
pxor xmm6, xmmword [rax - 0x20]
pxor xmm2, xmmword [rax - 0x10]
cmp rdx, 0x8000
je 0x1400fb300
prefetcht0 byte [rax]
prefetcht0 byte [rax + 0x40]
aesenc xmm7, xmm14
movdqa xmm5, xmm6
aesenc xmm0, xmm14
movdqa xmm6, xmm7
aesenc xmm8, xmm14
movdqu xmm7, xmmword [rsp + 0xa0]
aesenc xmm0, xmm15
aesenc xmm8, xmm15
aesenc xmm1, xmm14
aesenc xmm4, xmm14
aesenc xmm0, xmm7
aesenc xmm9, xmm14
aesenc xmm5, xmm14
movups xmmword [rsp], xmm0
movdqa xmm0, xmm8
aesenc xmm2, xmm14
aesenc xmm1, xmm15
aesenc xmm0, xmm7
aesenc xmm4, xmm15
aesenc xmm9, xmm15
movdqa xmm8, xmm7
aesenc xmm1, xmm7
aesenc xmm4, xmm7
aesenc xmm9, xmm7
aesenc xmm6, xmm15
movdqa xmm7, xmm0
movdqu xmm0, xmmword [rsp]
aesenc xmm5, xmm15
aesenc xmm2, xmm15
aesenc xmm6, xmm8
aesenc xmm5, xmm8
aesenc xmm2, xmm8
aesenc xmm1, xmm3
movdqu xmm8, xmmword [rsp + 0x60]
aesenc xmm4, xmm3
aesenc xmm0, xmm3
aesenc xmm9, xmm3
aesenc xmm7, xmm3
aesenc xmm6, xmm3
aesenc xmm5, xmm3
aesenc xmm2, xmm3
aesenc xmm1, xmm11
aesenc xmm4, xmm11
aesenc xmm0, xmm11
aesenc xmm9, xmm11
aesenc xmm7, xmm11
aesenc xmm6, xmm11
aesenc xmm5, xmm11
aesenc xmm2, xmm11
aesenc xmm1, xmm13
aesenc xmm4, xmm13
aesenc xmm0, xmm13
aesenc xmm9, xmm13
aesenc xmm7, xmm13
aesenc xmm6, xmm13
aesenc xmm5, xmm13
aesenc xmm2, xmm13
aesenc xmm1, xmm12
aesenc xmm4, xmm12
aesenc xmm0, xmm12
aesenc xmm9, xmm12
aesenc xmm7, xmm12
aesenc xmm6, xmm12
aesenc xmm5, xmm12
aesenc xmm2, xmm12
aesenc xmm1, xmm10
aesenc xmm4, xmm10
aesenc xmm0, xmm10
aesenc xmm9, xmm10
aesenc xmm7, xmm10
aesenc xmm6, xmm10
aesenc xmm5, xmm10
aesenc xmm2, xmm10
aesenc xmm7, xmm8
aesenc xmm6, xmm8
aesenc xmm2, xmm8
aesenc xmm1, xmm8
aesenc xmm4, xmm8
aesenc xmm0, xmm8
movups xmmword [rsp + 0x20], xmm2
aesenc xmm9, xmm8
aesenc xmm5, xmm8
movdqa xmm2, xmm7
movdqu xmm8, xmmword [rsp + 0x70]
aesenc xmm2, xmm8
aesenc xmm0, xmm8
movdqa xmm7, xmm8
aesenc xmm1, xmm8
aesenc xmm4, xmm8
aesenc xmm9, xmm8
movups xmmword [rsp + 0x80], xmm2
movdqa xmm8, xmm2
movdqa xmm2, xmm6
movdqa xmm6, xmm7
movups xmmword [rsp], xmm1
aesenc xmm2, xmm7
movups xmmword [rsp + 0x50], xmm0
aesenc xmm5, xmm6
movups xmmword [rsp + 0x40], xmm0
movdqu xmm0, xmmword [rsp + 0x20]
movdqa xmm7, xmm2
movups xmmword [rsp + 0x90], xmm2
movdqa xmm2, xmm6
movdqa xmm6, xmm5
aesenc xmm0, xmm2
movups xmmword [rsp + 0x30], xmm4
movups xmmword [rsp + 0x10], xmm9
movdqa xmm2, xmm0
movups xmmword [rsp + 0x20], xmm0
cmp rdx, 0x8000
jne 0x1400fb2a0
movdqu xmm0, xmmword [rsp + 0x50]
movups xmmword [rcx + 0x70], xmm9
movups xmm6, xmmword [rsp + 0xb0]
movups xmm9, xmmword [rsp + 0xe0]
movups xmmword [rcx + 0x90], xmm7
movups xmm10, xmmword [rsp + 0xf0]
movups xmmword [rcx + 0x80], xmm8
movups xmm7, xmmword [rsp + 0xc0]
movups xmm8, xmmword [rsp + 0xd0]
movups xmm11, xmmword [rsp + 0x100]
movups xmmword [rcx + 0x40], xmm1
movups xmm12, xmmword [rsp + 0x110]
movups xmm13, xmmword [rsp + 0x120]
movups xmmword [rcx + 0x50], xmm4
movups xmm14, xmmword [rsp + 0x130]
movups xmm15, xmmword [rsp + 0x140]
movups xmmword [rcx + 0x60], xmm0
movups xmmword [rcx + 0xa0], xmm5
movups xmmword [rcx + 0xb0], xmm2
add rsp, 0x158
ret
movups xmm6, xmmword [rsp + 0xb0]
xor r8d, r8d
movups xmm7, xmmword [rsp + 0xc0]
mov edx, 0x80000
movups xmm8, xmmword [rsp + 0xd0]
movups xmm9, xmmword [rsp + 0xe0]
movups xmm10, xmmword [rsp + 0xf0]
movups xmm11, xmmword [rsp + 0x100]
movups xmm12, xmmword [rsp + 0x110]
movups xmm13, xmmword [rsp + 0x120]
movups xmm14, xmmword [rsp + 0x130]
movups xmm15, xmmword [rsp + 0x140]
add rsp, 0x158
jmp 0x140115040
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2b8
vmovups xmmword [rsp + 0x230], xmm6
vmovups xmmword [rsp + 0x240], xmm7
vmovups xmmword [rsp + 0x250], xmm8
vmovups xmmword [rsp + 0x260], xmm9
vmovups xmmword [rsp + 0x270], xmm10
vmovups xmmword [rsp + 0x280], xmm11
vmovups xmmword [rsp + 0x290], xmm12
vmovups xmmword [rsp + 0x2a0], xmm13
mov r12, qword [rcx + 0xe0]
mov rdi, rdx
mov r13d, r8d
movzx r8d, r8b
mov rbp, rdx
shr rdi, 5
lea r15, [r8 + 1]
xor edx, edx
mov r14, rcx
mov rax, rdi
lea rsi, [rsp + 0xff]
lea rcx, [rcx + 0x20]
div r15
and rsi, 0xffffffffffffffe0
mov qword [rsp + 0x50], rsi
lea rdx, [rsi + 0x120]
lea r9, [rsi + 0xe0]
lea r8, [rsi + 0x100]
mov rbx, rax
lea rax, [rsi + 0x20]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x40]
mov qword [rsp + 0x40], rax
lea rax, [rsi + 0x60]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsi + 0xa0]
mov qword [rsp + 0x28], rax
lea rax, [rsi + 0xc0]
mov qword [rsp + 0x20], rax
call fcn.140113e50
vmovdqu ymm12, ymmword [r14 + 0x40]
mov rdx, r12
xor eax, eax
vmovdqu ymm0, ymmword [r14 + 0x80]
vmovdqu ymm11, ymmword [r14 + 0x60]
vmovdqu ymm13, ymmword [r14 + 0xa0]
cmp rdi, r15
jb 0x1401152a0
vmovdqu ymm10, ymmword [rsi + 0x120]
vmovdqu ymm9, ymmword [rsi + 0x100]
xor ecx, ecx
vmovdqu ymm8, ymmword [rsi + 0xe0]
vmovdqu ymm7, ymmword [rsi + 0xc0]
vmovdqu ymm6, ymmword [rsi + 0xa0]
vmovdqu ymm5, ymmword [rsi + 0x80]
vmovdqu ymm4, ymmword [rsi + 0x60]
vmovdqu ymm3, ymmword [rsi + 0x40]
vmovdqu ymm2, ymmword [rsi + 0x20]
vmovdqu ymm1, ymmword [rsi]
nop dword [rax]
add rcx, 4
vpxor ymm12, ymm12, ymmword [rdx]
vpxor ymm11, ymm11, ymmword [rdx + 0x20]
sub rdx, 0xffffffffffffff80
vpxor ymm0, ymm0, ymmword [rdx - 0x40]
vpxor ymm13, ymm13, ymmword [rdx - 0x20]
cmp rbx, rcx
jbe 0x1401151cf
prefetcht0 byte [rdx]
prefetcht0 byte [rdx + 0x40]
vaesenc ymm12, ymm12, ymm10
vaesenc ymm11, ymm11, ymm10
vaesenc ymm0, ymm0, ymm10
vaesenc ymm13, ymm13, ymm10
vaesenc ymm12, ymm12, ymm9
vaesenc ymm11, ymm11, ymm9
vaesenc ymm0, ymm0, ymm9
vaesenc ymm13, ymm13, ymm9
vaesenc ymm12, ymm12, ymm8
vaesenc ymm11, ymm11, ymm8
vaesenc ymm0, ymm0, ymm8
vaesenc ymm13, ymm13, ymm8
vaesenc ymm12, ymm12, ymm7
vaesenc ymm11, ymm11, ymm7
vaesenc ymm0, ymm0, ymm7
vaesenc ymm13, ymm13, ymm7
vaesenc ymm12, ymm12, ymm6
vaesenc ymm11, ymm11, ymm6
vaesenc ymm0, ymm0, ymm6
vaesenc ymm13, ymm13, ymm6
vaesenc ymm12, ymm12, ymm5
vaesenc ymm11, ymm11, ymm5
vaesenc ymm0, ymm0, ymm5
vaesenc ymm13, ymm13, ymm5
vaesenc ymm12, ymm12, ymm4
vaesenc ymm11, ymm11, ymm4
vaesenc ymm0, ymm0, ymm4
vaesenc ymm13, ymm13, ymm4
vaesenc ymm12, ymm12, ymm3
vaesenc ymm11, ymm11, ymm3
vaesenc ymm0, ymm0, ymm3
vaesenc ymm13, ymm13, ymm3
vaesenc ymm12, ymm12, ymm2
vaesenc ymm11, ymm11, ymm2
vaesenc ymm0, ymm0, ymm2
vaesenc ymm13, ymm13, ymm2
vaesenc ymm12, ymm12, ymm1
vaesenc ymm11, ymm11, ymm1
vaesenc ymm0, ymm0, ymm1
vaesenc ymm13, ymm13, ymm1
cmp rbx, rcx
ja 0x1401151a8
add rax, 1
cmp r15, rax
ja 0x140115330
vmovdqu ymmword [r14 + 0x40], ymm12
vmovdqu ymmword [r14 + 0x60], ymm11
vmovdqu ymmword [r14 + 0x80], ymm0
vmovdqu ymmword [r14 + 0xa0], ymm13
vzeroupper
vmovups xmm6, xmmword [rsp + 0x230]
vmovups xmm7, xmmword [rsp + 0x240]
vmovups xmm8, xmmword [rsp + 0x250]
vmovups xmm9, xmmword [rsp + 0x260]
vmovups xmm10, xmmword [rsp + 0x270]
vmovups xmm11, xmmword [rsp + 0x280]
vmovups xmm12, xmmword [rsp + 0x290]
vmovups xmm13, xmmword [rsp + 0x2a0]
add rsp, 0x2b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13b, r13b
je 0x140115396
mov r8d, 1
mov rdx, rbp
mov rcx, r14
mov byte [r14 + 0x1b0], 0
vmovdqu ymmword [rsp + 0xc0], ymm13
vmovdqu ymmword [rsp + 0xa0], ymm0
vmovdqu ymmword [rsp + 0x80], ymm11
vmovdqu ymmword [rsp + 0x60], ymm12
vzeroupper
call fcn.140114410
vmovdqu ymm12, ymmword [rsp + 0x60]
mov rdx, r12
vmovdqu ymm11, ymmword [rsp + 0x80]
vmovdqu ymm0, ymmword [rsp + 0xa0]
vmovdqu ymm13, ymmword [rsp + 0xc0]
mov eax, 1
jmp 0x140115156