Function at 0x2a8bd920
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 [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
and eax, 0xfffffff0
je 0x2a8bdc64
mov ecx, dword [edx + 0xf0]
test ebx, ebx
je 0x2a8bdae0
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x2a8bd9fb
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x2a8bd9ca
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.2a8bd760
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x2a8bd990
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x2a8bdc64
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x2a8bda50
movups xmm3, xmmword [esi + 0x10]
je 0x2a8bda80
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x2a8bdaa0
movups xmm5, xmmword [esi + 0x30]
je 0x2a8bdac0
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.2a8bd760
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x2a8bdc64
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x2a8bda5d
aesenclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x2a8bdc64
xorps xmm4, xmm4
call fcn.2a8bd580
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x2a8bdc64
call fcn.2a8bd580
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x2a8bdc64
call fcn.2a8bd660
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
jmp 0x2a8bdc64
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x2a8bdb8b
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x2a8bdb5a
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.2a8bd840
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x2a8bdb20
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x2a8bdc64
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x2a8bdbe0
movups xmm3, xmmword [esi + 0x10]
je 0x2a8bdc10
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x2a8bdc30
movups xmm5, xmmword [esi + 0x30]
je 0x2a8bdc50
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.2a8bd840
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x2a8bdc64
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x2a8bdbed
aesdeclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x2a8bdc64
xorps xmm4, xmm4
call fcn.2a8bd5f0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x2a8bdc64
call fcn.2a8bd5f0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x2a8bdc64
call fcn.2a8bd6e0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
pop edi
pop esi
pop ebx
pop ebp
ret