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

Disassembly:
mov rdx, qword [rcx + 8]
mov rcx, qword [rcx]
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
stmxcsr dword [rsp + 0x110]
mov dword [rsp + 0x114], 0x5f80
ldmxcsr dword [rsp + 0x114]
mov r13, qword [rcx + 0xe0]
mov r9, rdx
mov r10, qword [rcx + 0x20]
mov r8, rcx
xor r10, qword [rcx]
mov r14d, 0x60000
mov r11, qword [rcx + 0x28]
xor r11, qword [rcx + 8]
mov rsi, qword [rdx + 0xe0]
mov rdx, qword [rcx + 0x38]
xor rdx, qword [rcx + 0x18]
mov rdi, qword [r9 + 0x20]
xor rdi, qword [r9]
mov rbp, qword [r9 + 0x28]
xor rbp, qword [r9 + 8]
movq xmm0, rdx
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
movaps xmmword [rsp + 0x30], xmm13
movaps xmmword [rsp + 0x20], xmm14
movaps xmmword [rsp + 0x10], xmm15
mov rdx, r10
movq xmm4, qword [r8 + 0x60]
and edx, 0x1ffff0
mov rax, qword [rcx + 0x30]
xorps xmm13, xmm13
xor rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x58]
xor rcx, qword [r8 + 0x48]
movq xmm5, qword [r8 + 0x68]
movq xmm7, rax
mov eax, 1
shl rax, 0x34
movq xmm14, rax
punpcklqdq xmm14, xmm14
mov eax, 0x3ff
shl rax, 0x34
movq xmm12, rax
punpcklqdq xmm12, xmm12
mov rax, qword [r8 + 0x50]
xor rax, qword [r8 + 0x40]
punpcklqdq xmm7, xmm0
movq xmm0, rcx
mov rcx, qword [r9 + 0x38]
xor rcx, qword [r9 + 0x18]
movq xmm3, rax
mov rax, qword [r9 + 0x30]
xor rax, qword [r9 + 0x10]
punpcklqdq xmm3, xmm0
movq xmm0, rcx
mov qword [rsp], r13
mov rcx, qword [r9 + 0x58]
xor rcx, qword [r9 + 0x48]
movq xmm6, rax
mov rax, qword [r9 + 0x50]
xor rax, qword [r9 + 0x40]
punpcklqdq xmm6, xmm0
movq xmm0, rcx
mov qword [rsp + 0x100], r10
mov rcx, rdi
mov qword [rsp + 0x108], r11
movq xmm8, rax
and ecx, 0x1ffff0
punpcklqdq xmm8, xmm0
movq xmm0, qword [r9 + 0x60]
punpcklqdq xmm4, xmm0
movq xmm0, qword [r9 + 0x68]
lea r8, [rcx + rsi]
movdqu xmm11, xmmword [r8]
punpcklqdq xmm5, xmm0
lea r9, [rdx + r13]
movdqu xmm15, xmmword [r9]
nop word [rax + rax]
nop word [rax + rax]
movdqu xmm9, xmm15
mov eax, edx
mov ebx, edx
xor eax, 0x10
xor ebx, 0x20
xor edx, 0x30
movq xmm0, r11
movq xmm2, r10
punpcklqdq xmm2, xmm0
aesenc xmm9, xmm2
movdqu xmm0, xmmword [rdx + r13]
movdqu xmm1, xmmword [rbx + r13]
paddq xmm0, xmm7
paddq xmm1, xmm2
movdqu xmmword [rbx + r13], xmm0
movdqu xmm0, xmmword [rax + r13]
movdqu xmmword [rdx + r13], xmm1
paddq xmm0, xmm3
movdqu xmmword [rax + r13], xmm0
movq r11, xmm9
mov edx, r11d
and edx, 0x1ffff0
movdqa xmm0, xmm9
pxor xmm0, xmm7
movdqu xmmword [r9], xmm0
lea rbx, [rdx + r13]
mov r10, qword [rdx + r13]
movdqu xmm10, xmm11
movq xmm0, rbp
movq xmm11, rdi
punpcklqdq xmm11, xmm0
aesenc xmm10, xmm11
mov eax, ecx
mov r12d, ecx
xor eax, 0x10
xor r12d, 0x20
xor ecx, 0x30
movdqu xmm0, xmmword [rcx + rsi]
paddq xmm0, xmm6
movdqu xmm1, xmmword [r12 + rsi]
movdqu xmmword [r12 + rsi], xmm0
paddq xmm1, xmm11
movdqu xmm0, xmmword [rax + rsi]
movdqu xmmword [rcx + rsi], xmm1
paddq xmm0, xmm8
movdqu xmmword [rax + rsi], xmm0
movq rcx, xmm10
and ecx, 0x1ffff0
movdqa xmm0, xmm10
pxor xmm0, xmm6
movdqu xmmword [r8], xmm0
mov r12, qword [rcx + rsi]
mov r9, qword [rbx + 8]
xor edx, 0x10
mov r8d, edx
mov r15d, edx
movq rdx, xmm5
shl rdx, 0x20
movq rax, xmm4
xor rdx, rax
xor r10, rdx
mov rax, r10
mul r11
mov r11d, r8d
xor r11d, 0x30
movq xmm0, rdx
xor rdx, qword [r11 + r13]
movq xmm1, rax
xor rax, qword [r11 + r13 + 8]
punpcklqdq xmm0, xmm1
pxor xmm0, xmmword [r8 + r13]
movdqu xmm1, xmmword [r11 + r13]
paddq xmm0, xmm3
paddq xmm1, xmm2
movdqu xmmword [r8 + r13], xmm0
xor r8d, 0x20
movdqu xmm0, xmmword [r8 + r13]
movdqu xmmword [r8 + r13], xmm1
paddq xmm0, xmm7
movdqu xmmword [r11 + r13], xmm0
mov r11, qword [rsp + 0x100]
add r11, rdx
mov rdx, qword [rsp + 0x108]
add rdx, rax
mov qword [rbx], r11
xor r11, r10
mov qword [rbx + 8], rdx
xor rdx, r9
mov qword [rsp + 0x100], r11
and r11d, 0x1ffff0
mov qword [rsp + 0x108], rdx
mov qword [rsp + 8], r11
lea r15, [r11 + r13]
movdqu xmm15, xmmword [r11 + r13]
lea r13, [rsi + rcx]
movdqa xmm0, xmm5
psrldq xmm0, 8
movaps xmm2, xmm13
movq r10, xmm0
psllq xmm5, 1
shl r10, 0x20
movdqa xmm0, xmm9
psrldq xmm0, 8
movdqa xmm1, xmm10
movq r11, xmm0
psrldq xmm1, 8
movq r8, xmm1
psrldq xmm4, 8
movaps xmm0, xmm13
movq rax, xmm4
xor r10, rax
movaps xmm1, xmm13
xor r10, r12
lea rax, [r11 + 1]
shr rax, 1
movdqa xmm3, xmm9
punpcklqdq xmm3, xmm10
paddq xmm5, xmm3
movq rdx, xmm5
psrldq xmm5, 8
cvtsi2sd xmm2, rax
or edx, 0x80000001
lea rax, [r8 + 1]
shr rax, 1
movq r9, xmm5
cvtsi2sd xmm0, rax
or r9d, 0x80000001
cvtsi2sd xmm1, rdx
unpcklpd xmm2, xmm0
movaps xmm0, xmm13
cvtsi2sd xmm0, r9
unpcklpd xmm1, xmm0
divpd xmm2, xmm1
paddq xmm2, xmm14
cvttsd2si rax, xmm2
psrldq xmm2, 8
mov rbx, rax
imul rax, rdx
sub r11, rax
js 0x1407f809d
cvttsd2si rdx, xmm2
mov rax, rdx
imul rax, r9
movd xmm2, r11d
movd xmm4, ebx
sub r8, rax
js 0x1407f80a8
movd xmm1, r8d
movd xmm0, edx
punpckldq xmm2, xmm1
punpckldq xmm4, xmm0
punpckldq xmm4, xmm2
paddq xmm3, xmm4
movdqa xmm0, xmm3
psrlq xmm0, 0xc
paddq xmm0, xmm12
sqrtpd xmm1, xmm0
movq r9, xmm1
movdqa xmm5, xmm1
psrlq xmm5, 0x13
test r9, 0x7ffff
je 0x1407f80b3
movq r9, xmm10
psrldq xmm1, 8
movq r8, xmm1
test r8, 0x7ffff
je 0x1407f8100
mov r12d, ecx
mov r8d, ecx
xor r12d, 0x10
xor r8d, 0x20
xor ecx, 0x30
mov rax, r10
mul r9
movq xmm0, rax
movq xmm3, rdx
punpcklqdq xmm3, xmm0
movdqu xmm0, xmmword [r12 + rsi]
pxor xmm0, xmm3
movdqu xmm1, xmmword [r8 + rsi]
xor rdx, qword [r8 + rsi]
xor rax, qword [r8 + rsi + 8]
movdqu xmm3, xmmword [rcx + rsi]
paddq xmm3, xmm6
paddq xmm1, xmm11
paddq xmm0, xmm8
movdqu xmmword [r8 + rsi], xmm3
movdqu xmmword [rcx + rsi], xmm1
movdqu xmmword [r12 + rsi], xmm0
add rdi, rdx
mov qword [r13], rdi
xor rdi, r10
mov ecx, edi
and ecx, 0x1ffff0
lea r8, [rcx + rsi]
mov rdx, qword [r13 + 8]
add rbp, rax
mov qword [r13 + 8], rbp
movdqu xmm11, xmmword [rcx + rsi]
xor rbp, rdx
mov r13, qword [rsp]
movdqa xmm3, xmm7
mov rdx, qword [rsp + 8]
movdqa xmm8, xmm6
mov r10, qword [rsp + 0x100]
movdqa xmm7, xmm9
mov r11, qword [rsp + 0x108]
movdqa xmm6, xmm10
mov r9, r15
dec r14d
jne 0x1407f7c80
ldmxcsr dword [rsp + 0x110]
movaps xmm13, xmmword [rsp + 0x30]
lea r11, [rsp + 0xb8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm14, xmmword [rsp + 0x20]
movaps xmm15, xmmword [rsp + 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1407f8148
dec rbx
add r11, rdx
jmp 0x1407f7f00
dec rdx
add r8, r9
jmp 0x1407f7f1e
movq r8, xmm3
movdqa xmm0, xmm5
psrldq xmm0, 8
dec r9
mov r11d, 0xfffffc02
shl r11, 0x20
mov rax, r9
shr r9, 0x13
shr rax, 0x14
mov rdx, r9
sub rdx, rax
lea rdx, [rdx + r11 + 1]
add rax, r11
imul rdx, rax
sub rdx, r8
adc r9, 0
movq xmm5, r9
punpcklqdq xmm5, xmm0
jmp 0x1407f7f64
psrldq xmm3, 8
movq r11, xmm3
dec r8
mov ebx, 0xfffffc02
shl rbx, 0x20
mov rax, r8
shr r8, 0x13
shr rax, 0x14
mov rdx, r8
sub rdx, rax
lea rdx, [rdx + rbx + 1]
add rax, rbx
imul rdx, rax
sub rdx, r11
adc r8, 0
movq xmm0, r8
punpcklqdq xmm5, xmm0
jmp 0x1407f7f80
ret