Function at 0x414810
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, 0x38
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 xmm4, xmmword [edx + 0x30]
movups xmm3, xmmword [edx + 0x20]
movaps xmm5, xmm4
movups xmm6, xmmword [edx + 0x50]
aesenc xmm5, xmmword [edx + 0x40]
aesenc xmm3, xmm4
shl esi, 3
movd xmm2, eax
movd xmm1, edi
punpckldq xmm1, xmm2
movups xmm2, xmmword [edx]
aesenc xmm2, xmmword [edx + 0x10]
movd xmm0, esi
movd xmm7, ecx
punpckldq xmm7, xmm0
movaps xmm0, xmm3
punpckldq xmm7, xmm1
movups xmm1, xmmword [edx + 0x40]
pxor xmm7, xmm4
movups xmm4, xmmword [edx + 0x10]
aesenc xmm4, xmmword [edx + 0x20]
aesenc xmm1, xmm6
aesenc xmm6, xmmword [edx]
movaps xmmword [ebp - 0x30], xmm1
pxor xmm6, xmm7
movaps xmm1, xmm4
movaps xmmword [ebp - 0x20], xmm7
aesenc xmm1, xmm3
movaps xmm3, xmm2
movaps xmm7, xmm5
aesenc xmm7, xmmword [ebp - 0x30]
aesenc xmm3, xmm4
movaps xmm4, xmm6
aesenc xmm4, xmm2
movaps xmm2, xmmword [ebp - 0x30]
aesenc xmm2, xmm6
pxor xmm2, xmmword [ebp - 0x20]
aesenc xmm0, xmm5
movaps xmmword [ebp - 0x30], xmm2
movaps xmm5, xmm0
movaps xmm2, xmm1
aesenc xmm2, xmm0
movaps xmm0, xmm3
movaps xmm6, xmm2
aesenc xmm0, xmm1
movaps xmm1, xmm4
aesenc xmm1, xmm3
movaps xmm3, xmmword [ebp - 0x30]
aesenc xmm3, xmm4
aesenc xmm5, xmm7
aesenc xmm7, xmmword [ebp - 0x30]
pxor xmm7, xmmword [ebp - 0x20]
movaps xmm4, xmm0
aesenc xmm4, xmm2
movaps xmm2, xmm1
aesenc xmm2, xmm0
movaps xmm0, xmm3
aesenc xmm0, xmm1
movaps xmm1, xmm7
aesenc xmm6, xmm5
aesenc xmm1, xmm3
aesenc xmm5, xmm7
pxor xmm5, xmmword [ebp - 0x20]
movaps xmm7, xmm4
movaps xmm3, xmm2
aesenc xmm3, xmm4
movaps xmm4, xmm0
aesenc xmm7, xmm6
aesenc xmm4, xmm2
movaps xmm2, xmm1
mov eax, dword [ebp - 8]
aesenc xmm2, xmm0
movaps xmm0, xmm5
aesenc xmm0, xmm1
movaps xmm1, xmm3
aesenc xmm1, xmm7
movups xmmword [ebp - 0x30], xmm1
aesenc xmm6, xmm5
pxor xmm6, xmmword [ebp - 0x20]
movaps xmm1, xmm4
aesenc xmm1, xmm3
movaps xmm3, xmm2
aesenc xmm3, xmm4
movaps xmm4, xmm0
movaps xmm5, xmm3
aesenc xmm4, xmm2
movaps xmm2, xmm6
aesenc xmm7, xmm6
pxor xmm7, xmmword [ebp - 0x20]
movups xmm6, xmmword [ebp - 0x30]
aesenc xmm5, xmm1
aesenc xmm2, xmm0
movaps xmm0, xmm1
movups xmmword [ebp - 0x30], xmm5
aesenc xmm0, xmm6
movups xmmword [edx + 0x50], xmm0
movups xmm1, xmmword [ebp - 0x30]
aesenc xmm6, xmm7
pxor xmm6, xmmword [ebp - 0x20]
movups xmmword [edx + 0x40], xmm1
movaps xmm1, xmm4
movups xmmword [edx], xmm6
aesenc xmm1, xmm3
movups xmmword [edx + 0x30], xmm1
movaps xmm3, xmm2
aesenc xmm3, xmm4
movups xmmword [edx + 0x20], xmm3
movaps xmm4, xmm7
aesenc xmm4, xmm2
movups xmmword [edx + 0x10], xmm4
cmp eax, 0x10
jne 0x414a3d
pxor xmm0, xmmword [ebp - 0x30]
pxor xmm1, xmm3
mov eax, dword [ebp - 4]
pxor xmm1, xmm0
pxor xmm6, xmm4
pxor xmm1, xmm6
movups xmmword [eax], xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 0x20
jne 0x414a66
mov eax, dword [ebp - 4]
pxor xmm3, xmm4
pxor xmm0, xmmword [ebp - 0x30]
pxor xmm3, xmm6
pxor xmm0, xmm1
movups xmmword [eax], xmm3
movups xmmword [eax + 0x10], xmm0
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.004310e0
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret