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

Disassembly:
mov rcx, qword [rcx]
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
stmxcsr dword [rsp]
mov dword [rsp + 4], 0x5f80
ldmxcsr dword [rsp + 4]
mov rax, qword [rcx + 0x30]
mov r9, rcx
xor rax, qword [rcx + 0x10]
mov esi, 0x80000
mov r8, qword [rcx + 0x20]
mov r13d, 0x80000001
xor r8, qword [rcx]
mov r11, qword [rcx + 0x28]
mov r10, r8
mov rdx, qword [rcx + 0x38]
movq xmm4, rax
xor rdx, qword [rcx + 0x18]
xor r11, qword [rcx + 8]
mov rbx, qword [rcx + 0xe0]
mov rax, qword [r9 + 0x50]
xor rax, qword [r9 + 0x40]
movq xmm0, rdx
mov rcx, qword [rcx + 0x58]
xor rcx, qword [r9 + 0x48]
movq xmm3, qword [r9 + 0x68]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm8
and r10d, 0x1ffff0
movq xmm5, rax
xor eax, eax
mov qword [rsp + 0x10], rax
mov ax, 0x3ff
shl rax, 0x34
movq xmm8, rax
mov r15, qword [r9 + 0x60]
punpcklqdq xmm4, xmm0
movq xmm0, rcx
punpcklqdq xmm5, xmm0
movdqu xmm6, xmmword [r10 + rbx]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop dword [rax]
lea rdx, [r10 + rbx]
mov ecx, r10d
mov eax, r10d
mov rdi, r15
xor ecx, 0x10
xor eax, 0x20
xor r10d, 0x30
movq xmm0, r11
movq xmm7, r8
punpcklqdq xmm7, xmm0
aesenc xmm6, xmm7
movq rbp, xmm6
mov r9, rbp
and r9d, 0x1ffff0
movdqu xmm2, xmmword [rcx + rbx]
movdqu xmm1, xmmword [rax + rbx]
movdqu xmm0, xmmword [r10 + rbx]
paddq xmm1, xmm7
paddq xmm0, xmm5
paddq xmm2, xmm4
movdqu xmmword [rcx + rbx], xmm0
movdqu xmmword [rax + rbx], xmm2
movdqu xmmword [r10 + rbx], xmm1
mov r10, r9
xor r10d, 0x20
movq rcx, xmm3
mov rax, rcx
shl rax, 0x20
xor rdi, rax
movdqa xmm0, xmm6
pxor xmm0, xmm4
movdqu xmmword [rdx], xmm0
xor rdi, qword [r9 + rbx]
lea r14, [r9 + rbx]
mov r12, qword [r14 + 8]
xor edx, edx
lea r9d, [ecx + ecx]
add r9d, ebp
movdqa xmm0, xmm6
psrldq xmm0, 8
or r9d, r13d
movq rax, xmm0
div r9
xorps xmm3, xmm3
mov eax, eax
shl rdx, 0x20
add rdx, rax
lea r9, [rdx + rbp]
mov r15, rdx
mov rax, r9
shr rax, 0xc
movq xmm0, rax
paddq xmm0, xmm8
sqrtsd xmm3, xmm0
psubq xmm3, xmmword [rsp + 0x10]
movq rdx, xmm3
test edx, 0x7ffff
je 0x4c02f0
psrlq xmm3, 0x13
mov ecx, r10d
mov rax, rdi
mul rbp
movq xmm2, rdx
xor rdx, qword [rcx + rbx]
add r8, rdx
mov qword [r14], r8
xor r8, rdi
mov edi, r8d
and edi, 0x1ffff0
movq xmm0, rax
xor rax, qword [rcx + rbx + 8]
add r11, rax
mov qword [r14 + 8], r11
punpcklqdq xmm2, xmm0
mov r9d, r10d
xor r9d, 0x30
xor r10d, 0x10
pxor xmm2, xmmword [r9 + rbx]
movdqu xmm0, xmmword [r10 + rbx]
paddq xmm0, xmm5
movdqu xmm1, xmmword [rcx + rbx]
paddq xmm2, xmm4
paddq xmm1, xmm7
movdqa xmm5, xmm4
movdqu xmmword [r9 + rbx], xmm0
movdqa xmm4, xmm6
movdqu xmmword [rcx + rbx], xmm2
movdqu xmmword [r10 + rbx], xmm1
movdqu xmm6, xmmword [rdi + rbx]
mov r10d, edi
xor r11, r12
dec rsi
jne 0x4c0140
ldmxcsr dword [rsp]
mov rbx, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x20]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp 0x4c0332
dec rdx
mov r13d, 0xfffffc02
shl r13, 0x20
mov rax, rdx
shr rdx, 0x13
shr rax, 0x14
mov rcx, rdx
sub rcx, rax
add rax, r13
not r13
sub rcx, r13
mov r13d, 0x80000001
imul rcx, rax
sub rcx, r9
adc rdx, 0
movq xmm3, rdx
jmp 0x4c0235
ret 0