Function at 0x10169d60
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 0x1016a0a4
mov ecx, dword [edx + 0xf0]
test ebx, ebx
je 0x10169f20
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x10169e3b
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 0x10169e0a
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.10169ba0
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x10169dd0
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 0x1016a0a4
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x10169e90
movups xmm3, xmmword [esi + 0x10]
je 0x10169ec0
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x10169ee0
movups xmm5, xmmword [esi + 0x30]
je 0x10169f00
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.10169ba0
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 0x1016a0a4
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 0x10169e9d
aesenclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x1016a0a4
xorps xmm4, xmm4
call fcn.101699c0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x1016a0a4
call fcn.101699c0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x1016a0a4
call fcn.10169aa0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
jmp 0x1016a0a4
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x10169fcb
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 0x10169f9a
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.10169c80
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x10169f60
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 0x1016a0a4
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x1016a020
movups xmm3, xmmword [esi + 0x10]
je 0x1016a050
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x1016a070
movups xmm5, xmmword [esi + 0x30]
je 0x1016a090
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.10169c80
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 0x1016a0a4
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 0x1016a02d
aesdeclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x1016a0a4
xorps xmm4, xmm4
call fcn.10169a30
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x1016a0a4
call fcn.10169a30
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x1016a0a4
call fcn.10169b20
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