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

Disassembly:
push ebp
push ebx
push esi
push edi
mov esi, dword ss:[esp + 0x14]
mov ebx, esp
mov edi, dword ss:[esp + 0x18]
sub ebx, 0x18
mov eax, dword ss:[esp + 0x1c]
and ebx, 0xfffffff0
mov edx, dword ss:[esp + 0x20]
mov ebp, dword ss:[esp + 0x24]
test eax, eax
je 0x502a9e
cmp dword ss:[esp + 0x28], 0
xchg esp, ebx
movups xmm7, xmmword ss:[ebp]
mov ecx, dword ds:[edx + 0xf0]
mov ebp, edx
mov dword ss:[esp + 0x10], ebx
mov ebx, ecx
je 0x5027cc
movaps xmm2, xmm7
cmp eax, 0x10
jb 0x5027a3
sub eax, 0x10
jmp 0x502751
movups xmm7, xmmword ds:[esi]
lea esi, ds:[esi + 0x10]
movups xmm0, xmmword ds:[edx]
movups xmm1, xmmword ds:[edx + 0x10]
xorps xmm7, xmm0
lea edx, ds:[edx + 0x20]
xorps xmm2, xmm7
aesenc xmm2, xmm1
dec ecx
movups xmm1, xmmword ds:[edx]
lea edx, ds:[edx + 0x10]
jne 0x50276c
aesenclast xmm2, xmm1
mov ecx, ebx
mov edx, ebp
movups xmmword ds:[edi], xmm2
lea edi, ds:[edi + 0x10]
sub eax, 0x10
jae 0x502751
add eax, 0x10
jne 0x5027a3
movaps xmm7, xmm2
pxor xmm2, xmm2
jmp 0x502a83
mov ecx, eax
mov esi, esi
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x10
sub ecx, eax
xor eax, eax
mov esi, esi
rep stosb byte es:[edi], al
lea edi, ds:[edi - 0x10]
mov ecx, ebx
mov esi, edi
mov edx, ebp
jmp 0x502751
cmp eax, 0x50
jbe 0x502894
movaps xmmword ss:[esp], xmm7
sub eax, 0x50
jmp 0x5027f7
movaps xmmword ss:[esp], xmm0
movups xmmword ds:[edi], xmm7
lea edi, ds:[edi + 0x10]
movdqu xmm2, xmmword ds:[esi]
movdqu xmm3, xmmword ds:[esi + 0x10]
movdqu xmm4, xmmword ds:[esi + 0x20]
movdqu xmm5, xmmword ds:[esi + 0x30]
movdqu xmm6, xmmword ds:[esi + 0x40]
movdqu xmm7, xmmword ds:[esi + 0x50]
call fcn.00502aa3
movups xmm1, xmmword ds:[esi]
movups xmm0, xmmword ds:[esi + 0x10]
xorps xmm2, xmmword ss:[esp]
xorps xmm3, xmm1
movups xmm1, xmmword ds:[esi + 0x20]
xorps xmm4, xmm0
movups xmm0, xmmword ds:[esi + 0x30]
xorps xmm5, xmm1
movups xmm1, xmmword ds:[esi + 0x40]
xorps xmm6, xmm0
movups xmm0, xmmword ds:[esi + 0x50]
xorps xmm7, xmm1
movups xmmword ds:[edi], xmm2
movups xmmword ds:[edi + 0x10], xmm3
lea esi, ds:[esi + 0x60]
movups xmmword ds:[edi + 0x20], xmm4
mov ecx, ebx
movups xmmword ds:[edi + 0x30], xmm5
mov edx, ebp
movups xmmword ds:[edi + 0x40], xmm6
lea edi, ds:[edi + 0x50]
sub eax, 0x60
ja 0x5027ea
movaps xmm2, xmm7
movaps xmm7, xmm0
add eax, 0x50
jle 0x502a3d
movups xmmword ds:[edi], xmm2
lea edi, ds:[edi + 0x10]
movups xmm2, xmmword ds:[esi]
movaps xmm6, xmm2
cmp eax, 0x10
jbe 0x502945
movups xmm3, xmmword ds:[esi + 0x10]
movaps xmm5, xmm3
cmp eax, 0x20
jbe 0x502986
movups xmm4, xmmword ds:[esi + 0x20]
cmp eax, 0x30
jbe 0x5029b8
movups xmm5, xmmword ds:[esi + 0x30]
cmp eax, 0x40
jbe 0x5029e9
movups xmm6, xmmword ds:[esi + 0x40]
movaps xmmword ss:[esp], xmm7
movups xmm2, xmmword ds:[esi]
xorps xmm7, xmm7
call fcn.00502aa3
movups xmm1, xmmword ds:[esi]
movups xmm0, xmmword ds:[esi + 0x10]
xorps xmm2, xmmword ss:[esp]
xorps xmm3, xmm1
movups xmm1, xmmword ds:[esi + 0x20]
xorps xmm4, xmm0
movups xmm0, xmmword ds:[esi + 0x30]
xorps xmm5, xmm1
movups xmm7, xmmword ds:[esi + 0x40]
xorps xmm6, xmm0
movups xmmword ds:[edi], xmm2
movups xmmword ds:[edi + 0x10], xmm3
pxor xmm3, xmm3
movups xmmword ds:[edi + 0x20], xmm4
pxor xmm4, xmm4
movups xmmword ds:[edi + 0x30], xmm5
pxor xmm5, xmm5
lea edi, ds:[edi + 0x40]
movaps xmm2, xmm6
pxor xmm6, xmm6
sub eax, 0x50
jmp 0x502a4d
movups xmm0, xmmword ds:[edx]
movups xmm1, xmmword ds:[edx + 0x10]
lea edx, ds:[edx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec ecx
movups xmm1, xmmword ds:[edx]
lea edx, ds:[edx + 0x10]
jne 0x502955
aesdeclast xmm2, xmm1
xorps xmm2, xmm7
movaps xmm7, xmm6
sub eax, 0x10
jmp 0x502a4d
call fcn.00502b7d
xorps xmm2, xmm7
xorps xmm3, xmm6
movups xmmword ds:[edi], xmm2
movaps xmm2, xmm3
pxor xmm3, xmm3
lea edi, ds:[edi + 0x10]
movaps xmm7, xmm5
sub eax, 0x20
jmp 0x502a4d
call fcn.00502bd8
xorps xmm2, xmm7
xorps xmm3, xmm6
xorps xmm4, xmm5
movups xmmword ds:[edi], xmm2
movaps xmm2, xmm4
pxor xmm4, xmm4
movups xmmword ds:[edi + 0x10], xmm3
pxor xmm3, xmm3
lea edi, ds:[edi + 0x20]
movups xmm7, xmmword ds:[esi + 0x20]
sub eax, 0x30
jmp 0x502a4d
call fcn.00502c4b
movups xmm1, xmmword ds:[esi + 0x10]
movups xmm0, xmmword ds:[esi + 0x20]
xorps xmm2, xmm7
movups xmm7, xmmword ds:[esi + 0x30]
xorps xmm3, xmm6
movups xmmword ds:[edi], xmm2
xorps xmm4, xmm1
movups xmmword ds:[edi + 0x10], xmm3
pxor xmm3, xmm3
xorps xmm5, xmm0
movups xmmword ds:[edi + 0x20], xmm4
pxor xmm4, xmm4
lea edi, ds:[edi + 0x30]
movaps xmm2, xmm5
pxor xmm5, xmm5
sub eax, 0x40
jmp 0x502a4d
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
pxor xmm6, xmm6
and eax, 0xf
jne 0x502a67
movups xmmword ds:[edi], xmm2
pxor xmm0, xmm0
jmp 0x502a83
movaps xmmword ss:[esp], xmm2
pxor xmm0, xmm0
mov ecx, 0x10
mov esi, esp
sub ecx, eax
mov esi, esi
rep movsb byte es:[edi], byte [esi]
movdqa xmmword ss:[esp], xmm2
mov esp, dword ss:[esp + 0x10]
mov ebp, dword ss:[esp + 0x24]
pxor xmm2, xmm2
pxor xmm1, xmm1
movups xmmword ss:[ebp], xmm7
pxor xmm7, xmm7
pop edi
pop esi
pop ebx
pop ebp
ret