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

Disassembly:
push ebp
push ebx
push edi
push esi
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push ebx
push edi
call fcn.00952a20
add esp, 8
test eax, eax
mov dword [ebp + 0x1e4], eax
jne 0x949379
push ebp
push ebx
push edi
push esi
call fcn.00949c40
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
pop esi
pop edi
pop ebx
pop ebp
jmp 0x952a80
push esi
sub esp, 0x48
cmp dword [esp + 0x54], 0x10
mov eax, 0x20001
jne 0x952dd2
mov ecx, dword [esp + 0x58]
cmp ecx, 0xa
je 0x952aa5
test ecx, ecx
jne 0x952dd2
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x50]
mov dword [edx + 0x1e4], 1
mov dword [edx + 0x1e0], ecx
lea eax, [edx + 0xf]
movdqu xmm0, xmmword [esi]
and eax, 0xfffffff0
movdqa xmm2, xmm0
aeskeygenassist xmm1, xmm0, 1
movdqa xmmword [eax], xmm0
pslldq xmm2, 4
pshufd xmm1, xmm1, 0xff
pxor xmm2, xmm0
movdqa xmm3, xmm2
pslldq xmm3, 4
pxor xmm3, xmm2
movdqa xmm0, xmm3
pslldq xmm0, 4
pxor xmm0, xmm1
pxor xmm0, xmm3
aeskeygenassist xmm1, xmm0, 2
movdqu xmmword [esp + 0x20], xmm0
pshufd xmm2, xmm1, 0xff
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm3, xmm1
pslldq xmm3, 4
pxor xmm3, xmm1
movdqa xmm0, xmm3
pslldq xmm0, 4
pxor xmm0, xmm2
pxor xmm0, xmm3
aeskeygenassist xmm2, xmm0, 4
movdqu xmmword [esp + 0x10], xmm0
pshufd xmm3, xmm2, 0xff
movdqa xmm2, xmm0
pslldq xmm2, 4
pxor xmm2, xmm0
movdqa xmm4, xmm2
pslldq xmm4, 4
pxor xmm4, xmm2
movdqa xmm0, xmm4
pslldq xmm0, 4
pxor xmm0, xmm3
pxor xmm0, xmm4
aeskeygenassist xmm3, xmm0, 8
movdqu xmmword [esp], xmm0
pshufd xmm4, xmm3, 0xff
movdqa xmm3, xmm0
pslldq xmm3, 4
pxor xmm3, xmm0
movdqa xmm5, xmm3
pslldq xmm5, 4
pxor xmm5, xmm3
movdqa xmm0, xmm5
pslldq xmm0, 4
pxor xmm0, xmm4
pxor xmm0, xmm5
aeskeygenassist xmm4, xmm0, 0x10
movdqu xmmword [esp + 0x30], xmm0
pshufd xmm5, xmm4, 0xff
movdqa xmm4, xmm0
pslldq xmm4, 4
pxor xmm4, xmm0
movdqa xmm6, xmm4
pslldq xmm6, 4
pxor xmm6, xmm4
movdqa xmm4, xmm6
pslldq xmm4, 4
pxor xmm4, xmm5
pxor xmm4, xmm6
aeskeygenassist xmm5, xmm4, 0x20
pshufd xmm6, xmm5, 0xff
movdqa xmm5, xmm4
pslldq xmm5, 4
pxor xmm5, xmm4
movdqa xmm7, xmm5
pslldq xmm7, 4
pxor xmm7, xmm5
movdqa xmm5, xmm7
pslldq xmm5, 4
pxor xmm5, xmm6
pxor xmm5, xmm7
movdqa xmm6, xmm5
pslldq xmm6, 4
pxor xmm6, xmm5
movdqa xmm7, xmm6
pslldq xmm7, 4
pxor xmm7, xmm6
aeskeygenassist xmm6, xmm5, 0x40
pshufd xmm0, xmm6, 0xff
movdqa xmm6, xmm7
pslldq xmm6, 4
pxor xmm6, xmm0
pxor xmm6, xmm7
movdqa xmm0, xmm6
pslldq xmm0, 4
pxor xmm0, xmm6
movdqa xmm7, xmm0
pslldq xmm7, 4
pxor xmm7, xmm0
aeskeygenassist xmm0, xmm6, 0x80
movdqa xmm3, xmm7
pshufd xmm1, xmm0, 0xff
pslldq xmm3, 4
pxor xmm3, xmm1
pxor xmm3, xmm7
movdqa xmm1, xmm3
pslldq xmm1, 4
pxor xmm1, xmm3
movdqa xmm0, xmm1
pslldq xmm0, 4
pxor xmm0, xmm1
aeskeygenassist xmm1, xmm3, 0x1b
movdqa xmm7, xmm0
pshufd xmm1, xmm1, 0xff
pslldq xmm7, 4
pxor xmm7, xmm1
pxor xmm7, xmm0
movdqa xmm0, xmm7
pslldq xmm0, 4
pxor xmm0, xmm7
movdqa xmm2, xmm0
pslldq xmm2, 4
pxor xmm2, xmm0
aeskeygenassist xmm0, xmm7, 0x36
movdqa xmm1, xmm2
pshufd xmm0, xmm0, 0xff
pslldq xmm1, 4
pxor xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x30]
movaps xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x10]
movaps xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp]
movaps xmmword [eax + 0x30], xmm0
aesimc xmm0, xmm7
movdqa xmmword [eax + 0x40], xmm2
movdqa xmmword [eax + 0x50], xmm4
movdqa xmmword [eax + 0x60], xmm5
movdqa xmmword [eax + 0x70], xmm6
movdqa xmmword [eax + 0x80], xmm3
movdqa xmmword [eax + 0x90], xmm7
movdqa xmmword [eax + 0xa0], xmm1
movdqa xmmword [eax + 0xb0], xmm0
aesimc xmm0, xmm3
movdqa xmmword [eax + 0xc0], xmm0
aesimc xmm0, xmm6
movdqa xmmword [eax + 0xd0], xmm0
aesimc xmm0, xmm5
movdqa xmmword [eax + 0xe0], xmm0
aesimc xmm0, xmm4
movdqa xmmword [eax + 0xf0], xmm0
aesimc xmm0, xmm2
movdqa xmmword [eax + 0x100], xmm0
movdqu xmm0, xmmword [esp]
aesimc xmm0, xmm0
movdqa xmmword [eax + 0x110], xmm0
movdqu xmm0, xmmword [esp + 0x10]
aesimc xmm0, xmm0
movdqa xmmword [eax + 0x120], xmm0
movdqu xmm0, xmmword [esp + 0x20]
aesimc xmm0, xmm0
movdqa xmmword [eax + 0x130], xmm0
xor eax, eax
add esp, 0x48
pop esi
ret