Function at 0x410f50
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x42e00c]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
push 0x118
lea eax, [esp + 0x1c]
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x14], esi
push 0
push eax
mov dword [esp + 0x20], ebx
call fcn.00413bd0
add esp, 0xc
cmp dword [0x430934], 0
jne 0x410fd5
mov eax, 1
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov ebx, dword [esp + 0x14]
mov dword [0x430b3c], eax
mov eax, ecx
mov dword [0x430b40], esi
mov esi, dword [esp + 0x10]
mov dword [0x430b44], ecx
mov dword [0x430b48], edx
mov dword [0x430b38], eax
mov dword [0x430934], 1
jmp 0x410fda
mov eax, dword [0x430b38]
test eax, 0x2000000
je 0x410ff5
lea ecx, [ebx - 8]
shr ecx, 2
and ecx, 3
je 0x410ff5
mov eax, 4
sub eax, ecx
jmp 0x410ff7
xor eax, eax
push dword [ebp + 8]
mov edx, esi
mov dword [ebx + 4], eax
lea ecx, [esp + 0x1c]
lea edi, [ebx + eax*4]
call fcn.0040fe10
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41123f
mov ecx, dword [esp + 0x18]
mov dword [ebx], ecx
cmp dword [0x430934], eax
jne 0x411067
mov eax, 1
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov ebx, dword [esp + 0x14]
mov dword [0x430b3c], eax
mov eax, ecx
mov dword [0x430b44], ecx
mov ecx, dword [esp + 0x18]
mov dword [0x430b40], esi
mov dword [0x430b48], edx
mov dword [0x430b38], eax
mov dword [0x430934], 1
jmp 0x41106c
mov eax, dword [0x430b38]
test eax, 0x2000000
mov eax, dword [esp + 0x1c]
je 0x4110bd
lea ecx, [esp + 0x20]
lea ecx, [ecx + eax*4]
mov eax, dword [ebx]
shl eax, 4
add eax, ecx
movups xmm0, xmmword [eax]
sub eax, 0x10
movups xmmword [edi + 8], xmm0
add edi, 0x18
cmp eax, ecx
jbe 0x4110b2
nop word [eax + eax]
aesimc xmm0, xmmword [eax]
movups xmmword [edi], xmm0
sub eax, 0x10
add edi, 0x10
cmp eax, ecx
ja 0x4110a0
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
jmp 0x41123f
lea eax, [eax + ecx*4]
lea ecx, [esp + 0x20]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 0xc], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 0x10], ecx
mov ecx, dword [eax + 0xc]
sub eax, 0x10
mov dword [edi + 0x14], ecx
add edi, 0x18
mov esi, dword [ebx]
dec esi
test esi, esi
jle 0x411229
nop
movzx ecx, byte [eax + 3]
dec esi
movzx edx, byte [ecx + 0x430b50]
movzx ecx, byte [eax + 2]
mov edx, dword [edx*4 + 0x430c50]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x432978]
movzx ecx, byte [eax + 1]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431978]
movzx ecx, byte [eax]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431d78]
mov dword [edi], edx
movzx ecx, byte [eax + 7]
movzx edx, byte [ecx + 0x430b50]
movzx ecx, byte [eax + 6]
mov edx, dword [edx*4 + 0x430c50]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x432978]
movzx ecx, byte [eax + 5]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431978]
movzx ecx, byte [eax + 4]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431d78]
mov dword [edi + 4], edx
movzx ecx, byte [eax + 0xb]
movzx edx, byte [ecx + 0x430b50]
movzx ecx, byte [eax + 0xa]
mov edx, dword [edx*4 + 0x430c50]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x432978]
movzx ecx, byte [eax + 9]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431978]
movzx ecx, byte [eax + 8]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431d78]
mov dword [edi + 8], edx
movzx ecx, byte [eax + 0xf]
movzx edx, byte [ecx + 0x430b50]
movzx ecx, byte [eax + 0xe]
mov edx, dword [edx*4 + 0x430c50]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x432978]
movzx ecx, byte [eax + 0xd]
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431978]
movzx ecx, byte [eax + 0xc]
sub eax, 0x10
movzx ecx, byte [ecx + 0x430b50]
xor edx, dword [ecx*4 + 0x431d78]
mov dword [edi + 0xc], edx
add edi, 0x10
test esi, esi
jg 0x4110f0
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov ecx, 0x118
lea eax, [esp + 0x18]
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x411250
mov ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00412408
mov esp, ebp
pop ebp
ret