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

Disassembly:
mov r11, rsp
push rbp
push rbx
lea rbp, [r11 - 0x5f]
sub rsp, 0xa8
mov rax, qword [0x1800eb008]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov qword [r11 + 0x18], rsi
mov rax, r9
mov qword [r11 - 0x38], r15
mov rsi, rdx
xor edx, edx
mov qword [rbp - 0x31], rax
mov r15d, r8d
mov qword [rbp - 0x28], rdx
shr r15d, 4
xor ebx, ebx
mov qword [rbp - 0x11], rcx
mov byte [rbp + 0xf], 0
mov qword [rbp + 0x10], rdx
mov dword [rbp + 0x18], edx
mov word [rbp + 0x1c], dx
mov byte [rbp + 0x1e], dl
mov dword [rbp - 0x20], edx
mov word [rbp - 0x1c], dx
mov byte [rbp - 0x1a], dl
mov qword [rbp - 0x29], rax
mov dword [rbp - 0x39], r15d
test r15d, r15d
je 0x18005f27d
mov qword [r11 - 0x18], rdi
mov edx, 0x20
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x28], r13
lea r13, [rcx + 0xf4]
mov qword [r11 - 0x30], r14
mov r14d, dword [0x1800ec414]
mov qword [rbp - 9], r13
mov dword [rbp - 0x19], edx
nop word [rax + rax]
movzx r9d, byte [r13 + 0xf0]
lea rdi, [rbp + 0xf]
cmp r15d, 0x20
mov qword [rbp + 0xf], rax
mov r12d, r15d
mov qword [rbp + 0x17], rbx
cmova r12d, edx
mov r8, r13
lea eax, [r9 + 0x60]
mov dword [rbp - 0x39], r12d
test al, 0x9f
jne 0x18005f1b9
test r9b, r9b
je 0x18005f1b9
test r14d, r14d
jns 0x18005f109
xor ecx, ecx
mov eax, 1
cpuid
mov r14d, ecx
mov dword [rbp - 1], eax
and r14d, 0x2000000
mov dword [rbp + 3], ebx
mov dword [0x1800ec414], r14d
test r14d, r14d
mov dword [rbp + 7], ecx
mov dword [rbp + 0xb], edx
jne 0x18005f11d
lea rdx, [rbp + 0xf]
lea rcx, [rbp + 0xf]
call fcn.18006f1d0
jmp 0x18005f1b9
movdqu xmm0, xmmword [rbp + 0xf]
movzx ecx, r9b
pxor xmm0, xmmword [r13]
sub ecx, 0xa0
je 0x18005f165
sub ecx, 0x20
je 0x18005f153
cmp ecx, 0x20
jne 0x18005f1b4
aesenc xmm0, xmmword [r13 + 0x10]
lea r8, [r13 + 0x10]
add r8, 0x10
aesenc xmm0, xmmword [r8]
aesenc xmm0, xmmword [r8 + 0x10]
aesenc xmm0, xmmword [r8 + 0x20]
add r8, 0x20
aesenc xmm0, xmmword [r8 + 0x10]
aesenc xmm0, xmmword [r8 + 0x20]
aesenc xmm0, xmmword [r8 + 0x30]
aesenc xmm0, xmmword [r8 + 0x40]
aesenc xmm0, xmmword [r8 + 0x50]
aesenc xmm0, xmmword [r8 + 0x60]
aesenc xmm0, xmmword [r8 + 0x70]
aesenc xmm0, xmmword [r8 + 0x80]
aesenc xmm0, xmmword [r8 + 0x90]
aesenclast xmm0, xmmword [r8 + 0xa0]
movdqu xmmword [rbp + 0xf], xmm0
test r12d, r12d
je 0x18005f239
mov r13, qword [rbp - 0x11]
mov ebx, r12d
mov r12d, 0x87
nop dword [rax + rax]
mov rax, qword [rdi]
mov r8, r13
xor qword [rsi], rax
mov rdx, rsi
mov rax, qword [rdi + 8]
mov rcx, rsi
xor qword [rsi + 8], rax
call fcn.18006efa0
mov rax, qword [rdi]
xor ecx, ecx
xor qword [rsi], rax
mov rax, qword [rdi + 8]
xor qword [rsi + 8], rax
add rsi, 0x10
test rax, rax
cmovs ecx, r12d
add rax, rax
mov qword [rdi + 8], rax
mov rax, qword [rdi]
test rax, rax
jns 0x18005f21b
or qword [rdi + 8], 1
add rax, rax
mov qword [rdi], rax
xor byte [rbp + 0xf], cl
sub rbx, 1
jne 0x18005f1d0
mov r14d, dword [0x1800ec414]
mov r12d, dword [rbp - 0x39]
mov r13, qword [rbp - 9]
mov rax, qword [rbp - 0x31]
mov ebx, 0
inc rax
mov qword [rbp - 0x31], rax
mov qword [rbp - 0x29], rax
lea edx, [rbx + 0x20]
sub r15d, r12d
jne 0x18005f0a0
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov dword [rbp - 0x39], r15d
mov r15, qword [rsp + 0x80]
lea rcx, [rbp + 0xf]
mov rsi, qword [rsp + 0xd0]
mov edx, 2
nop word [rax + rax]
mov qword [rcx], rbx
lea rcx, [rcx + 8]
sub edx, 1
jne 0x18005f2a0
lea eax, [rdx + 1]
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180072920
add rsp, 0xa8
pop rbx
pop rbp
ret