Function at 0x140076c30
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, 0x58
movups xmmword [rsp + 0x10], xmm6
movups xmmword [rsp + 0x20], xmm7
movups xmmword [rsp + 0x30], xmm8
movups xmmword [rsp + 0x40], xmm9
mov rbx, qword [rsp + 0xc0]
mov r10, rcx
mov rax, rdx
test byte [rsp + 0xd0], 3
jne 0x140076fd9
mov ebp, 0x10
mov edx, 0x10
test r9, r9
je 0x140076ffa
mov ecx, dword [rsp + 0xd0]
mov r11, 0xfffffffffffffff0
mov esi, 0x10
and ecx, 4
cmp ecx, 1
sbb r15d, r15d
add r15d, 1
cmp ecx, 1
setb byte [rsp + 7]
test byte [rsp + 0xd0], 8
je 0x140076cd5
mov rsi, qword [rsp + 0xc8]
neg rdx
neg rbp
lea rcx, [rsi - 0x10]
mov rsi, r11
add r8, rcx
add r9, rcx
add rbx, rcx
test byte [rsp + 0xd0], 0x10
je 0x140076ec3
cmp qword [rsp + 0xc8], 0x3f
jbe 0x140076ec3
mov edi, dword [rsp + 0xd0]
mov r13d, eax
lea ecx, [rax - 2]
mov r11, rbx
mov dword [rsp + 0xc], eax
shl r13, 4
shl rcx, 4
mov r12, qword [rsp + 0xc8]
mov qword [rsp + 0xa8], rax
and edi, 1
movdqu xmm7, xmmword [0x14036a4f0]
add r13, r10
movdqu xmm6, xmmword [0x14036a500]
movdqu xmm5, xmmword [0x14036a510]
mov dword [rsp + 8], edi
lea r14, [rbp*4]
movdqu xmm4, xmmword [0x14036a520]
lea rdi, [rbx + rbp*2]
lea rcx, [r10 + rcx + 0x20]
nop dword [rax]
mov eax, dword [rsp + 8]
movdqu xmm1, xmmword [r8]
test eax, eax
je 0x140077038
movdqa xmm2, xmm5
movdqa xmm3, xmm7
paddd xmm2, xmm1
paddd xmm3, xmm1
movdqa xmm0, xmm2
movdqa xmm2, xmm4
movdqa xmm8, xmm3
paddd xmm2, xmm1
movdqa xmm3, xmm6
paddd xmm3, xmm1
movups xmmword [r8], xmm2
test r15b, r15b
je 0x140076dd4
movdqu xmm2, xmmword [r9]
add r9, rsi
pxor xmm1, xmm2
movdqu xmm2, xmmword [r9]
add r9, rsi
pxor xmm8, xmm2
movdqu xmm2, xmmword [r9]
add r9, rsi
pxor xmm3, xmm2
movdqu xmm2, xmmword [r9]
add r9, rsi
pxor xmm0, xmm2
movdqu xmm2, xmmword [r10]
cmp dword [rsp + 0xc], 1
pxor xmm1, xmm2
pxor xmm8, xmm2
pxor xmm3, xmm2
pxor xmm2, xmm0
jbe 0x140076e1a
lea rax, [r10 + 0x10]
nop dword [rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
aesenc xmm1, xmm0
aesenc xmm8, xmm0
aesenc xmm3, xmm0
aesenc xmm2, xmm0
cmp rcx, rax
jne 0x140076df8
movdqu xmm0, xmmword [r13]
cmp byte [rsp + 7], 0
aesenclast xmm1, xmm0
aesenclast xmm8, xmm0
aesenclast xmm3, xmm0
aesenclast xmm2, xmm0
je 0x140077020
movdqu xmm9, xmmword [r9]
add r9, rsi
pxor xmm9, xmm1
movdqu xmm1, xmmword [r9]
add r9, rsi
pxor xmm8, xmm1
movdqu xmm1, xmmword [r9]
add r9, rsi
movdqu xmm0, xmmword [r9]
movups xmmword [r11], xmm9
add r9, rsi
pxor xmm1, xmm3
movups xmmword [r11 + rbp], xmm8
pxor xmm0, xmm2
movups xmmword [rdi], xmm1
movups xmmword [rdi + rbp], xmm0
sub r12, 0x40
add r11, r14
add rdi, r14
cmp r12, 0x3f
ja 0x140076d60
mov rdi, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xa8]
and qword [rsp + 0xc8], 0x3f
lea rcx, [rdi - 0x40]
shr rcx, 6
add rcx, 1
imul rcx, rbp
lea rbx, [rbx + rcx*4]
cmp qword [rsp + 0xc8], 0xf
jbe 0x140077058
lea r13d, [rax - 1]
mov r12d, eax
lea r11d, [rax - 3]
mov byte [rsp + 0xc], r15b
mov r14d, dword [rsp + 0xd0]
mov dword [rsp + 8], r13d
shl r12, 4
shl r13, 4
and r11d, 0xfffffffe
mov rdi, qword [rsp + 0xc8]
add r13, r10
add r12, r10
and r14d, 1
add r11d, 4
nop dword [rax]
cmp byte [rsp + 0xc], 0
movdqu xmm0, xmmword [r8]
je 0x140076f2d
movdqu xmm4, xmmword [r9]
pxor xmm0, xmm4
test r14d, r14d
je 0x140076f37
add byte [r8 + 0xf], 1
cmp dword [rsp + 8], 1
pxor xmm0, xmmword [r10]
jbe 0x140076f6f
lea r15, [r10 + 0x10]
mov eax, 2
nop dword [rax]
mov ecx, eax
aesenc xmm0, xmmword [r15]
add eax, 2
add r15, 0x20
shl rcx, 4
aesenc xmm0, xmmword [r10 + rcx]
cmp r11d, eax
jne 0x140076f50
aesenc xmm0, xmmword [r13]
cmp byte [rsp + 7], 0
aesenclast xmm0, xmmword [r12]
je 0x140076f8d
movdqu xmm5, xmmword [r9]
pxor xmm0, xmm5
sub rdi, 0x10
movups xmmword [rbx], xmm0
add r8, rdx
add rbx, rbp
add r9, rsi
cmp rdi, 0xf
ja 0x140076f18
mov rax, qword [rsp + 0xc8]
and eax, 0xf
movups xmm6, xmmword [rsp + 0x10]
movups xmm7, xmmword [rsp + 0x20]
movups xmm8, xmmword [rsp + 0x30]
movups xmm9, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r9, r9
je 0x140076ff8
mov ebp, dword [rsp + 0xd0]
xor edx, edx
shr ebp, 1
xor ebp, 1
and ebp, 1
shl rbp, 4
jmp 0x140076c85
xor edx, edx
mov ebp, dword [rsp + 0xd0]
xor r11d, r11d
xor esi, esi
xor r15d, r15d
mov byte [rsp + 7], 0
shr ebp, 1
xor ebp, 1
and ebp, 1
shl rbp, 4
jmp 0x140076cad
movups xmmword [r11], xmm1
movups xmmword [r11 + rbp], xmm8
movups xmmword [rdi], xmm3
movups xmmword [rdi + rbp], xmm2
jmp 0x140076e82
add r8, rdx
movdqu xmm8, xmmword [r8]
add r8, rdx
movdqu xmm3, xmmword [r8]
add r8, rdx
movdqu xmm0, xmmword [r8]
add r8, rdx
jmp 0x140076d9e
mov rax, qword [rsp + 0xc8]
jmp 0x140076fb2