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

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebx + 0xc]
push esi
mov esi, edx
mov edx, dword [ebx + 8]
push edi
mov edi, ecx
mov dword [ebp - 8], edi
cmp eax, 0x80
jb 0x47cc44
lea ecx, [edi + 0x10]
mov dword [ebp - 0xc], ecx
mov ecx, eax
shr ecx, 7
movups xmm0, xmmword [edi]
mov eax, dword [edi + 0x1d0]
movups xmm1, xmmword [esi + 0x40]
mov edi, dword [ebp - 0xc]
cmp edi, eax
movups xmm2, xmmword [esi]
mov dword [ebp - 0x10], eax
movups xmm5, xmmword [esi + 0x10]
mov eax, dword [ebx + 0xc]
movups xmm4, xmmword [esi + 0x20]
mov dword [ebp - 4], edi
movups xmm3, xmmword [esi + 0x30]
movups xmm7, xmmword [esi + 0x50]
movups xmm6, xmmword [esi + 0x60]
pxor xmm1, xmm0
pxor xmm2, xmm0
movaps xmmword [ebp - 0x20], xmm1
pxor xmm5, xmm0
movups xmm1, xmmword [esi + 0x70]
pxor xmm4, xmm0
pxor xmm3, xmm0
pxor xmm1, xmm0
pxor xmm7, xmm0
movaps xmmword [ebp - 0x30], xmm1
pxor xmm6, xmm0
movaps xmm1, xmmword [ebp - 0x20]
jae 0x47cbd3
movups xmm0, xmmword [edi]
add edi, 0x10
aesenc xmm1, xmm0
movaps xmmword [ebp - 0x20], xmm1
movaps xmm1, xmmword [ebp - 0x30]
aesenc xmm1, xmm0
movaps xmmword [ebp - 0x30], xmm1
movaps xmm1, xmmword [ebp - 0x20]
aesenc xmm2, xmm0
aesenc xmm5, xmm0
aesenc xmm4, xmm0
aesenc xmm3, xmm0
aesenc xmm7, xmm0
aesenc xmm6, xmm0
cmp edi, dword [ebp - 0x10]
jb 0x47cb8d
mov dword [ebp - 4], edi
mov edi, dword [ebp - 4]
movups xmm0, xmmword [edi]
mov edi, 0x80
sub eax, edi
add esi, edi
aesenclast xmm2, xmm0
movups xmmword [edx], xmm2
aesenclast xmm5, xmm0
movaps xmm2, xmmword [ebp - 0x30]
movups xmmword [edx + 0x10], xmm5
aesenclast xmm4, xmm0
movups xmmword [edx + 0x20], xmm4
aesenclast xmm3, xmm0
movups xmmword [edx + 0x30], xmm3
aesenclast xmm1, xmm0
movups xmmword [edx + 0x40], xmm1
aesenclast xmm7, xmm0
movups xmmword [edx + 0x50], xmm7
aesenclast xmm6, xmm0
movups xmmword [edx + 0x60], xmm6
aesenclast xmm2, xmm0
movups xmmword [edx + 0x70], xmm2
add edx, edi
mov edi, dword [ebp - 8]
movaps xmmword [ebp - 0x20], xmm1
mov dword [ebx + 0xc], eax
sub ecx, 1
jne 0x47cb29
jmp 0x47cc60
movaps xmm1, xmmword [ebp - 0x30]
movaps xmm5, xmmword [ebp - 0x30]
movaps xmm4, xmmword [ebp - 0x30]
movaps xmm3, xmmword [ebp - 0x30]
movaps xmm7, xmmword [ebp - 0x30]
movaps xmm6, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0x20], xmm1
cmp eax, 0x10
jb 0x47cded
movups xmm0, xmmword [esi]
cmp eax, 0x20
jb 0x47cca6
movups xmm5, xmmword [esi + 0x10]
cmp eax, 0x30
jb 0x47cca6
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x47cca6
movups xmm3, xmmword [esi + 0x30]
cmp eax, 0x50
jb 0x47cca6
movups xmm1, xmmword [esi + 0x40]
movaps xmmword [ebp - 0x20], xmm1
cmp eax, 0x60
jb 0x47cca6
movups xmm7, xmmword [esi + 0x50]
cmp eax, 0x70
jb 0x47cca6
movups xmm6, xmmword [esi + 0x60]
mov esi, dword [edi + 0x1d0]
lea ecx, [edi + 0x10]
cmp eax, 0x50
jb 0x47cd38
movups xmm1, xmmword [edi]
movaps xmm2, xmm1
pxor xmm6, xmm1
pxor xmm2, xmm0
movaps xmm0, xmm1
pxor xmm5, xmm0
pxor xmm4, xmm0
pxor xmm3, xmm0
pxor xmm0, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmm1
movaps xmm1, xmmword [ebp - 0x20]
pxor xmm7, xmm0
movups xmm0, xmmword [ecx]
cmp ecx, esi
jae 0x47cd18
add ecx, 0x10
aesenc xmm2, xmm0
aesenc xmm5, xmm0
aesenc xmm4, xmm0
aesenc xmm3, xmm0
aesenc xmm1, xmm0
aesenc xmm7, xmm0
aesenc xmm6, xmm0
jmp 0x47cce9
aesenclast xmm5, xmm0
aesenclast xmm4, xmm0
aesenclast xmm3, xmm0
aesenclast xmm1, xmm0
aesenclast xmm7, xmm0
aesenclast xmm6, xmm0
jmp 0x47cdaf
movups xmm2, xmmword [edi]
cmp eax, 0x20
jb 0x47cd8b
movaps xmm1, xmm2
pxor xmm2, xmm0
movaps xmm0, xmm1
pxor xmm3, xmm1
pxor xmm5, xmm0
pxor xmm4, xmm0
jmp 0x47cd6f
add ecx, 0x10
aesenc xmm2, xmm0
aesenc xmm5, xmm0
aesenc xmm4, xmm0
aesenc xmm3, xmm0
movups xmm0, xmmword [ecx]
cmp ecx, esi
jb 0x47cd58
movaps xmm1, xmmword [ebp - 0x20]
aesenclast xmm5, xmm0
aesenclast xmm4, xmm0
aesenclast xmm3, xmm0
jmp 0x47cdaf
pxor xmm2, xmm0
movups xmm0, xmmword [ecx]
add ecx, 0x10
jmp 0x47cda3
aesenc xmm2, xmm0
movups xmm0, xmmword [ecx + 0x10]
add ecx, 0x20
aesenc xmm2, xmm0
movups xmm0, xmmword [ecx]
cmp ecx, esi
jb 0x47cd97
aesenclast xmm2, xmm0
movups xmmword [edx], xmm2
cmp eax, 0x20
jb 0x47cded
movups xmmword [edx + 0x10], xmm5
cmp eax, 0x30
jb 0x47cded
movups xmmword [edx + 0x20], xmm4
cmp eax, 0x40
jb 0x47cded
movups xmmword [edx + 0x30], xmm3
cmp eax, 0x50
jb 0x47cded
movups xmmword [edx + 0x40], xmm1
cmp eax, 0x60
jb 0x47cded
movups xmmword [edx + 0x50], xmm7
cmp eax, 0x70
jb 0x47cded
movups xmmword [edx + 0x60], xmm6
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8