Function at 0x41e200
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ebx
and esp, 0xfffffff0
sub esp, 0x10
movdqa xmm7, xmmword [eax + 0x10]
pshufd xmm0, xmm7, 0x55
movdqa xmm3, xmmword [eax]
movd eax, xmm0
movdqa xmm4, xmm3
movaps xmmword [edx], xmm3
movd edx, xmm0
shr eax, 0x18
pslldq xmm4, 4
movaps xmmword [ecx], xmm7
movzx ecx, dl
movzx edx, dh
movzx eax, byte [eax + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl eax, 0x18
or eax, ecx
movd ecx, xmm0
shl edx, 8
pshufd xmm0, xmm7, 0xff
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 0x10
or eax, ecx
movd ecx, xmm0
or eax, edx
movd edx, xmm0
movzx ebx, cl
movzx ecx, ch
shr edx, 0x18
movzx ebx, byte [ebx + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl ecx, 8
shl edx, 0x18
or edx, ebx
movd ebx, xmm0
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + str.cw]
shl ebx, 0x10
or edx, ebx
or edx, ecx
mov ecx, eax
ror ecx, 8
mov dword [esp + 4], edx
xor ecx, 1
movd xmm1, dword [esp + 4]
mov dword [esp + 0xc], ecx
mov ecx, edx
ror ecx, 8
xor ecx, 1
mov dword [esp + 8], ecx
movd xmm2, dword [esp + 8]
mov dword [esp + 8], eax
movd xmm0, dword [esp + 8]
punpckldq xmm1, xmm2
movd xmm2, dword [esp + 0xc]
punpckldq xmm0, xmm2
movdqa xmm2, xmm4
pslldq xmm2, 4
pxor xmm4, xmm2
punpcklqdq xmm0, xmm1
movdqa xmm5, xmm2
pxor xmm4, xmm3
pslldq xmm5, 4
pshufd xmm0, xmm0, 0xff
pxor xmm4, xmm5
pxor xmm4, xmm0
movdqa xmm0, xmm4
movdqa xmm5, xmm4
call fcn.0041e110
movdqa xmm2, xmm7
mov eax, dword [ebp + 8]
pshufd xmm4, xmm0, 0xaa
pslldq xmm2, 4
movdqa xmm1, xmm2
movaps xmmword [eax], xmm5
pslldq xmm1, 4
movdqa xmm0, xmm1
mov eax, dword [ebp + 0xc]
pxor xmm1, xmm2
pslldq xmm0, 4
pxor xmm7, xmm1
pxor xmm7, xmm0
pxor xmm7, xmm4
pshufd xmm0, xmm7, 0x55
movaps xmmword [eax], xmm7
movd eax, xmm0
movd edx, xmm0
shr eax, 0x18
movzx ecx, dl
movzx edx, dh
movzx eax, byte [eax + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl eax, 0x18
or eax, ecx
movd ecx, xmm0
shl edx, 8
pshufd xmm0, xmm7, 0xff
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 0x10
or eax, ecx
movd ecx, xmm0
or eax, edx
movd edx, xmm0
movzx ebx, cl
movzx ecx, ch
shr edx, 0x18
movzx ebx, byte [ebx + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl edx, 0x18
shl ecx, 8
or edx, ebx
movd ebx, xmm0
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + str.cw]
shl ebx, 0x10
or edx, ebx
or edx, ecx
mov ecx, eax
ror ecx, 8
mov dword [esp + 4], edx
xor ecx, 2
movd xmm0, dword [esp + 4]
mov dword [esp + 0xc], ecx
mov ecx, edx
ror ecx, 8
xor ecx, 2
mov dword [esp + 8], ecx
movd xmm3, dword [esp + 8]
mov dword [esp + 8], eax
movd xmm6, dword [esp + 8]
punpckldq xmm0, xmm3
movd xmm3, dword [esp + 0xc]
punpckldq xmm6, xmm3
punpcklqdq xmm6, xmm0
pshufd xmm4, xmm6, 0xff
movdqa xmm6, xmm5
pslldq xmm6, 4
movdqa xmm0, xmm6
pslldq xmm0, 4
movdqa xmm1, xmm0
pxor xmm0, xmm6
pslldq xmm1, 4
movdqa xmm6, xmm0
pxor xmm6, xmm1
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqa xmm0, xmm6
movdqa xmm4, xmm6
call fcn.0041e110
movdqa xmm2, xmm7
mov eax, dword [ebp + 0x10]
pshufd xmm0, xmm0, 0xaa
pslldq xmm2, 4
movdqa xmm1, xmm2
movaps xmmword [eax], xmm6
pslldq xmm1, 4
movdqa xmm3, xmm1
mov eax, dword [ebp + 0x14]
pxor xmm1, xmm2
pslldq xmm3, 4
pxor xmm1, xmm3
pxor xmm1, xmm0
pxor xmm7, xmm1
pshufd xmm0, xmm7, 0x55
movaps xmmword [eax], xmm7
movd eax, xmm0
movd edx, xmm0
shr eax, 0x18
movzx ecx, dl
movzx edx, dh
movzx eax, byte [eax + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl eax, 0x18
or eax, ecx
movd ecx, xmm0
shl edx, 8
pshufd xmm0, xmm7, 0xff
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 0x10
or eax, ecx
movd ecx, xmm0
or eax, edx
movd edx, xmm0
movzx ebx, cl
movzx ecx, ch
shr edx, 0x18
movzx ebx, byte [ebx + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl ecx, 8
shl edx, 0x18
or edx, ebx
movd ebx, xmm0
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + str.cw]
shl ebx, 0x10
or edx, ebx
or edx, ecx
mov ecx, eax
ror ecx, 8
mov dword [esp + 4], edx
xor ecx, 4
movd xmm0, dword [esp + 4]
mov dword [esp + 0xc], ecx
mov ecx, edx
ror ecx, 8
xor ecx, 4
mov dword [esp + 8], ecx
movd xmm3, dword [esp + 8]
mov dword [esp + 8], eax
movd xmm5, dword [esp + 8]
punpckldq xmm0, xmm3
movd xmm3, dword [esp + 0xc]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm0
pshufd xmm6, xmm5, 0xff
movdqa xmm5, xmm4
pslldq xmm5, 4
movdqa xmm1, xmm5
pslldq xmm1, 4
movdqa xmm0, xmm1
pxor xmm1, xmm5
pslldq xmm0, 4
movdqa xmm5, xmm1
pxor xmm5, xmm0
pxor xmm5, xmm6
movdqa xmm6, xmm5
pxor xmm6, xmm4
movdqa xmm0, xmm6
call fcn.0041e110
movdqa xmm4, xmm7
mov eax, dword [ebp + 0x18]
pshufd xmm0, xmm0, 0xaa
pslldq xmm4, 4
movdqa xmm1, xmm4
movaps xmmword [eax], xmm6
pslldq xmm1, 4
pxor xmm4, xmm1
mov eax, dword [ebp + 0x1c]
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm4, xmm2
pxor xmm4, xmm0
pxor xmm4, xmm7
pshufd xmm0, xmm4, 0x55
movaps xmmword [eax], xmm4
movd eax, xmm0
movd edx, xmm0
shr eax, 0x18
movzx ecx, dl
movzx edx, dh
movzx eax, byte [eax + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl eax, 0x18
or eax, ecx
movd ecx, xmm0
shl edx, 8
pshufd xmm0, xmm4, 0xff
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 0x10
or eax, ecx
movd ecx, xmm0
or eax, edx
movd edx, xmm0
movzx ebx, cl
movzx ecx, ch
shr edx, 0x18
movzx ebx, byte [ebx + str.cw]
movzx ecx, byte [ecx + str.cw]
movzx edx, byte [edx + str.cw]
shl ecx, 8
shl edx, 0x18
or edx, ebx
movd ebx, xmm0
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + str.cw]
shl ebx, 0x10
or edx, ebx
or edx, ecx
mov ecx, eax
ror ecx, 8
xor ecx, 8
mov dword [esp + 0xc], ecx
mov ecx, edx
ror ecx, 8
xor ecx, 8
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
movd xmm3, dword [esp + 8]
mov dword [esp + 8], eax
movd xmm7, dword [esp + 0xc]
movd xmm0, dword [esp + 4]
movd xmm5, dword [esp + 8]
punpckldq xmm0, xmm3
punpckldq xmm5, xmm7
punpcklqdq xmm5, xmm0
pshufd xmm2, xmm5, 0xff
movdqa xmm5, xmm6
pslldq xmm5, 4
movdqa xmm1, xmm5
pslldq xmm1, 4
movdqa xmm0, xmm1
pxor xmm1, xmm5
pslldq xmm0, 4
movdqa xmm5, xmm1
pxor xmm5, xmm0
pxor xmm5, xmm2
pxor xmm5, xmm6
movdqa xmm0, xmm5
call fcn.0041e110
movdqa xmm2, xmm4
mov eax, dword [ebp + 0x20]
pshufd xmm0, xmm0, 0xaa
pslldq xmm2, 4
movdqa xmm1, xmm2
movaps xmmword [eax], xmm5
pslldq xmm1, 4
movdqa xmm3, xmm1
mov eax, dword [ebp + 0x24]
pxor xmm1, xmm2
pslldq xmm3, 4
pxor xmm1, xmm3
pxor xmm1, xmm0
pxor xmm4, xmm1
movaps xmmword [eax], xmm4
mov ebx, dword [ebp - 4]
leave
ret