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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
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 xmm3, xmmword [edi + 0x20]
movups xmm7, xmmword [edi + 0x30]
movups xmm6, xmmword [edi + 0x50]
aesenc xmm6, xmmword [edi + 0x60]
movups xmm5, xmmword [edi + 0x40]
aesenc xmm5, xmmword [edi + 0x50]
punpckldq xmm1, xmm2
movd xmm4, esi
punpckldq xmm4, xmm0
movaps xmm0, xmm3
punpckldq xmm4, xmm1
movups xmm1, xmmword [edi + 0x60]
xorps xmm4, xmm3
aesenc xmm1, xmmword [edi + 0x70]
aesenc xmm0, xmm7
aesenc xmm7, xmmword [edi + 0x40]
movaps xmmword [esp + 0x10], xmm4
movups xmm4, xmmword [edi + 0x10]
xorps xmm7, xmmword [esp + 0x10]
aesenc xmm4, xmm3
movups xmm3, xmmword [edi]
aesenc xmm3, xmmword [edi + 0x10]
movaps xmmword [esp + 0x20], xmm1
movaps xmm2, xmm3
movups xmm1, xmmword [edi + 0x70]
aesenc xmm1, xmmword [edi]
xorps xmm1, xmmword [esp + 0x10]
movups xmmword [esp + 0x30], xmm0
aesenc xmm2, xmm4
movaps xmm0, xmm6
aesenc xmm0, xmmword [esp + 0x20]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmm5
movups xmmword [esp + 0x50], xmm1
aesenc xmm0, xmm6
movaps xmm6, xmm4
movaps xmm1, xmm7
movups xmm4, xmmword [esp + 0x50]
aesenc xmm6, xmmword [esp + 0x30]
aesenc xmm1, xmm5
movups xmm5, xmmword [esp + 0x30]
aesenc xmm4, xmm3
movaps xmm3, xmmword [esp + 0x20]
aesenc xmm3, xmmword [esp + 0x50]
xorps xmm3, xmmword [esp + 0x10]
aesenc xmm5, xmm7
movups xmm7, xmmword [esp + 0x40]
xorps xmm5, xmmword [esp + 0x10]
movaps xmmword [esp + 0x20], xmm3
movaps xmm3, xmm0
aesenc xmm3, xmm7
aesenc xmm7, xmmword [esp + 0x20]
xorps xmm7, xmmword [esp + 0x10]
movups xmmword [esp + 0x50], xmm3
movaps xmm3, xmm1
aesenc xmm3, xmm0
movaps xmm0, xmm5
aesenc xmm0, xmm1
movups xmmword [esp + 0x30], xmm5
movaps xmm5, xmm2
movaps xmm1, xmm4
aesenc xmm1, xmm2
movaps xmm2, xmmword [esp + 0x20]
aesenc xmm5, xmm6
aesenc xmm6, xmmword [esp + 0x30]
aesenc xmm2, xmm4
movups xmmword [esp + 0x40], xmm7
xorps xmm6, xmmword [esp + 0x10]
movaps xmm4, xmm3
aesenc xmm4, xmmword [esp + 0x50]
movups xmmword [esp + 0x30], xmm4
movaps xmm4, xmm0
movaps xmm7, xmm1
aesenc xmm4, xmm3
movaps xmm3, xmm6
aesenc xmm3, xmm0
movaps xmm0, xmm2
aesenc xmm0, xmm1
movaps xmm1, xmmword [esp + 0x40]
aesenc xmm1, xmm2
movups xmm2, xmmword [esp + 0x50]
aesenc xmm7, xmm5
aesenc xmm5, xmm6
aesenc xmm2, xmmword [esp + 0x40]
xorps xmm2, xmmword [esp + 0x10]
xorps xmm5, xmmword [esp + 0x10]
movups xmmword [esp + 0x50], xmm2
movaps xmm2, xmm4
movaps xmm6, xmmword [esp + 0x10]
aesenc xmm2, xmmword [esp + 0x30]
movups xmmword [esp + 0x40], xmm2
movaps xmm2, xmm3
aesenc xmm2, xmm4
movaps xmm4, xmm5
aesenc xmm4, xmm3
movaps xmm3, xmm0
aesenc xmm3, xmm7
movups xmmword [esp + 0x20], xmm3
aesenc xmm7, xmm5
xorps xmm7, xmmword [esp + 0x10]
movaps xmm3, xmm1
aesenc xmm3, xmm0
movups xmm0, xmmword [esp + 0x50]
movaps xmm5, xmm2
aesenc xmm5, xmmword [esp + 0x40]
aesenc xmm0, xmm1
movups xmm1, xmmword [esp + 0x30]
aesenc xmm1, xmmword [esp + 0x50]
xorps xmm1, xmmword [esp + 0x10]
movups xmmword [esp + 0x30], xmm1
movaps xmm1, xmm4
aesenc xmm1, xmm2
movups xmmword [esp + 0x50], xmm5
movups xmm5, xmmword [esp + 0x20]
movaps xmm2, xmm7
aesenc xmm2, xmm4
movaps xmm4, xmm3
aesenc xmm4, xmm5
movups xmmword [esp + 0x20], xmm4
aesenc xmm5, xmm7
movaps xmm4, xmm0
xorps xmm5, xmm6
aesenc xmm4, xmm3
movups xmm3, xmmword [esp + 0x30]
aesenc xmm3, xmm0
movups xmm0, xmmword [esp + 0x40]
movaps xmm7, xmm3
aesenc xmm0, xmmword [esp + 0x30]
xorps xmm0, xmm6
movups xmmword [esp + 0x40], xmm0
aesenc xmm7, xmm4
movaps xmm0, xmm1
movups xmmword [edi + 0x20], xmm7
aesenc xmm0, xmmword [esp + 0x50]
movups xmmword [edi + 0x70], xmm0
movaps xmm0, xmm2
aesenc xmm0, xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [edi + 0x60], xmm0
movaps xmm1, xmm4
aesenc xmm1, xmmword [esp + 0x20]
movaps xmm0, xmm5
movups xmmword [edi + 0x30], xmm1
aesenc xmm0, xmm2
movups xmm2, xmmword [esp + 0x40]
movups xmmword [edi + 0x50], xmm0
movups xmmword [esp + 0x30], xmm1
aesenc xmm2, xmm3
movups xmm3, xmmword [esp + 0x50]
mov eax, dword [ebp + 0xc]
movups xmmword [edi + 0x10], xmm2
movups xmm1, xmmword [esp + 0x20]
aesenc xmm3, xmmword [esp + 0x40]
xorps xmm3, xmm6
movups xmmword [edi], xmm3
aesenc xmm1, xmm5
xorps xmm1, xmm6
movups xmmword [edi + 0x40], xmm1
cmp eax, 0x10
jne 0x4209f0
xorps xmm7, xmmword [esp + 0x30]
xorps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x10]
xorps xmm2, xmm3
mov eax, dword [ebp + 8]
xorps xmm0, xmm7
xorps xmm0, xmm2
movups xmmword [eax], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x20
jne 0x420a23
mov eax, dword [ebp + 8]
xorps xmm2, xmm3
xorps xmm7, xmmword [esp + 0x30]
xorps xmm2, xmm7
movups xmmword [eax], xmm2
movups xmm1, xmmword [edi + 0x50]
movups xmm0, xmmword [edi + 0x60]
xorps xmm1, xmmword [edi + 0x40]
xorps xmm0, xmmword [edi + 0x70]
xorps xmm1, xmm0
movups xmmword [eax + 0x10], xmm1
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