Function at 0x537800
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 0x537b44
mov ecx, dword [edx + 0xf0]
test ebx, ebx
je 0x5379c0
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x5378df
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 0x5378aa
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.00537640
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x537870
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 0x537b44
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x537930
movups xmm3, xmmword [esi + 0x10]
je 0x537960
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x537980
movups xmm5, xmmword [esi + 0x30]
je 0x5379a0
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.00537640
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 0x537b44
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 0x53793d
aesenclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x537b44
call fcn.00537360
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x537b44
call fcn.00537420
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x537b44
call fcn.00537520
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
jmp 0x537b44
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x537a6f
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 0x537a3a
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.00537720
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x537a00
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 0x537b44
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x537ac0
movups xmm3, xmmword [esi + 0x10]
je 0x537af0
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x537b10
movups xmm5, xmmword [esi + 0x30]
je 0x537b30
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.00537720
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 0x537b44
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 0x537acd
aesdeclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x537b44
call fcn.005373c0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x537b44
call fcn.005374a0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x537b44
call fcn.005375b0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
pxor xmm0, xmm0
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
pxor xmm6, xmm6
pxor xmm7, xmm7
pop edi
pop esi
pop ebx
pop ebp
ret