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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x407468
sub esp, 4
mov eax, dword [0x4e6b60]
mov ecx, dword [esp + 0x10]
xor eax, ecx
mov edx, dword [0x4e6b64]
mov ebx, dword [esp + 0xc]
xor ebx, edx
mov ebp, dword [0x4e6b68]
xor eax, ebp
mov esi, edx
mul ebx
test ecx, ecx
je 0x4073e7
mov ebx, dword [esp + 8]
jmp 0x40740c
xor edx, eax
mov dword [esp + 0x14], edx
add esp, 4
ret
mov edi, dword [ebx]
xor eax, edi
mov edi, dword [ebx + 4]
xor edi, edx
xor eax, esi
xor edi, ebp
mov edx, eax
mov eax, edi
mul edx
add ecx, 0xfffffff8
nop
nop
add ebx, 8
cmp ecx, 8
ja 0x4073f1
cmp ecx, 4
jb 0x407426
mov edi, ebx
lea ecx, [ecx + ebx - 4]
mov ebx, dword [edi]
xor eax, ebx
mov ecx, dword [ecx]
xor ecx, edx
jmp 0x40744a
mov dword [esp], ebp
mov edi, ebx
lea ebx, [ecx + ebx - 1]
movzx ebp, byte [edi]
shr ecx, 1
movzx ecx, byte [edi + ecx]
shl ecx, 8
or ecx, ebp
movzx ebx, byte [ebx]
shl ebx, 0x10
or ecx, ebx
xor ecx, edx
mov ebp, dword [esp]
xor eax, esi
xor ecx, ebp
mov edx, eax
mov eax, ecx
mul edx
xor esi, eax
xor ebp, edx
mov eax, ebp
mul esi
nop
nop
xor eax, edx
mov dword [esp + 0x14], eax
add esp, 4
ret
call fcn.00455ea0
jmp 0x4073a0
movd xmm0, dword [esp + 8]
pinsrw xmm0, ebx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x4e6c60]
aesenc xmm0, xmm0
cmp ebx, 0x10
jb 0x45592b
je 0x45597e
cmp ebx, 0x20
jbe 0x455984
cmp ebx, 0x40
jbe 0x4559ca
jmp 0x455a6b
test ebx, ebx
je 0x455974
add eax, 0x10
test ax, 0xff0
je 0x455960
movdqu xmm1, xmmword [eax - 0x10]
add ebx, ebx
pand xmm1, xmmword [ebx*8 + 0x47bde0]
pxor xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movd dword [edx], xmm1
ret
movdqu xmm1, xmmword [eax + ebx - 0x20]
add ebx, ebx
pshufb xmm1, xmmword [ebx*8 + 0x47bee0]
jmp 0x455948
aesenc xmm0, xmm0
movd dword [edx], xmm0
ret
movdqu xmm1, xmmword [eax]
jmp 0x455948
pxor xmm1, xmmword [0x4e6c70]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [eax]
movdqu xmm3, xmmword [eax + ebx - 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movd dword [edx], xmm2
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x4e6c70]
pxor xmm2, xmmword [0x4e6c80]
pxor xmm3, xmmword [0x4e6c90]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
pxor xmm4, xmm0
pxor xmm5, xmm1
pxor xmm6, xmm2
pxor xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x4e6c70]
pxor xmm2, xmmword [0x4e6c80]
pxor xmm3, xmmword [0x4e6c90]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax + ebx - 0x40]
movdqu xmm5, xmmword [eax + ebx - 0x30]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
dec ebx
shr ebx, 6
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
movdqu xmm3, xmmword [eax + 0x30]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
add eax, 0x40
dec ebx
jne 0x455aca
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
cmp byte [0x4e69cc], 0
je 0x45717a
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x10]
jmp 0x4558f0
jmp 0x4073a0