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

Disassembly:
leave
dec esp
mov eax, dword [esp + 0x28]
dec eax
cmp edx, 1
jne 0x408b74
inc ecx
movups xmm2, xmmword [eax]
movups xmm3, xmmword [edi]
mov edx, dword [ecx + 0xf0]
movups xmm0, xmmword [ecx]
dec esp
lea ebx, [esp]
push ebp
dec eax
sub esp, 0x120
dec eax
and esp, 0xfffffff0
inc ecx
movaps xmmword [ebx - 0xa8], xmm6
inc ecx
movaps xmmword [ebx - 0x98], xmm7
inc ebp
movaps xmmword [ebx - 0x88], xmm0
inc ebp
movaps xmmword [ebx - 0x78], xmm1
inc ebp
movaps xmmword [ebx - 0x68], xmm2
inc ebp
movaps xmmword [ebx - 0x58], xmm3
inc ebp
movaps xmmword [ebx - 0x48], xmm4
inc ebp
movaps xmmword [ebx - 0x38], xmm5
inc ebp
movaps xmmword [ebx - 0x28], xmm6
inc ebp
movaps xmmword [ebx - 0x18], xmm7
inc ecx
movq mm2, qword [eax]
movdqu xmm0, xmmword [ecx]
inc ebp
mov eax, dword [eax + 0xc]
pxor xmm2, xmm0
mov ebp, dword [ecx + 0xc]
movdqa xmmword [esp], xmm2
inc ecx
bswap eax
movdqa xmm3, xmm2
movdqa xmm4, xmm2
movdqa xmm5, xmm2
movdqa xmmword [esp + 0x40], xmm2
movdqa xmmword [esp + 0x50], xmm2
movdqa xmmword [esp + 0x60], xmm2
dec ecx
mov edx, edx
movdqa xmmword [esp + 0x70], xmm2
dec ecx
lea eax, [eax + 1]
dec ecx
lea edx, [eax + 2]
bswap eax
bswap edx
xor eax, ebp
xor edx, ebp
pinsrd xmm3, eax, 3
dec ecx
lea eax, [eax + 3]
movdqa xmmword [esp + 0x10], xmm3
pinsrd xmm4, edx, 3
bswap eax
dec esp
mov edx, edx
dec ebp
lea edx, [eax + 4]
movdqa xmmword [esp + 0x20], xmm4
xor eax, ebp
inc ecx
bswap edx
pinsrd xmm5, eax, 3
inc ecx
xor edx, ebp
movdqa xmmword [esp + 0x30], xmm5
dec ebp
lea ecx, [eax + 5]
inc esp
mov dword [esp + 0x4c], edx
inc ecx
bswap ecx
dec ebp
lea edx, [eax + 6]
mov eax, dword [ecx + 0xf0]
inc ecx
xor ecx, ebp
inc ecx
bswap edx
inc esp
mov dword [esp + 0x5c], ecx
inc ecx
xor edx, ebp
dec ebp
lea ecx, [eax + 7]
inc esp
mov dword [esp + 0x6c], edx
inc ecx
bswap ecx
dec esp
lea edx, [0x13cff2]
inc ebp
mov edx, dword [edx + 4]
inc ecx
xor ecx, ebp
inc ecx
and edx, 0x4400000
inc esp
mov dword [esp + 0x7c], ecx
movups xmm1, xmmword [ecx + 0x10]
movdqa xmm6, xmmword [esp + 0x40]
movdqa xmm7, xmmword [esp + 0x50]
dec eax
cmp edx, 8
jb 0x40926e
dec eax
sub edx, 6
inc ecx
cmp edx, 0x400000
je 0x408cd4
dec eax
lea ecx, [ecx + 0x80]
dec eax
sub edx, 2
jmp 0x408e54
shl eax, 4
inc ecx
mov edx, 0x30
bswap ebp
dec eax
lea ecx, [ecx + eax + 0x20]
dec ecx
sub edx, eax
jmp 0x408cf4
inc ecx
add eax, 6
inc edx
movups xmm0, xmmword [ecx + edx - 0x30]
aesenc xmm2, xmm1
inc esp
mov eax, eax
xor eax, ebp
aesenc xmm3, xmm1
movbe dword [esp + 0xc], eax
inc ecx
lea eax, [eax + 1]
aesenc xmm4, xmm1
xor eax, ebp
movbe dword [esp + 0x1c], eax
aesenc xmm5, xmm1
inc ecx
lea eax, [eax + 2]
xor eax, ebp
aesenc xmm6, xmm1
movbe dword [esp + 0x2c], eax
inc ecx
lea eax, [eax + 3]
aesenc xmm7, xmm1
inc edx
movups xmm1, xmmword [ecx + edx - 0x20]
xor eax, ebp
aesenc xmm2, xmm0
movbe dword [esp + 0x3c], eax
inc ecx
lea eax, [eax + 4]
aesenc xmm3, xmm0
xor eax, ebp
movbe dword [esp + 0x4c], eax
aesenc xmm4, xmm0
inc ecx
lea eax, [eax + 5]
xor eax, ebp
aesenc xmm5, xmm0
movbe dword [esp + 0x5c], eax
dec esp
mov eax, edx
aesenc xmm6, xmm0
aesenc xmm7, xmm0
inc edx
movups xmm0, xmmword [ecx + edx - 0x10]
call fcn.00408164
inc esp
movq mm0, qword [edi]
inc esp
movq mm1, qword [edi + 0x10]
inc esp
movq mm2, qword [edi + 0x20]
inc esp
movq mm3, qword [edi + 0x30]
inc esp
movq mm4, qword [edi + 0x40]
inc esp
movq mm5, qword [edi + 0x50]
dec eax
lea edi, [edi + 0x60]
inc edx
movups xmm1, xmmword [ecx + edx - 0x40]
inc sp
pxor mm0, mm2
movaps xmm2, xmmword [esp]
inc sp
pxor mm1, mm3
movaps xmm3, xmmword [esp + 0x10]
inc sp
pxor mm2, mm4
movaps xmm4, xmmword [esp + 0x20]
inc sp
pxor mm3, mm5
movaps xmm5, xmmword [esp + 0x30]
inc sp
pxor mm4, mm6
movaps xmm6, xmmword [esp + 0x40]
inc sp
pxor mm5, mm7
movaps xmm7, xmmword [esp + 0x50]
inc esp
movq qword [esi], mm0
inc esp
movq qword [esi + 0x10], mm1
inc esp
movq qword [esi + 0x20], mm2
inc esp
movq qword [esi + 0x30], mm3
inc esp
movq qword [esi + 0x40], mm4
inc esp
movq qword [esi + 0x50], mm5
dec eax
lea esi, [esi + 0x60]
dec eax
sub edx, 6
jae 0x408cf4
dec eax
add edx, 6
je 0x409436
inc ecx
lea eax, [edx - 0x30]
dec edx
lea ecx, [ecx + edx - 0x50]
neg eax
shr eax, 4
jmp 0x40926e
inc ecx
add eax, 8
inc sp
movq mm0, qword [esp + 0x60]
aesenc xmm2, xmm1
inc ebp
mov ecx, eax
inc sp
movq mm1, qword [esp + 0x70]
aesenc xmm3, xmm1
inc ecx
bswap ecx
movups xmm0, xmmword [ecx - 0x60]
aesenc xmm4, xmm1
inc ecx
xor ecx, ebp
nop
aesenc xmm5, xmm1
inc esp
mov dword [esp + 0xc], ecx
dec ebp
lea ecx, [eax + 1]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
inc sp
invalid
dec eax
lea ecx, [ecx + 0x10]
dec eax
cmp edx, 4
jb 0x4093d4
je 0x409354
shl eax, 4
inc sp
movq mm0, qword [esp + 0x60]
inc bp
pxor mm1, mm1
movups xmm0, xmmword [ecx + 0x10]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
dec eax
lea ecx, [eax + ecx + 0x10]
dec eax
neg eax
aesenc xmm4, xmm1
dec eax
add eax, 0x10
inc esp
movups xmm2, xmmword [edi]
aesenc xmm5, xmm1
aesenc xmm6, xmm1
inc esp
movups xmm3, xmmword [edi + 0x10]
inc esp
movups xmm4, xmmword [edi + 0x20]
aesenc xmm7, xmm1
inc sp
invalid
aesenc xmm2, xmm1
dec eax
lea ecx, [ecx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [ecx]
jne 0x409354
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
inc esp
movups xmm2, xmmword [edi]
inc esp
movups xmm3, xmmword [edi + 0x10]
aesenclast xmm4, xmm1
aesenclast xmm5, xmm1
inc esp
movups xmm4, xmmword [edi + 0x20]
inc esp
movups xmm5, xmmword [edi + 0x30]
inc ecx
xorps xmm2, xmm2
movups xmmword [esi], xmm2
inc ecx
xorps xmm3, xmm3
movups xmmword [esi + 0x10], xmm3
inc cx
pxor mm4, mm4
movdqu xmmword [esi + 0x20], xmm4
inc cx
pxor mm5, mm5
movdqu xmmword [esi + 0x30], xmm5
jmp 0x409436
aesenc xmm2, xmm1
dec eax
lea ecx, [ecx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
movups xmm1, xmmword [ecx]
jne 0x4093d4
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
aesenclast xmm4, xmm1
inc esp
movups xmm2, xmmword [edi]
inc ecx
xorps xmm2, xmm2
movups xmmword [esi], xmm2
dec eax
cmp edx, 2
jb 0x409436
inc esp
movups xmm3, xmmword [edi + 0x10]
inc ecx
xorps xmm3, xmm3
movups xmmword [esi + 0x10], xmm3
je 0x409436
inc esp
movups xmm4, xmmword [edi + 0x20]
inc ecx
xorps xmm4, xmm4
movups xmmword [esi + 0x20], xmm4
xorps xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
invalid