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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x68
push esi
mov esi, dword [ebx + 0xc]
xor eax, eax
mov dword [ebp - 4], ecx
mov ecx, dword [ebx + 8]
push edi
xor edi, edi
mov dword [ebp - 8], edx
mov edx, dword [ebx + 0x10]
shld edi, ecx, 3
shld eax, esi, 3
shl ecx, 3
movups xmm3, xmmword [edx + 0x20]
movups xmm7, xmmword [edx + 0x30]
movups xmm6, xmmword [edx + 0x50]
aesenc xmm6, xmmword [edx + 0x60]
movups xmm5, xmmword [edx + 0x40]
aesenc xmm5, xmmword [edx + 0x50]
shl esi, 3
movd xmm2, eax
movd xmm1, edi
punpckldq xmm1, xmm2
movd xmm0, esi
movd xmm4, ecx
punpckldq xmm4, xmm0
movaps xmm0, xmm3
punpckldq xmm4, xmm1
movups xmm1, xmmword [edx + 0x60]
pxor xmm4, xmm3
aesenc xmm1, xmmword [edx + 0x70]
aesenc xmm0, xmm7
aesenc xmm7, xmmword [edx + 0x40]
movaps xmmword [ebp - 0x20], xmm4
movups xmm4, xmmword [edx + 0x10]
pxor xmm7, xmmword [ebp - 0x20]
aesenc xmm4, xmm3
movups xmm3, xmmword [edx]
aesenc xmm3, xmmword [edx + 0x10]
movaps xmmword [ebp - 0x30], xmm1
movaps xmm2, xmm3
movups xmm1, xmmword [edx + 0x70]
aesenc xmm1, xmmword [edx]
pxor xmm1, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x40], xmm0
aesenc xmm2, xmm4
movaps xmm0, xmm6
aesenc xmm0, xmmword [ebp - 0x30]
movups xmmword [ebp - 0x50], xmm0
movaps xmm0, xmm5
movups xmmword [ebp - 0x60], xmm1
aesenc xmm0, xmm6
movaps xmm6, xmm4
movaps xmm1, xmm7
movups xmm4, xmmword [ebp - 0x60]
aesenc xmm6, xmmword [ebp - 0x40]
aesenc xmm1, xmm5
movups xmm5, xmmword [ebp - 0x40]
aesenc xmm4, xmm3
movaps xmm3, xmmword [ebp - 0x30]
aesenc xmm3, xmmword [ebp - 0x60]
pxor xmm3, xmmword [ebp - 0x20]
aesenc xmm5, xmm7
movups xmm7, xmmword [ebp - 0x50]
pxor xmm5, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x30], xmm3
movaps xmm3, xmm0
aesenc xmm3, xmm7
aesenc xmm7, xmmword [ebp - 0x30]
pxor xmm7, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x60], xmm3
movaps xmm3, xmm1
aesenc xmm3, xmm0
movaps xmm0, xmm5
aesenc xmm0, xmm1
movups xmmword [ebp - 0x40], xmm5
movaps xmm5, xmm2
movaps xmm1, xmm4
aesenc xmm1, xmm2
movaps xmm2, xmmword [ebp - 0x30]
aesenc xmm5, xmm6
aesenc xmm2, xmm4
aesenc xmm6, xmmword [ebp - 0x40]
pxor xmm6, xmmword [ebp - 0x20]
movaps xmm4, xmm3
aesenc xmm4, xmmword [ebp - 0x60]
movups xmmword [ebp - 0x40], xmm4
movaps xmm4, xmm0
aesenc xmm4, xmm3
movups xmmword [ebp - 0x50], xmm7
movaps xmm7, xmm1
movaps xmm3, xmm6
aesenc xmm3, xmm0
movaps xmm0, xmm2
aesenc xmm0, xmm1
movaps xmm1, xmmword [ebp - 0x50]
aesenc xmm1, xmm2
movups xmm2, xmmword [ebp - 0x60]
aesenc xmm7, xmm5
aesenc xmm5, xmm6
aesenc xmm2, xmmword [ebp - 0x50]
pxor xmm2, xmmword [ebp - 0x20]
pxor xmm5, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x60], xmm2
movaps xmm2, xmm4
movaps xmm6, xmmword [ebp - 0x20]
aesenc xmm2, xmmword [ebp - 0x40]
movups xmmword [ebp - 0x50], xmm2
movaps xmm2, xmm3
aesenc xmm2, xmm4
movaps xmm4, xmm5
aesenc xmm4, xmm3
movaps xmm3, xmm0
aesenc xmm3, xmm7
movups xmmword [ebp - 0x30], xmm3
aesenc xmm7, xmm5
pxor xmm7, xmmword [ebp - 0x20]
movaps xmm3, xmm1
movups xmm5, xmmword [ebp - 0x30]
aesenc xmm3, xmm0
movups xmm0, xmmword [ebp - 0x60]
aesenc xmm0, xmm1
movups xmm1, xmmword [ebp - 0x40]
aesenc xmm1, xmmword [ebp - 0x60]
pxor xmm1, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x40], xmm1
movaps xmm1, xmm2
aesenc xmm1, xmmword [ebp - 0x50]
movups xmmword [ebp - 0x60], xmm1
movaps xmm1, xmm4
aesenc xmm1, xmm2
movaps xmm2, xmm7
aesenc xmm2, xmm4
movaps xmm4, xmm3
aesenc xmm4, xmm5
aesenc xmm5, xmm7
movups xmmword [ebp - 0x30], xmm4
movaps xmm4, xmm0
movaps xmm7, xmm1
aesenc xmm7, xmmword [ebp - 0x60]
aesenc xmm4, xmm3
movups xmm3, xmmword [ebp - 0x40]
movups xmmword [ebp - 0x20], xmm7
aesenc xmm3, xmm0
movups xmm0, xmmword [ebp - 0x50]
movups xmmword [edx + 0x70], xmm7
pxor xmm5, xmm6
aesenc xmm0, xmmword [ebp - 0x40]
movaps xmm7, xmm2
pxor xmm0, xmm6
aesenc xmm7, xmm1
movaps xmm1, xmm5
movups xmmword [edx + 0x60], xmm7
aesenc xmm1, xmm2
movups xmmword [ebp - 0x40], xmm7
movaps xmm2, xmm4
movups xmmword [edx + 0x50], xmm1
aesenc xmm2, xmmword [ebp - 0x30]
movaps xmm7, xmm3
movups xmmword [edx + 0x30], xmm2
aesenc xmm7, xmm4
movups xmmword [ebp - 0x50], xmm2
movups xmmword [edx + 0x20], xmm7
mov eax, dword [ebp - 8]
movaps xmm2, xmm0
aesenc xmm2, xmm3
movups xmmword [edx + 0x10], xmm2
movups xmm3, xmmword [ebp - 0x60]
aesenc xmm3, xmm0
pxor xmm3, xmm6
movups xmmword [edx], xmm3
movups xmm0, xmmword [ebp - 0x30]
aesenc xmm0, xmm5
pxor xmm0, xmm6
movups xmmword [edx + 0x40], xmm0
cmp eax, 0x10
jne 0x41271f
pxor xmm7, xmmword [ebp - 0x50]
pxor xmm1, xmm0
pxor xmm1, xmmword [ebp - 0x40]
pxor xmm2, xmm3
mov eax, dword [ebp - 4]
pxor xmm1, xmm7
pxor xmm1, xmm2
movups xmmword [eax], xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 0x20
jne 0x412755
mov eax, dword [ebp - 4]
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x40]
pxor xmm7, xmmword [ebp - 0x50]
pxor xmm2, xmm3
pxor xmm0, xmmword [ebp - 0x20]
pxor xmm2, xmm7
pxor xmm1, xmm0
movups xmmword [eax], xmm2
movups xmmword [eax + 0x10], xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
mov eax, dword [ebp - 4]
push 0
push eax
call fcn.00431040
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret