Function at 0x180021fcd
Capabilities:
Encrypt data using aes via x86 extensions
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
cmp edx, 2
jb 0x180021ff0
mov ecx, dword [0x18059f5a4]
test ecx, 0x10000000
jne 0x180022876
jmp 0x180021ff0
mov rax, rsp
push rbx
push rbp
push r12
push r13
push r14
push r15
lea rsp, [rsp - 0xa8]
movaps xmmword [rsp], xmm6
movaps xmmword [rsp + 0x10], xmm7
movaps xmmword [rsp + 0x20], xmm8
movaps xmmword [rsp + 0x30], xmm9
movaps xmmword [rsp + 0x40], xmm10
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rax - 0x68], xmm13
movaps xmmword [rax - 0x58], xmm14
movaps xmmword [rax - 0x48], xmm15
sub rsp, 0x30
and rsp, 0xffffffffffffffc0
mov qword [rsp + 0x10], rax
movdqu xmm12, xmmword [rsi]
lea rsi, [rsi + 0x78]
lea rdi, [rdi + 0x50]
mov dword [rsp + 0x18], edx
xor edx, edx
mov ecx, dword [rdi - 0x40]
mov r8, qword [rdi - 0x50]
cmp ecx, edx
mov r12, qword [rdi - 0x48]
cmovg edx, ecx
test ecx, ecx
movdqu xmm2, xmmword [rdi - 0x38]
mov dword [rsp + 0x20], ecx
cmovle r8, rsp
mov ecx, dword [rdi - 0x18]
mov r9, qword [rdi - 0x28]
cmp ecx, edx
mov r13, qword [rdi - 0x20]
cmovg edx, ecx
test ecx, ecx
movdqu xmm3, xmmword [rdi - 0x10]
mov dword [rsp + 0x24], ecx
cmovle r9, rsp
mov ecx, dword [rdi + 0x10]
mov r10, qword [rdi]
cmp ecx, edx
mov r14, qword [rdi + 8]
cmovg edx, ecx
test ecx, ecx
movdqu xmm4, xmmword [rdi + 0x18]
mov dword [rsp + 0x28], ecx
cmovle r10, rsp
mov ecx, dword [rdi + 0x38]
mov r11, qword [rdi + 0x28]
cmp ecx, edx
mov r15, qword [rdi + 0x30]
cmovg edx, ecx
test ecx, ecx
movdqu xmm5, xmmword [rdi + 0x40]
mov dword [rsp + 0x2c], ecx
cmovle r11, rsp
test edx, edx
je 0x1800223a8
movups xmm1, xmmword [rsi - 0x68]
pxor xmm2, xmm12
movups xmm0, xmmword [rsi - 0x58]
pxor xmm3, xmm12
mov eax, dword [rsi + 0x78]
pxor xmm4, xmm12
movdqu xmm6, xmmword [r8]
pxor xmm5, xmm12
movdqu xmm7, xmmword [r9]
pxor xmm2, xmm6
movdqu xmm8, xmmword [r10]
pxor xmm3, xmm7
movdqu xmm9, xmmword [r11]
pxor xmm4, xmm8
pxor xmm5, xmm9
movdqa xmm10, xmmword [rsp + 0x20]
xor rbx, rbx
jmp 0x180022140
add rbx, 0x10
lea rbp, [rsp + 0x10]
mov ecx, 1
sub rbp, rbx
aesenc xmm2, xmm1
prefetcht0 byte [r8 + rbx + 0x1f]
prefetcht0 byte [r9 + rbx + 0x1f]
aesenc xmm3, xmm1
prefetcht0 byte [r10 + rbx + 0x1f]
prefetcht0 byte [r10 + rbx + 0x1f]
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi - 0x48]
cmp ecx, dword [rsp + 0x20]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
cmovge r8, rbp
cmovg r12, rbp
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi - 0x38]
cmp ecx, dword [rsp + 0x24]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
cmovge r9, rbp
cmovg r13, rbp
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi - 0x28]
cmp ecx, dword [rsp + 0x28]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
cmovge r10, rbp
cmovg r14, rbp
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi - 0x18]
cmp ecx, dword [rsp + 0x2c]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
cmovge r11, rbp
cmovg r15, rbp
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi - 8]
movdqa xmm11, xmm10
aesenc xmm2, xmm0
prefetcht0 byte [r12 + rbx + 0xf]
prefetcht0 byte [r13 + rbx + 0xf]
aesenc xmm3, xmm0
prefetcht0 byte [r14 + rbx + 0xf]
prefetcht0 byte [r15 + rbx + 0xf]
aesenc xmm4, xmm0
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi + 8]
pxor xmm12, xmm12
aesenc xmm2, xmm1
pcmpgtd xmm11, xmm12
movdqu xmm12, xmmword [rsi - 0x78]
aesenc xmm3, xmm1
paddd xmm10, xmm11
movdqa xmmword [rsp + 0x20], xmm10
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi + 0x18]
cmp eax, 0xb
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi + 0x28]
jb 0x180022300
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi + 0x38]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi + 0x48]
je 0x180022300
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rsi + 0x58]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
movups xmm0, xmmword [rsi + 0x68]
jmp 0x180022300
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movdqu xmm6, xmmword [r8 + rbx]
movdqu xmm1, xmmword [rsi - 0x68]
aesenclast xmm2, xmm0
movdqu xmm7, xmmword [r9 + rbx]
pxor xmm6, xmm12
aesenclast xmm3, xmm0
movdqu xmm8, xmmword [r10 + rbx]
pxor xmm7, xmm12
aesenclast xmm4, xmm0
movdqu xmm9, xmmword [r11 + rbx]
pxor xmm8, xmm12
aesenclast xmm5, xmm0
movdqu xmm0, xmmword [rsi - 0x58]
pxor xmm9, xmm12
movups xmmword [r12 + rbx - 0x10], xmm2
pxor xmm2, xmm6
movups xmmword [r13 + rbx - 0x10], xmm3
pxor xmm3, xmm7
movups xmmword [r14 + rbx - 0x10], xmm4
pxor xmm4, xmm8
movups xmmword [r15 + rbx - 0x10], xmm5
pxor xmm5, xmm9
dec edx
jne 0x180022140
mov rax, qword [rsp + 0x10]
mov edx, dword [rsp + 0x18]
lea rdi, [rdi + 0xa0]
dec edx
jne 0x180022055
movaps xmm6, xmmword [rax - 0xd8]
movaps xmm7, xmmword [rax - 0xc8]
movaps xmm8, xmmword [rax - 0xb8]
movaps xmm9, xmmword [rax - 0xa8]
movaps xmm10, xmmword [rax - 0x98]
movaps xmm11, xmmword [rax - 0x88]
movaps xmm12, xmmword [rax - 0x78]
mov r15, qword [rax - 0x30]
mov r14, qword [rax - 0x28]
mov r13, qword [rax - 0x20]
mov r12, qword [rax - 0x18]
mov rbp, qword [rax - 0x10]
mov rbx, qword [rax - 8]
lea rsp, [rax]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov rax, rsp
push rbx
push rbp
push r12
push r13
push r14
push r15
lea rsp, [rsp - 0xa8]
movaps xmmword [rsp], xmm6
movaps xmmword [rsp + 0x10], xmm7
movaps xmmword [rsp + 0x20], xmm8
movaps xmmword [rsp + 0x30], xmm9
movaps xmmword [rsp + 0x40], xmm10
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rax - 0x68], xmm13
movaps xmmword [rax - 0x58], xmm14
movaps xmmword [rax - 0x48], xmm15
sub rsp, 0xc0
and rsp, 0xffffffffffffff80
mov qword [rsp + 0x10], rax
vzeroupper
vmovdqu xmm15, xmmword [rsi]
lea rsi, [rsi + 0x78]
lea rdi, [rdi + 0xa0]
shr edx, 1
xor edx, edx
mov ecx, dword [rdi - 0x90]
mov r8, qword [rdi - 0xa0]
cmp ecx, edx
mov rbx, qword [rdi - 0x98]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm2, xmmword [rdi - 0x88]
mov dword [rsp + 0x20], ecx
cmovle r8, rsp
sub rbx, r8
mov qword [rsp + 0x40], rbx
mov ecx, dword [rdi - 0x68]
mov r9, qword [rdi - 0x78]
cmp ecx, edx
mov rbp, qword [rdi - 0x70]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm3, xmmword [rdi - 0x60]
mov dword [rsp + 0x24], ecx
cmovle r9, rsp
sub rbp, r9
mov qword [rsp + 0x48], rbp
mov ecx, dword [rdi - 0x40]
mov r10, qword [rdi - 0x50]
cmp ecx, edx
mov rbp, qword [rdi - 0x48]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm4, xmmword [rdi - 0x38]
mov dword [rsp + 0x28], ecx
cmovle r10, rsp
sub rbp, r10
mov qword [rsp + 0x50], rbp
mov ecx, dword [rdi - 0x18]
mov r11, qword [rdi - 0x28]
cmp ecx, edx
mov rbp, qword [rdi - 0x20]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm5, xmmword [rdi - 0x10]
mov dword [rsp + 0x2c], ecx
cmovle r11, rsp
sub rbp, r11
mov qword [rsp + 0x58], rbp
mov ecx, dword [rdi + 0x10]
mov r12, qword [rdi]
cmp ecx, edx
mov rbp, qword [rdi + 8]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm6, xmmword [rdi + 0x18]
mov dword [rsp + 0x30], ecx
cmovle r12, rsp
sub rbp, r12
mov qword [rsp + 0x60], rbp
mov ecx, dword [rdi + 0x38]
mov r13, qword [rdi + 0x28]
cmp ecx, edx
mov rbp, qword [rdi + 0x30]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm7, xmmword [rdi + 0x40]
mov dword [rsp + 0x34], ecx
cmovle r13, rsp
sub rbp, r13
mov qword [rsp + 0x68], rbp
mov ecx, dword [rdi + 0x60]
mov r14, qword [rdi + 0x50]
cmp ecx, edx
mov rbp, qword [rdi + 0x58]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm8, xmmword [rdi + 0x68]
mov dword [rsp + 0x38], ecx
cmovle r14, rsp
sub rbp, r14
mov qword [rsp + 0x70], rbp
mov ecx, dword [rdi + 0x88]
mov r15, qword [rdi + 0x78]
cmp ecx, edx
mov rbp, qword [rdi + 0x80]
cmovg edx, ecx
test ecx, ecx
vmovdqu xmm9, xmmword [rdi + 0x90]
mov dword [rsp + 0x3c], ecx
cmovle r15, rsp
sub rbp, r15
mov qword [rsp + 0x78], rbp
test edx, edx
je 0x180022faf
vmovups xmm1, xmmword [rsi - 0x68]
vmovups xmm0, xmmword [rsi - 0x58]
mov eax, dword [rsi + 0x78]
vpxor xmm10, xmm15, xmmword [r8]
lea rbp, [rsp + 0x80]
vpxor xmm11, xmm15, xmmword [r9]
vpxor xmm12, xmm15, xmmword [r10]
vpxor xmm13, xmm15, xmmword [r11]
vpxor xmm2, xmm2, xmm10
vpxor xmm10, xmm15, xmmword [r12]
vpxor xmm3, xmm3, xmm11
vpxor xmm11, xmm15, xmmword [r13]
vpxor xmm4, xmm4, xmm12
vpxor xmm12, xmm15, xmmword [r14]
vpxor xmm5, xmm5, xmm13
vpxor xmm13, xmm15, xmmword [r15]
vpxor xmm6, xmm6, xmm10
mov ecx, 1
vpxor xmm7, xmm7, xmm11
vpxor xmm8, xmm8, xmm12
vpxor xmm9, xmm9, xmm13
jmp 0x180022ac0
vaesenc xmm2, xmm2, xmm1
cmp ecx, dword [rsp + 0x20]
vaesenc xmm3, xmm3, xmm1
prefetcht0 byte [r8 + 0x1f]
vaesenc xmm4, xmm4, xmm1
vaesenc xmm5, xmm5, xmm1
lea rbx, [r8 + rbx]
cmovge r8, rsp
vaesenc xmm6, xmm6, xmm1
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm1
sub rbx, r8
vaesenc xmm8, xmm8, xmm1
vpxor xmm10, xmm15, xmmword [r8 + 0x10]
mov qword [rsp + 0x40], rbx
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi - 0x48]
lea r8, [r8 + rbx + 0x10]
vmovdqu xmmword [rbp], xmm10
vaesenc xmm2, xmm2, xmm0
cmp ecx, dword [rsp + 0x24]
mov rbx, qword [rsp + 0x48]
vaesenc xmm3, xmm3, xmm0
prefetcht0 byte [r9 + 0x1f]
vaesenc xmm4, xmm4, xmm0
vaesenc xmm5, xmm5, xmm0
lea rbx, [r9 + rbx]
cmovge r9, rsp
vaesenc xmm6, xmm6, xmm0
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm0
sub rbx, r9
vaesenc xmm8, xmm8, xmm0
vpxor xmm11, xmm15, xmmword [r9 + 0x10]
mov qword [rsp + 0x48], rbx
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi - 0x38]
lea r9, [r9 + rbx + 0x10]
vmovdqu xmmword [rbp + 0x10], xmm11
vaesenc xmm2, xmm2, xmm1
cmp ecx, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x50]
vaesenc xmm3, xmm3, xmm1
prefetcht0 byte [r10 + 0x1f]
vaesenc xmm4, xmm4, xmm1
prefetcht0 byte [r8 + 0xf]
vaesenc xmm5, xmm5, xmm1
lea rbx, [r10 + rbx]
cmovge r10, rsp
vaesenc xmm6, xmm6, xmm1
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm1
sub rbx, r10
vaesenc xmm8, xmm8, xmm1
vpxor xmm12, xmm15, xmmword [r10 + 0x10]
mov qword [rsp + 0x50], rbx
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi - 0x28]
lea r10, [r10 + rbx + 0x10]
vmovdqu xmmword [rbp + 0x20], xmm12
vaesenc xmm2, xmm2, xmm0
cmp ecx, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0x58]
vaesenc xmm3, xmm3, xmm0
prefetcht0 byte [r11 + 0x1f]
vaesenc xmm4, xmm4, xmm0
prefetcht0 byte [r9 + 0xf]
vaesenc xmm5, xmm5, xmm0
lea rbx, [r11 + rbx]
cmovge r11, rsp
vaesenc xmm6, xmm6, xmm0
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm0
sub rbx, r11
vaesenc xmm8, xmm8, xmm0
vpxor xmm13, xmm15, xmmword [r11 + 0x10]
mov qword [rsp + 0x58], rbx
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi - 0x18]
lea r11, [r11 + rbx + 0x10]
vmovdqu xmmword [rbp + 0x30], xmm13
vaesenc xmm2, xmm2, xmm1
cmp ecx, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
vaesenc xmm3, xmm3, xmm1
prefetcht0 byte [r12 + 0x1f]
vaesenc xmm4, xmm4, xmm1
prefetcht0 byte [r10 + 0xf]
vaesenc xmm5, xmm5, xmm1
lea rbx, [r12 + rbx]
cmovge r12, rsp
vaesenc xmm6, xmm6, xmm1
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm1
sub rbx, r12
vaesenc xmm8, xmm8, xmm1
vpxor xmm10, xmm15, xmmword [r12 + 0x10]
mov qword [rsp + 0x60], rbx
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi - 8]
lea r12, [r12 + rbx + 0x10]
vaesenc xmm2, xmm2, xmm0
cmp ecx, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x68]
vaesenc xmm3, xmm3, xmm0
prefetcht0 byte [r13 + 0x1f]
vaesenc xmm4, xmm4, xmm0
prefetcht0 byte [r11 + 0xf]
vaesenc xmm5, xmm5, xmm0
lea rbx, [rbx + r13]
cmovge r13, rsp
vaesenc xmm6, xmm6, xmm0
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm0
sub rbx, r13
vaesenc xmm8, xmm8, xmm0
vpxor xmm11, xmm15, xmmword [r13 + 0x10]
mov qword [rsp + 0x68], rbx
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi + 8]
lea r13, [r13 + rbx + 0x10]
vaesenc xmm2, xmm2, xmm1
cmp ecx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x70]
vaesenc xmm3, xmm3, xmm1
prefetcht0 byte [r14 + 0x1f]
vaesenc xmm4, xmm4, xmm1
prefetcht0 byte [r12 + 0xf]
vaesenc xmm5, xmm5, xmm1
lea rbx, [r14 + rbx]
cmovge r14, rsp
vaesenc xmm6, xmm6, xmm1
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm1
sub rbx, r14
vaesenc xmm8, xmm8, xmm1
vpxor xmm12, xmm15, xmmword [r14 + 0x10]
mov qword [rsp + 0x70], rbx
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi + 0x18]
lea r14, [r14 + rbx + 0x10]
vaesenc xmm2, xmm2, xmm0
cmp ecx, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x78]
vaesenc xmm3, xmm3, xmm0
prefetcht0 byte [r15 + 0x1f]
vaesenc xmm4, xmm4, xmm0
prefetcht0 byte [r13 + 0xf]
vaesenc xmm5, xmm5, xmm0
lea rbx, [r15 + rbx]
cmovge r15, rsp
vaesenc xmm6, xmm6, xmm0
cmovg rbx, rsp
vaesenc xmm7, xmm7, xmm0
sub rbx, r15
vaesenc xmm8, xmm8, xmm0
vpxor xmm13, xmm15, xmmword [r15 + 0x10]
mov qword [rsp + 0x78], rbx
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi + 0x28]
lea r15, [r15 + rbx + 0x10]
vmovdqu xmm14, xmmword [rsp + 0x20]
prefetcht0 byte [r14 + 0xf]
prefetcht0 byte [r15 + 0xf]
cmp eax, 0xb
jb 0x180022e8f
vaesenc xmm2, xmm2, xmm1
vaesenc xmm3, xmm3, xmm1
vaesenc xmm4, xmm4, xmm1
vaesenc xmm5, xmm5, xmm1
vaesenc xmm6, xmm6, xmm1
vaesenc xmm7, xmm7, xmm1
vaesenc xmm8, xmm8, xmm1
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi + 0x38]
vaesenc xmm2, xmm2, xmm0
vaesenc xmm3, xmm3, xmm0
vaesenc xmm4, xmm4, xmm0
vaesenc xmm5, xmm5, xmm0
vaesenc xmm6, xmm6, xmm0
vaesenc xmm7, xmm7, xmm0
vaesenc xmm8, xmm8, xmm0
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi + 0x48]
je 0x180022e8f
vaesenc xmm2, xmm2, xmm1
vaesenc xmm3, xmm3, xmm1
vaesenc xmm4, xmm4, xmm1
vaesenc xmm5, xmm5, xmm1
vaesenc xmm6, xmm6, xmm1
vaesenc xmm7, xmm7, xmm1
vaesenc xmm8, xmm8, xmm1
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi + 0x58]
vaesenc xmm2, xmm2, xmm0
vaesenc xmm3, xmm3, xmm0
vaesenc xmm4, xmm4, xmm0
vaesenc xmm5, xmm5, xmm0
vaesenc xmm6, xmm6, xmm0
vaesenc xmm7, xmm7, xmm0
vaesenc xmm8, xmm8, xmm0
vaesenc xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi + 0x68]
vaesenc xmm2, xmm2, xmm1
vpxor xmm15, xmm15, xmm15
vaesenc xmm3, xmm3, xmm1
vaesenc xmm4, xmm4, xmm1
vpcmpgtd xmm15, xmm14, xmm15
vaesenc xmm5, xmm5, xmm1
vaesenc xmm6, xmm6, xmm1
vpaddd xmm15, xmm15, xmm14
vmovdqu xmm14, xmmword [rsp + 0x30]
vaesenc xmm7, xmm7, xmm1
mov rbx, qword [rsp + 0x40]
vaesenc xmm8, xmm8, xmm1
vaesenc xmm9, xmm9, xmm1
vmovups xmm1, xmmword [rsi - 0x68]
vaesenclast xmm2, xmm2, xmm0
vmovdqa xmmword [rsp + 0x20], xmm15
vpxor xmm15, xmm15, xmm15
vaesenclast xmm3, xmm3, xmm0
vaesenclast xmm4, xmm4, xmm0
vpcmpgtd xmm15, xmm14, xmm15
vaesenclast xmm5, xmm5, xmm0
vaesenclast xmm6, xmm6, xmm0
vpaddd xmm14, xmm14, xmm15
vmovdqu xmm15, xmmword [rsi - 0x78]
vaesenclast xmm7, xmm7, xmm0
vaesenclast xmm8, xmm8, xmm0
vmovdqa xmmword [rsp + 0x30], xmm14
vaesenclast xmm9, xmm9, xmm0
vmovups xmm0, xmmword [rsi - 0x58]
vmovups xmmword [r8 - 0x10], xmm2
sub r8, rbx
vpxor xmm2, xmm2, xmmword [rbp]
vmovups xmmword [r9 - 0x10], xmm3
sub r9, qword [rsp + 0x48]
vpxor xmm3, xmm3, xmmword [rbp + 0x10]
vmovups xmmword [r10 - 0x10], xmm4
sub r10, qword [rsp + 0x50]
vpxor xmm4, xmm4, xmmword [rbp + 0x20]
vmovups xmmword [r11 - 0x10], xmm5
sub r11, qword [rsp + 0x58]
vpxor xmm5, xmm5, xmmword [rbp + 0x30]
vmovups xmmword [r12 - 0x10], xmm6
sub r12, qword [rsp + 0x60]
vpxor xmm6, xmm6, xmm10
vmovups xmmword [r13 - 0x10], xmm7
sub r13, qword [rsp + 0x68]
vpxor xmm7, xmm7, xmm11
vmovups xmmword [r14 - 0x10], xmm8
sub r14, qword [rsp + 0x70]
vpxor xmm8, xmm8, xmm12
vmovups xmmword [r15 - 0x10], xmm9
sub r15, qword [rsp + 0x78]
vpxor xmm9, xmm9, xmm13
dec edx
jne 0x180022ac0
mov rax, qword [rsp + 0x10]
vzeroupper
movaps xmm6, xmmword [rax - 0xd8]
movaps xmm7, xmmword [rax - 0xc8]
movaps xmm8, xmmword [rax - 0xb8]
movaps xmm9, xmmword [rax - 0xa8]
movaps xmm10, xmmword [rax - 0x98]
movaps xmm11, xmmword [rax - 0x88]
movaps xmm12, xmmword [rax - 0x78]
movaps xmm13, xmmword [rax - 0x68]
movaps xmm14, xmmword [rax - 0x58]
movaps xmm15, xmmword [rax - 0x48]
mov r15, qword [rax - 0x30]
mov r14, qword [rax - 0x28]
mov r13, qword [rax - 0x20]
mov r12, qword [rax - 0x18]
mov rbp, qword [rax - 0x10]
mov rbx, qword [rax - 8]
lea rsp, [rax]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret