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

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
endbr64
lea r11, [rsp]
push rbp
sub rsp, 0x110
and rsp, 0xfffffffffffffff0
movaps xmmword [r11 - 0xa8], xmm6
movaps xmmword [r11 - 0x98], xmm7
movaps xmmword [r11 - 0x88], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x68], xmm10
movaps xmmword [r11 - 0x58], xmm11
movaps xmmword [r11 - 0x48], xmm12
movaps xmmword [r11 - 0x38], xmm13
movaps xmmword [r11 - 0x28], xmm14
movaps xmmword [r11 - 0x18], xmm15
movups xmm2, xmmword [r9]
mov eax, dword [r8 + 0xf0]
mov r10d, dword [rcx + 0xf0]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
lea r8, [r8 + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec eax
movups xmm1, xmmword [r8]
lea r8, [r8 + 0x10]
jne 0x4c18e4
aesenclast xmm2, xmm1
xor eax, eax
test rdx, 0xf
setne al
shl rax, 4
sub rdx, rax
movups xmm0, xmmword [rcx]
mov rbp, rcx
mov eax, r10d
shl r10d, 4
mov r9, rdx
and rdx, 0xfffffffffffffff0
movups xmm1, xmmword [rcx + r10 + 0x10]
movdqa xmm8, xmmword [0x004c3ef0]
movdqa xmm15, xmm2
pshufd xmm9, xmm2, 0x5f
pxor xmm1, xmm0
movdqa xmm14, xmm9
paddd xmm9, xmm9
movdqa xmm10, xmm15
psrad xmm14, 0x1f
paddq xmm15, xmm15
pand xmm14, xmm8
pxor xmm10, xmm0
pxor xmm15, xmm14
movdqa xmm14, xmm9
paddd xmm9, xmm9
movdqa xmm11, xmm15
psrad xmm14, 0x1f
paddq xmm15, xmm15
pand xmm14, xmm8
pxor xmm11, xmm0
pxor xmm15, xmm14
movdqa xmm14, xmm9
paddd xmm9, xmm9
movdqa xmm12, xmm15
psrad xmm14, 0x1f
paddq xmm15, xmm15
pand xmm14, xmm8
pxor xmm12, xmm0
pxor xmm15, xmm14
movdqa xmm14, xmm9
paddd xmm9, xmm9
movdqa xmm13, xmm15
psrad xmm14, 0x1f
paddq xmm15, xmm15
pand xmm14, xmm8
pxor xmm13, xmm0
pxor xmm15, xmm14
movdqa xmm14, xmm15
psrad xmm9, 0x1f
paddq xmm15, xmm15
pand xmm9, xmm8
pxor xmm14, xmm0
pxor xmm15, xmm9
movaps xmmword [rsp + 0x60], xmm1
sub rdx, 0x60
jb 0x4c1d60
mov eax, 0x70
lea rcx, [rbp + r10 + 0x20]
sub rax, r10
movups xmm1, xmmword [rbp + 0x10]
mov r10, rax
lea r8, [0x004c3ef0]
jmp 0x4c1a40
movdqu xmm2, xmmword [rdi]
movdqa xmm8, xmm0
movdqu xmm3, xmmword [rdi + 0x10]
pxor xmm2, xmm10
movdqu xmm4, xmmword [rdi + 0x20]
pxor xmm3, xmm11
aesdec xmm2, xmm1
movdqu xmm5, xmmword [rdi + 0x30]
pxor xmm4, xmm12
aesdec xmm3, xmm1
movdqu xmm6, xmmword [rdi + 0x40]
pxor xmm5, xmm13
aesdec xmm4, xmm1
movdqu xmm7, xmmword [rdi + 0x50]
pxor xmm8, xmm15
movdqa xmm9, xmmword [rsp + 0x60]
pxor xmm6, xmm14
aesdec xmm5, xmm1
movups xmm0, xmmword [rbp + 0x20]
lea rdi, [rdi + 0x60]
pxor xmm7, xmm8
pxor xmm10, xmm9
aesdec xmm6, xmm1
pxor xmm11, xmm9
movdqa xmmword [rsp], xmm10
aesdec xmm7, xmm1
movups xmm1, xmmword [rbp + 0x30]
pxor xmm12, xmm9
aesdec xmm2, xmm0
pxor xmm13, xmm9
movdqa xmmword [rsp + 0x10], xmm11
aesdec xmm3, xmm0
pxor xmm14, xmm9
movdqa xmmword [rsp + 0x20], xmm12
aesdec xmm4, xmm0
aesdec xmm5, xmm0
pxor xmm8, xmm9
movdqa xmmword [rsp + 0x40], xmm14
aesdec xmm6, xmm0
aesdec xmm7, xmm0
movups xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rsp + 0x50], xmm8
pshufd xmm9, xmm15, 0x5f
jmp 0x4c1b20
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
movups xmm1, xmmword [rcx + rax - 0x40]
add rax, 0x20
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
movups xmm0, xmmword [rcx + rax - 0x50]
jne 0x4c1b20
movdqa xmm8, xmmword [r8]
movdqa xmm14, xmm9
paddd xmm9, xmm9
aesdec xmm2, xmm1
paddq xmm15, xmm15
psrad xmm14, 0x1f
aesdec xmm3, xmm1
pand xmm14, xmm8
movups xmm10, xmmword [rbp]
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
pxor xmm15, xmm14
movaps xmm11, xmm10
aesdec xmm7, xmm1
movups xmm1, xmmword [rcx - 0x40]
movdqa xmm14, xmm9
aesdec xmm2, xmm0
paddd xmm9, xmm9
pxor xmm10, xmm15
aesdec xmm3, xmm0
psrad xmm14, 0x1f
paddq xmm15, xmm15
aesdec xmm4, xmm0
aesdec xmm5, xmm0
pand xmm14, xmm8
movaps xmm12, xmm11
aesdec xmm6, xmm0
pxor xmm15, xmm14
movdqa xmm14, xmm9
aesdec xmm7, xmm0
movups xmm0, xmmword [rcx - 0x30]
paddd xmm9, xmm9
aesdec xmm2, xmm1
pxor xmm11, xmm15
psrad xmm14, 0x1f
aesdec xmm3, xmm1
paddq xmm15, xmm15
pand xmm14, xmm8
aesdec xmm4, xmm1
aesdec xmm5, xmm1
movdqa xmmword [rsp + 0x30], xmm13
pxor xmm15, xmm14
aesdec xmm6, xmm1
movaps xmm13, xmm12
movdqa xmm14, xmm9
aesdec xmm7, xmm1
movups xmm1, xmmword [rcx - 0x20]
paddd xmm9, xmm9
aesdec xmm2, xmm0
pxor xmm12, xmm15
psrad xmm14, 0x1f
aesdec xmm3, xmm0
paddq xmm15, xmm15
pand xmm14, xmm8
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
pxor xmm15, xmm14
movaps xmm14, xmm13
aesdec xmm7, xmm0
movdqa xmm0, xmm9
paddd xmm9, xmm9
aesdec xmm2, xmm1
pxor xmm13, xmm15
psrad xmm0, 0x1f
aesdec xmm3, xmm1
paddq xmm15, xmm15
pand xmm0, xmm8
aesdec xmm4, xmm1
aesdec xmm5, xmm1
pxor xmm15, xmm0
movups xmm0, xmmword [rbp]
aesdec xmm6, xmm1
aesdec xmm7, xmm1
movups xmm1, xmmword [rbp + 0x10]
pxor xmm14, xmm15
aesdeclast xmm2, xmmword [rsp]
psrad xmm9, 0x1f
paddq xmm15, xmm15
aesdeclast xmm3, xmmword [rsp + 0x10]
aesdeclast xmm4, xmmword [rsp + 0x20]
pand xmm9, xmm8
mov rax, r10
aesdeclast xmm5, xmmword [rsp + 0x30]
aesdeclast xmm6, xmmword [rsp + 0x40]
aesdeclast xmm7, xmmword [rsp + 0x50]
pxor xmm15, xmm9
lea rsi, [rsi + 0x60]
movups xmmword [rsi - 0x60], xmm2
movups xmmword [rsi - 0x50], xmm3
movups xmmword [rsi - 0x40], xmm4
movups xmmword [rsi - 0x30], xmm5
movups xmmword [rsi - 0x20], xmm6
movups xmmword [rsi - 0x10], xmm7
sub rdx, 0x60
jae 0x4c1a40
mov eax, 0x70
sub eax, r10d
mov rcx, rbp
shr eax, 4
mov r10d, eax
pxor xmm10, xmm0
pxor xmm11, xmm0
add rdx, 0x60
je 0x4c1f90
pxor xmm12, xmm0
cmp rdx, 0x20
jb 0x4c1e50
pxor xmm13, xmm0
je 0x4c1ea0
pxor xmm14, xmm0
cmp rdx, 0x40
jb 0x4c1ee0
je 0x4c1f30
movdqu xmm2, xmmword [rdi]
movdqu xmm3, xmmword [rdi + 0x10]
movdqu xmm4, xmmword [rdi + 0x20]
pxor xmm2, xmm10
movdqu xmm5, xmmword [rdi + 0x30]
pxor xmm3, xmm11
movdqu xmm6, xmmword [rdi + 0x40]
lea rdi, [rdi + 0x50]
pxor xmm4, xmm12
pxor xmm5, xmm13
pxor xmm6, xmm14
call sym._aesni_decrypt6
xorps xmm2, xmm10
xorps xmm3, xmm11
xorps xmm4, xmm12
movdqu xmmword [rsi], xmm2
xorps xmm5, xmm13
movdqu xmmword [rsi + 0x10], xmm3
xorps xmm6, xmm14
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm14, xmm14
movdqu xmmword [rsi + 0x30], xmm5
pcmpgtd xmm14, xmm15
movdqu xmmword [rsi + 0x40], xmm6
lea rsi, [rsi + 0x50]
pshufd xmm11, xmm14, 0x13
and r9, 0xf
je 0x4c2028
movdqa xmm10, xmm15
paddq xmm15, xmm15
pand xmm11, xmm8
pxor xmm11, xmm15
jmp 0x4c1f9a
movups xmm2, xmmword [rdi]
lea rdi, [rdi + 0x10]
xorps xmm2, xmm10
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec eax
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x4c1e69
aesdeclast xmm2, xmm1
xorps xmm2, xmm10
movdqa xmm10, xmm11
movups xmmword [rsi], xmm2
movdqa xmm11, xmm12
lea rsi, [rsi + 0x10]
jmp 0x4c1f90
movups xmm2, xmmword [rdi]
movups xmm3, xmmword [rdi + 0x10]
lea rdi, [rdi + 0x20]
xorps xmm2, xmm10
xorps xmm3, xmm11
call sym._aesni_decrypt2
xorps xmm2, xmm10
movdqa xmm10, xmm12
xorps xmm3, xmm11
movdqa xmm11, xmm13
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
lea rsi, [rsi + 0x20]
jmp 0x4c1f90
movups xmm2, xmmword [rdi]
movups xmm3, xmmword [rdi + 0x10]
movups xmm4, xmmword [rdi + 0x20]
lea rdi, [rdi + 0x30]
xorps xmm2, xmm10
xorps xmm3, xmm11
xorps xmm4, xmm12
call sym._aesni_decrypt3
xorps xmm2, xmm10
movdqa xmm10, xmm13
xorps xmm3, xmm11
movdqa xmm11, xmm14
xorps xmm4, xmm12
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
movups xmmword [rsi + 0x20], xmm4
lea rsi, [rsi + 0x30]
jmp 0x4c1f90
movups xmm2, xmmword [rdi]
movups xmm3, xmmword [rdi + 0x10]
movups xmm4, xmmword [rdi + 0x20]
xorps xmm2, xmm10
movups xmm5, xmmword [rdi + 0x30]
lea rdi, [rdi + 0x40]
xorps xmm3, xmm11
xorps xmm4, xmm12
xorps xmm5, xmm13
call sym._aesni_decrypt4
pxor xmm2, xmm10
movdqa xmm10, xmm14
pxor xmm3, xmm11
movdqa xmm11, xmm15
pxor xmm4, xmm12
movdqu xmmword [rsi], xmm2
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x10], xmm3
movdqu xmmword [rsi + 0x20], xmm4
movdqu xmmword [rsi + 0x30], xmm5
lea rsi, [rsi + 0x40]
jmp 0x4c1f90
and r9, 0xf
je 0x4c2028
mov rdx, r9
mov rcx, rbp
mov eax, r10d
movups xmm2, xmmword [rdi]
xorps xmm2, xmm11
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec eax
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x4c1fb8
aesdeclast xmm2, xmm1
xorps xmm2, xmm11
movups xmmword [rsi], xmm2
movzx eax, byte [rdi + 0x10]
movzx ecx, byte [rsi]
lea rdi, [rdi + 1]
mov byte [rsi], al
mov byte [rsi + 0x10], cl
lea rsi, [rsi + 1]
sub rdx, 1
jne 0x4c1fd4
sub rsi, r9
mov rcx, rbp
mov eax, r10d
movups xmm2, xmmword [rsi]
xorps xmm2, xmm10
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec eax
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x4c200c
aesdeclast xmm2, xmm1
xorps xmm2, xmm10
movups xmmword [rsi], xmm2
xorps xmm0, xmm0
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
movaps xmm6, xmmword [r11 - 0xa8]
movaps xmmword [r11 - 0xa8], xmm0
movaps xmm7, xmmword [r11 - 0x98]
movaps xmmword [r11 - 0x98], xmm0
movaps xmm8, xmmword [r11 - 0x88]
movaps xmmword [r11 - 0x88], xmm0
movaps xmm9, xmmword [r11 - 0x78]
movaps xmmword [r11 - 0x78], xmm0
movaps xmm10, xmmword [r11 - 0x68]
movaps xmmword [r11 - 0x68], xmm0
movaps xmm11, xmmword [r11 - 0x58]
movaps xmmword [r11 - 0x58], xmm0
movaps xmm12, xmmword [r11 - 0x48]
movaps xmmword [r11 - 0x48], xmm0
movaps xmm13, xmmword [r11 - 0x38]
movaps xmmword [r11 - 0x38], xmm0
movaps xmm14, xmmword [r11 - 0x28]
movaps xmmword [r11 - 0x28], xmm0
movaps xmm15, xmmword [r11 - 0x18]
movaps xmmword [r11 - 0x18], xmm0
movaps xmmword [rsp], xmm0
movaps xmmword [rsp + 0x10], xmm0
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm0
mov rbp, qword [r11 - 8]
lea rsp, [r11]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret