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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x28
mov ecx, dword [ebp + 0x14]
xor edx, edx
push esi
mov esi, dword [ebp + 0x10]
xor eax, eax
shld edx, esi, 3
shld eax, ecx, 3
shl esi, 3
shl ecx, 3
push edi
mov edi, dword [ebp + 0x18]
movd xmm2, eax
movd xmm0, ecx
movd xmm1, edx
movups xmm4, xmmword [edi + 0x30]
movups xmm3, xmmword [edi + 0x20]
movaps xmm5, xmm4
movups xmm6, xmmword [edi + 0x50]
punpckldq xmm1, xmm2
movups xmm2, xmmword [edi]
aesenc xmm2, xmmword [edi + 0x10]
aesenc xmm5, xmmword [edi + 0x40]
aesenc xmm3, xmm4
movd xmm7, esi
punpckldq xmm7, xmm0
movaps xmm0, xmm3
punpckldq xmm7, xmm1
movups xmm1, xmmword [edi + 0x40]
xorps xmm7, xmm4
movups xmm4, xmmword [edi + 0x10]
aesenc xmm4, xmmword [edi + 0x20]
aesenc xmm1, xmm6
aesenc xmm6, xmmword [edi]
movaps xmmword [esp + 0x10], xmm1
xorps xmm6, xmm7
movaps xmm1, xmm4
movaps xmmword [esp + 0x20], xmm7
aesenc xmm1, xmm3
movaps xmm3, xmm2
movaps xmm7, xmm5
aesenc xmm7, xmmword [esp + 0x10]
aesenc xmm3, xmm4
movaps xmm4, xmm6
aesenc xmm4, xmm2
movaps xmm2, xmmword [esp + 0x10]
aesenc xmm2, xmm6
xorps xmm2, xmmword [esp + 0x20]
aesenc xmm0, xmm5
movaps xmmword [esp + 0x10], 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 [esp + 0x10]
aesenc xmm3, xmm4
aesenc xmm5, xmm7
aesenc xmm7, xmmword [esp + 0x10]
xorps xmm7, xmmword [esp + 0x20]
movaps xmm4, xmm0
aesenc xmm4, xmm2
movaps xmm2, xmm1
aesenc xmm2, xmm0
movaps xmm0, xmm3
aesenc xmm0, xmm1
movaps xmm1, xmm7
aesenc xmm1, xmm3
aesenc xmm6, xmm5
movaps xmm3, xmm2
aesenc xmm5, xmm7
xorps xmm5, xmmword [esp + 0x20]
movaps xmm7, xmm4
aesenc xmm3, xmm4
movaps xmm4, xmm0
aesenc xmm4, xmm2
movaps xmm2, xmm1
aesenc xmm7, xmm6
aesenc xmm2, xmm0
movaps xmm0, xmm5
mov eax, dword [ebp + 0xc]
aesenc xmm0, xmm1
movaps xmm1, xmm3
aesenc xmm1, xmm7
aesenc xmm6, xmm5
movaps xmm5, xmmword [esp + 0x20]
xorps xmm6, xmm5
movups xmmword [esp + 0x20], xmm1
aesenc xmm7, xmm6
movaps xmm1, xmm4
xorps xmm7, xmm5
aesenc xmm1, xmm3
movaps xmm3, xmm2
aesenc xmm3, xmm4
movaps xmm4, xmm0
aesenc xmm4, xmm2
movaps xmm2, xmm6
movaps xmm6, xmm3
aesenc xmm2, xmm0
movaps xmm0, xmm1
aesenc xmm0, xmmword [esp + 0x20]
movups xmmword [edi + 0x50], xmm0
aesenc xmm6, xmm1
movups xmmword [edi + 0x40], xmm6
movaps xmm1, xmm4
movups xmmword [esp + 0x10], xmm0
aesenc xmm1, xmm3
movaps xmm0, xmm7
movups xmmword [edi + 0x30], xmm1
movaps xmm3, xmm2
aesenc xmm0, xmm2
movups xmmword [edi + 0x10], xmm0
movups xmm2, xmmword [esp + 0x20]
aesenc xmm3, xmm4
movups xmmword [edi + 0x20], xmm3
aesenc xmm2, xmm7
xorps xmm2, xmm5
movups xmmword [edi], xmm2
cmp eax, 0x10
jne 0x422f15
xorps xmm6, xmmword [esp + 0x10]
xorps xmm1, xmm3
mov eax, dword [ebp + 8]
xorps xmm6, xmm1
xorps xmm0, xmm2
xorps xmm6, xmm0
movups xmmword [eax], xmm6
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x20
jne 0x422f3c
mov eax, dword [ebp + 8]
xorps xmm0, xmm3
xorps xmm0, xmm2
movups xmmword [eax], xmm0
movups xmm0, xmmword [edi + 0x50]
xorps xmm0, xmmword [edi + 0x40]
xorps xmm0, xmmword [edi + 0x30]
movups xmmword [eax + 0x10], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push eax
push 0
push dword [ebp + 8]
call fcn.0042d500
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret