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

Disassembly:
sub rsp, 0x148
movups xmmword [rsp + 0xa0], xmm6
movups xmmword [rsp + 0xb0], xmm7
movups xmmword [rsp + 0xc0], xmm8
movups xmmword [rsp + 0xd0], xmm9
movups xmmword [rsp + 0xe0], xmm10
movups xmmword [rsp + 0xf0], xmm11
movups xmmword [rsp + 0x100], xmm12
movups xmmword [rsp + 0x110], xmm13
movups xmmword [rsp + 0x120], xmm14
movups xmmword [rsp + 0x130], xmm15
cmp byte [0x1405255e0], 0
jne 0x1401090e5
movdqu xmm13, xmmword [rcx + 0x20]
movdqu xmm4, xmmword [rcx + 0x30]
xor edx, edx
movdqu xmm7, xmmword [rcx + 0x40]
movdqu xmm6, xmmword [rcx + 0xa0]
movdqa xmm3, xmm13
aeskeygenassist xmm2, xmm4, 1
movdqu xmm8, xmmword [rcx + 0x80]
mov rax, qword [rcx + 0xe0]
pslldq xmm3, 4
pshufd xmm2, xmm2, 0xff
movups xmmword [rsp + 0x20], xmm7
movdqu xmm7, xmmword [rcx + 0x70]
movdqa xmm0, xmm3
movups xmmword [rsp + 0x80], xmm6
pslldq xmm0, 4
movups xmmword [rsp + 0x30], xmm7
movdqu xmm7, xmmword [rcx + 0x90]
movdqa xmm1, xmm0
pxor xmm0, xmm3
movdqa xmm3, xmm4
movups xmmword [rsp + 0x60], xmm8
pslldq xmm1, 4
pxor xmm0, xmm13
movups xmmword [rsp + 0x70], xmm7
pxor xmm1, xmm2
pslldq xmm3, 4
pxor xmm0, xmm1
movdqa xmm11, xmm0
aeskeygenassist xmm2, xmm0, 0
movdqa xmm0, xmm3
pslldq xmm0, 4
movdqa xmm5, xmm11
pshufd xmm2, xmm2, 0xaa
movdqa xmm1, xmm0
pslldq xmm5, 4
pxor xmm0, xmm3
pxor xmm0, xmm4
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm3, xmm0
movdqa xmm0, xmm5
pxor xmm3, xmm1
pslldq xmm0, 4
movdqa xmm1, xmm0
aeskeygenassist xmm2, xmm3, 2
pxor xmm0, xmm5
pshufd xmm2, xmm2, 0xff
pslldq xmm1, 4
pxor xmm0, xmm11
pxor xmm1, xmm2
movdqa xmm5, xmm3
pxor xmm0, xmm1
pslldq xmm5, 4
movdqa xmm10, xmm0
aeskeygenassist xmm2, xmm0, 0
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xaa
movdqa xmm8, xmm10
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqa xmm5, xmm10
pslldq xmm1, 4
pslldq xmm5, 4
pxor xmm0, xmm3
pxor xmm1, xmm2
pxor xmm0, xmm1
movdqa xmm15, xmm0
aeskeygenassist xmm2, xmm0, 4
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xff
movdqa xmm6, xmm15
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqa xmm5, xmm15
pslldq xmm1, 4
pslldq xmm5, 4
pxor xmm0, xmm10
pxor xmm1, xmm2
movdqa xmm10, xmm4
pxor xmm0, xmm1
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 xmm0, xmm15
pxor xmm1, xmm2
movdqa xmm15, xmm13
movdqa xmm13, xmm6
pxor xmm0, xmm1
movdqa xmm12, xmm0
aeskeygenassist xmm2, xmm0, 8
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xff
movdqa xmm7, xmm12
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqa xmm5, xmm12
pslldq xmm1, 4
pslldq xmm5, 4
pxor xmm0, xmm14
pxor xmm1, xmm2
pxor xmm0, xmm1
aeskeygenassist xmm2, xmm0, 0
movups xmmword [rsp], xmm0
movdqa xmm0, xmm5
pslldq xmm0, 4
pshufd xmm2, xmm2, 0xaa
movdqa xmm1, xmm0
pxor xmm0, xmm5
movdqu xmm5, xmmword [rcx + 0xb0]
pslldq xmm1, 4
pxor xmm0, xmm12
movdqa xmm12, xmm14
pxor xmm1, xmm2
movups xmmword [rsp + 0x90], xmm5
movdqa xmm14, xmm11
pxor xmm0, xmm1
movdqu xmm1, xmmword [rcx + 0x50]
movups xmmword [rsp + 0x10], xmm0
movdqu xmm0, xmmword [rcx + 0x60]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm0
nop
add rdx, 8
movdqu xmm1, xmmword [rsp + 0x20]
movdqu xmm4, xmmword [rsp + 0x40]
sub rax, 0xffffffffffffff80
movdqu xmm0, xmmword [rsp + 0x50]
movdqu xmm9, xmmword [rsp + 0x30]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm6, xmmword [rsp + 0x70]
movdqu xmm11, xmmword [rsp + 0x80]
pxor xmm1, xmmword [rax - 0x80]
movdqu xmm2, xmmword [rsp + 0x90]
pxor xmm4, xmmword [rax - 0x70]
pxor xmm0, xmmword [rax - 0x60]
pxor xmm9, xmmword [rax - 0x50]
pxor xmm5, xmmword [rax - 0x40]
pxor xmm6, xmmword [rax - 0x30]
pxor xmm11, xmmword [rax - 0x20]
pxor xmm2, xmmword [rax - 0x10]
cmp rdx, 0x8000
je 0x140108e3a
prefetcht0 byte [rax]
prefetcht0 byte [rax + 0x40]
aesenc xmm1, xmm15
aesenc xmm4, xmm15
aesenc xmm0, xmm15
aesenc xmm9, xmm15
aesenc xmm5, xmm15
aesenc xmm6, xmm15
aesenc xmm11, xmm15
aesenc xmm2, xmm15
aesenc xmm1, xmm10
aesenc xmm4, xmm10
aesenc xmm0, xmm10
aesenc xmm9, xmm10
aesenc xmm5, xmm10
aesenc xmm6, xmm10
aesenc xmm11, xmm10
aesenc xmm2, xmm10
aesenc xmm1, xmm14
aesenc xmm4, xmm14
aesenc xmm0, xmm14
aesenc xmm9, xmm14
aesenc xmm5, xmm14
aesenc xmm6, xmm14
aesenc xmm11, xmm14
aesenc xmm2, xmm14
aesenc xmm1, xmm3
aesenc xmm4, xmm3
aesenc xmm0, xmm3
aesenc xmm9, xmm3
aesenc xmm5, xmm3
aesenc xmm6, xmm3
aesenc xmm11, xmm3
aesenc xmm2, xmm3
aesenc xmm1, xmm8
aesenc xmm4, xmm8
aesenc xmm0, xmm8
aesenc xmm9, xmm8
aesenc xmm5, xmm8
aesenc xmm6, xmm8
aesenc xmm11, xmm8
aesenc xmm2, xmm8
aesenc xmm1, xmm13
aesenc xmm4, xmm13
aesenc xmm0, xmm13
aesenc xmm9, xmm13
aesenc xmm5, xmm13
aesenc xmm6, xmm13
aesenc xmm11, xmm13
aesenc xmm2, xmm13
aesenc xmm1, xmm12
aesenc xmm4, xmm12
aesenc xmm0, xmm12
aesenc xmm9, xmm12
aesenc xmm5, xmm12
aesenc xmm6, xmm12
aesenc xmm11, xmm12
aesenc xmm2, xmm12
aesenc xmm1, xmm7
aesenc xmm4, xmm7
aesenc xmm0, xmm7
aesenc xmm9, xmm7
aesenc xmm5, xmm7
aesenc xmm6, xmm7
aesenc xmm2, xmm7
aesenc xmm11, xmm7
aesenc xmm1, xmmword [rsp]
aesenc xmm4, xmmword [rsp]
aesenc xmm0, xmmword [rsp]
aesenc xmm9, xmmword [rsp]
aesenc xmm5, xmmword [rsp]
aesenc xmm6, xmmword [rsp]
aesenc xmm11, xmmword [rsp]
aesenc xmm2, xmmword [rsp]
aesenc xmm1, xmmword [rsp + 0x10]
aesenc xmm4, xmmword [rsp + 0x10]
aesenc xmm0, xmmword [rsp + 0x10]
aesenc xmm9, xmmword [rsp + 0x10]
aesenc xmm5, xmmword [rsp + 0x10]
aesenc xmm6, xmmword [rsp + 0x10]
movups xmmword [rsp + 0x20], xmm1
aesenc xmm11, xmmword [rsp + 0x10]
aesenc xmm2, xmmword [rsp + 0x10]
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x30], xmm9
movups xmmword [rsp + 0x60], xmm5
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rsp + 0x80], xmm11
movups xmmword [rsp + 0x90], xmm2
cmp rdx, 0x8000
jne 0x140108dc0
movups xmmword [rcx + 0x70], xmm9
movups xmm7, xmmword [rsp + 0xb0]
movups xmm8, xmmword [rsp + 0xc0]
movups xmm9, xmmword [rsp + 0xd0]
movups xmmword [rcx + 0x90], xmm6
movups xmm10, xmmword [rsp + 0xe0]
movups xmmword [rcx + 0xa0], xmm11
movups xmm6, xmmword [rsp + 0xa0]
movups xmm11, xmmword [rsp + 0xf0]
movups xmm12, xmmword [rsp + 0x100]
movups xmmword [rcx + 0x40], xmm1
movups xmm13, xmmword [rsp + 0x110]
movups xmm14, xmmword [rsp + 0x120]
movups xmmword [rcx + 0x50], xmm4
movups xmm15, xmmword [rsp + 0x130]
movups xmmword [rcx + 0x60], xmm0
movups xmmword [rcx + 0x80], xmm5
movups xmmword [rcx + 0xb0], xmm2
add rsp, 0x148
ret
movups xmm6, xmmword [rsp + 0xa0]
xor r8d, r8d
movups xmm7, xmmword [rsp + 0xb0]
mov edx, 0x80000
movups xmm8, xmmword [rsp + 0xc0]
movups xmm9, xmmword [rsp + 0xd0]
movups xmm10, xmmword [rsp + 0xe0]
movups xmm11, xmmword [rsp + 0xf0]
movups xmm12, xmmword [rsp + 0x100]
movups xmm13, xmmword [rsp + 0x110]
movups xmm14, xmmword [rsp + 0x120]
movups xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
jmp 0x140121e30
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2b0
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 r13, qword [rcx + 0xe0]
mov rbp, rdx
movzx r14d, r8b
mov r12, rdx
xor edx, edx
shr rbp, 5
add r14, 1
lea rsi, [rsp + 0xff]
mov rdi, rcx
mov rax, rbp
and rsi, 0xffffffffffffffe0
lea rcx, [rcx + 0x20]
div r14
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.140120d30
vmovdqu ymm12, ymmword [rdi + 0x40]
xor eax, eax
vmovdqu ymm11, ymmword [rdi + 0x60]
vmovdqu ymm0, ymmword [rdi + 0x80]
vmovdqu ymm13, ymmword [rdi + 0xa0]
cmp rbp, r14
jb 0x140122088
vmovdqu ymm10, ymmword [rsi]
vmovdqu ymm9, ymmword [rsi + 0x20]
mov rdx, r13
xor ecx, ecx
vmovdqu ymm8, ymmword [rsi + 0x40]
vmovdqu ymm7, ymmword [rsi + 0x60]
vmovdqu ymm6, ymmword [rsi + 0x80]
vmovdqu ymm5, ymmword [rsi + 0xa0]
vmovdqu ymm4, ymmword [rsi + 0xc0]
vmovdqu ymm3, ymmword [rsi + 0xe0]
vmovdqu ymm2, ymmword [rsi + 0x100]
vmovdqu ymm1, ymmword [rsi + 0x120]
nop dword [rax + 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 rcx, rbx
jae 0x140121fb7
prefetcht0 byte [rdx]
prefetcht0 byte [rdx + 0x40]
vaesenc ymm12, ymm12, ymm1
vaesenc ymm11, ymm11, ymm1
vaesenc ymm0, ymm0, ymm1
vaesenc ymm13, ymm13, ymm1
vaesenc ymm12, ymm12, ymm2
vaesenc ymm11, ymm11, ymm2
vaesenc ymm0, ymm0, ymm2
vaesenc ymm13, ymm13, ymm2
vaesenc ymm12, ymm12, ymm3
vaesenc ymm11, ymm11, ymm3
vaesenc ymm0, ymm0, ymm3
vaesenc ymm13, ymm13, ymm3
vaesenc ymm12, ymm12, ymm4
vaesenc ymm11, ymm11, ymm4
vaesenc ymm0, ymm0, ymm4
vaesenc ymm13, ymm13, ymm4
vaesenc ymm12, ymm12, ymm5
vaesenc ymm11, ymm11, ymm5
vaesenc ymm0, ymm0, ymm5
vaesenc ymm13, ymm13, ymm5
vaesenc ymm12, ymm12, ymm6
vaesenc ymm11, ymm11, ymm6
vaesenc ymm0, ymm0, ymm6
vaesenc ymm13, ymm13, ymm6
vaesenc ymm12, ymm12, ymm7
vaesenc ymm11, ymm11, ymm7
vaesenc ymm0, ymm0, ymm7
vaesenc ymm13, ymm13, ymm7
vaesenc ymm12, ymm12, ymm8
vaesenc ymm11, ymm11, ymm8
vaesenc ymm0, ymm0, ymm8
vaesenc ymm13, ymm13, ymm8
vaesenc ymm12, ymm12, ymm9
vaesenc ymm11, ymm11, ymm9
vaesenc ymm0, ymm0, ymm9
vaesenc ymm13, ymm13, ymm9
vaesenc ymm12, ymm12, ymm10
vaesenc ymm11, ymm11, ymm10
vaesenc ymm0, ymm0, ymm10
vaesenc ymm13, ymm13, ymm10
cmp rcx, rbx
jb 0x140121f90
add rax, 1
cmp rax, r14
jae 0x1401220fd
mov byte [rdi + 0x1b0], 0
mov rdx, r12
mov rcx, rdi
mov r8d, 1
vmovdqu ymmword [rsp + 0xc0], ymm13
vmovdqu ymmword [rsp + 0xa0], ymm0
vmovdqu ymmword [rsp + 0x80], ymm11
vmovdqu ymmword [rsp + 0x60], ymm12
vzeroupper
call fcn.1401212f0
cmp rbp, 1
vmovdqu ymm12, ymmword [rsp + 0x60]
vmovdqu ymm11, ymmword [rsp + 0x80]
mov eax, 1
vmovdqu ymm0, ymmword [rsp + 0xa0]
vmovdqu ymm13, ymmword [rsp + 0xc0]
ja 0x140121f43
vmovdqu ymmword [rdi + 0x40], ymm12
vmovdqu ymmword [rdi + 0x60], ymm11
vmovdqu ymmword [rdi + 0xa0], ymm13
vmovdqu ymmword [rdi + 0x80], ymm0
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, 0x2b0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret