Function at 0x49c910
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x44
xor eax, eax
cmp dword [0x520ed0], 2
push ebx
push esi
push edi
jl 0x49ce00
xor ecx, ecx
mov edx, 0x522050
nop dword [eax]
nop word [eax + eax]
movzx eax, word [ecx + 0x4eb438]
movd xmm0, eax
pmovzxbd xmm7, xmm0
movq xmm0, qword [0x4ea890]
movaps xmm6, xmm7
movaps xmm3, xmm7
psrld xmm6, 5
psrld xmm3, 6
movaps xmm4, xmm7
movaps xmm1, xmm6
movaps xmmword [esp + 0x20], xmm7
andps xmm1, xmm0
pslld xmm4, 1
movq xmm0, qword [0x4ea880]
movaps xmm2, xmm3
andps xmm2, xmm0
xorps xmm4, xmm7
movq xmm0, qword [0x4ea870]
movaps xmm5, xmm6
andps xmm3, xmm0
movq xmm0, qword [0x4ea880]
andps xmm5, xmm0
movq xmm0, qword [0x4ea870]
andps xmm6, xmm0
movq xmm0, qword [0x4ea8d0]
movups xmmword [esp + 0x40], xmm1
pmulld xmm1, xmm0
movups xmmword [esp + 0x30], xmm6
movaps xmm6, xmm7
movq xmm0, xmm0
movaps xmm7, xmm4
psrld xmm6, 7
pslld xmm7, 1
pslld xmm4, 2
xorps xmm7, xmmword [esp + 0x20]
xorps xmm4, xmmword [esp + 0x20]
pslld xmm7, 0x19
pslld xmm4, 8
xorps xmm7, xmm1
movaps xmm1, xmm2
pmulld xmm1, xmm0
movq xmm0, qword [0x4ea8d0]
xorps xmm7, xmm1
movaps xmm1, xmm3
pmulld xmm1, xmm0
xorps xmm7, xmm1
movq xmm0, xmm0
movaps xmm1, xmm5
pmulld xmm1, xmm0
movq xmm0, qword [0x4ea8d0]
xorps xmm7, xmm1
movaps xmm1, xmmword [esp + 0x30]
pmulld xmm1, xmm0
xorps xmm7, xmm1
movq xmm0, xmm0
movaps xmm1, xmm6
pmulld xmm1, xmm0
movaps xmm0, xmmword [0x4ea8b0]
xorps xmm7, xmm1
movaps xmm1, xmmword [esp + 0x40]
movq xmm0, xmm0
pmulld xmm1, xmm0
xorps xmm4, xmm1
movaps xmm1, xmmword [0x4ea8b0]
movq xmm0, xmm1
pmulld xmm2, xmm0
movq xmm0, xmm1
xorps xmm4, xmm2
movaps xmm2, xmmword [esp + 0x20]
pmulld xmm3, xmm0
movq xmm0, xmm1
xorps xmm4, xmm3
movaps xmm1, xmm5
pmulld xmm1, xmm0
movaps xmm0, xmmword [0x4ea8b0]
xorps xmm4, xmm1
movaps xmm1, xmmword [esp + 0x30]
movq xmm0, xmm0
pmulld xmm1, xmm0
xorps xmm4, xmm1
orps xmm7, xmm4
movups xmm3, xmmword [esp + 0x40]
movzx eax, word [ecx + 0x4eb43a]
movaps xmm4, xmmword [0x4ea8c0]
pslld xmm2, 3
movq xmm0, xmm4
movaps xmm1, xmm3
xorps xmm2, xmmword [esp + 0x20]
pmulld xmm1, xmm0
pslld xmm2, 0x10
movq xmm0, xmm4
xorps xmm2, xmm1
movaps xmm1, xmm5
pmulld xmm1, xmm0
xorps xmm2, xmm1
movq xmm0, xmm4
movups xmm4, xmmword [esp + 0x30]
movaps xmm1, xmm4
pmulld xmm1, xmm0
movaps xmm0, xmmword [0x4ea8a0]
xorps xmm2, xmm1
movq xmm0, xmm0
orps xmm7, xmm2
movaps xmm2, xmmword [esp + 0x20]
pmulld xmm3, xmm0
movaps xmm1, xmm2
pslld xmm1, 2
xorps xmm1, xmm2
pslld xmm1, 1
xorps xmm1, xmm3
movaps xmm3, xmmword [0x4ea8a0]
movq xmm0, xmm3
pmulld xmm5, xmm0
xorps xmm1, xmm5
movq xmm0, xmm3
pmulld xmm4, xmm0
xorps xmm1, xmm4
movaps xmm5, xmmword [0x4ea880]
movq xmm0, xmm3
pmulld xmm6, xmm0
xorps xmm1, xmm6
movaps xmm6, xmmword [0x4ea870]
xorps xmm1, xmm2
movq xmm3, xmm6
orps xmm1, xmm7
movq xmm6, xmm6
pmovzxdq xmm1, xmm1
orps xmm7, xmm2
psllq xmm1, 0x20
pmovzxdq xmm0, xmm7
orps xmm1, xmm0
movq xmm2, xmm5
movd xmm0, eax
movq xmm5, xmm5
pmovzxbd xmm7, xmm0
movq xmm0, qword [0x4ea890]
movaps xmm4, xmm7
movups xmmword [edx + ecx*8], xmm1
movaps xmm1, xmm7
pslld xmm4, 1
psrld xmm1, 5
xorps xmm4, xmm7
andps xmm0, xmm1
andps xmm5, xmm1
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmm7
andps xmm6, xmm1
movaps xmm1, xmmword [esp + 0x40]
psrld xmm0, 6
movups xmmword [esp + 0x30], xmm7
andps xmm2, xmm0
psrld xmm7, 7
andps xmm3, xmm0
movaps xmm0, xmm4
pslld xmm0, 1
xorps xmm0, xmmword [esp + 0x30]
pslld xmm0, 0x19
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
xorps xmm0, xmm1
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
movaps xmm1, xmm2
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pslld xmm4, 2
xorps xmm0, xmm1
movaps xmm1, xmm3
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
xorps xmm4, xmmword [esp + 0x30]
xorps xmm0, xmm1
pslld xmm4, 8
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
movaps xmm1, xmm5
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
xorps xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
xorps xmm0, xmm1
movaps xmm1, xmm7
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8d0]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
xorps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x40]
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x4ea8b0]
pmulld xmm1, xmm0
xorps xmm4, xmm1
movaps xmm1, xmmword [0x4ea8b0]
movq xmm0, xmm1
pmulld xmm2, xmm0
movq xmm0, xmm1
xorps xmm4, xmm2
movups xmm2, xmmword [esp + 0x30]
pmulld xmm3, xmm0
movq xmm0, xmm1
pslld xmm2, 3
xorps xmm4, xmm3
movaps xmm1, xmm5
movups xmm3, xmmword [esp + 0x20]
xorps xmm2, xmmword [esp + 0x30]
pmulld xmm1, xmm0
movq xmm0, qword [0x4ea8b0]
xorps xmm4, xmm1
movaps xmm1, xmm6
pslld xmm2, 0x10
pmulld xmm1, xmm0
movq xmm0, qword [0x4ea8c0]
xorps xmm4, xmm1
orps xmm3, xmm4
movups xmm4, xmmword [esp + 0x40]
movaps xmm1, xmm4
pmulld xmm1, xmm0
xorps xmm2, xmm1
movq xmm0, xmm0
movaps xmm1, xmm5
pmulld xmm1, xmm0
movq xmm0, qword [0x4ea8c0]
xorps xmm2, xmm1
movaps xmm1, xmm6
pmulld xmm1, xmm0
movaps xmm0, xmmword [0x4ea8a0]
xorps xmm2, xmm1
orps xmm3, xmm2
movq xmm0, xmm0
movups xmm2, xmmword [esp + 0x30]
pmulld xmm4, xmm0
movaps xmm1, xmm2
pslld xmm1, 2
xorps xmm1, xmm2
pslld xmm1, 1
xorps xmm1, xmm4
movaps xmm4, xmmword [0x4ea8a0]
movq xmm0, xmm4
pmulld xmm5, xmm0
xorps xmm1, xmm5
movq xmm0, xmm4
pmulld xmm6, xmm0
xorps xmm1, xmm6
movq xmm0, xmm4
pmulld xmm7, xmm0
xorps xmm1, xmm7
xorps xmm1, xmm2
orps xmm1, xmm3
orps xmm3, xmm2
pmovzxdq xmm1, xmm1
psllq xmm1, 0x20
pmovzxdq xmm0, xmm3
orps xmm1, xmm0
movups xmmword [ecx*8 + 0x522060], xmm1
add ecx, 4
cmp ecx, 0x100
jl 0x49c940
mov byte [0x522851], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx esi, byte [eax + 0x4eb438]
mov ebx, esi
mov dword [esp + 0x10], esi
shr ebx, 5
mov edi, esi
mov ecx, ebx
shr edi, 6
and ecx, 4
lea edx, [esi + esi]
mov dword [esp + 0x18], ecx
xor edx, esi
mov ecx, ebx
mov esi, edi
and ecx, 2
and ebx, 1
mov dword [esp + 0x1c], ecx
and edi, 1
lea ecx, [edx + edx]
mov dword [esp + 0x14], ebx
xor ecx, dword [esp + 0x10]
and esi, 2
mov ebx, dword [esp + 0x10]
shl ecx, 0x19
mov dword [esp + 0xc], ecx
shr ebx, 7
imul ecx, ebx, 0x1b000000
shl edx, 2
xor edx, dword [esp + 0x10]
shl edx, 8
xor dword [esp + 0xc], ecx
imul ecx, dword [esp + 0x14], 0x1b000000
xor dword [esp + 0xc], ecx
imul ecx, dword [esp + 0x1c], 0x1b000000
xor dword [esp + 0xc], ecx
imul ecx, edi, 0x1b000000
xor dword [esp + 0xc], ecx
imul ecx, esi, 0x1b000000
xor dword [esp + 0xc], ecx
imul ecx, dword [esp + 0x18], 0x1b000000
xor dword [esp + 0xc], ecx
imul ecx, dword [esp + 0x14], 0x11b00
xor edx, ecx
imul ecx, dword [esp + 0x1c], 0x11b00
xor edx, ecx
imul ecx, edi, 0x11b00
mov edi, dword [esp + 0xc]
xor edx, ecx
imul ecx, esi, 0x11b00
xor edx, ecx
imul ecx, dword [esp + 0x18], 0x11b00
xor edx, ecx
mov ecx, dword [esp + 0x10]
or edi, edx
lea edx, [ecx*8]
xor edx, ecx
imul ecx, dword [esp + 0x14], 0x11b0000
shl edx, 0x10
xor edx, ecx
imul ecx, dword [esp + 0x1c], 0x11b0000
xor edx, ecx
imul ecx, dword [esp + 0x18], 0x11b0000
xor edx, ecx
mov ecx, dword [esp + 0x10]
or edi, edx
lea edx, [ecx*4]
xor edx, ecx
imul ecx, ebx, 0x11b
mov ebx, dword [esp + 0x10]
add edx, edx
xor edx, ecx
imul ecx, dword [esp + 0x14], 0x11b
xor edx, ecx
imul ecx, dword [esp + 0x1c], 0x11b
xor edx, ecx
imul ecx, dword [esp + 0x18], 0x11b
xor edx, ecx
xor ecx, ecx
xor edx, ebx
or ebx, edi
or edx, edi
or ecx, ebx
mov dword [eax*8 + 0x522050], ecx
mov dword [eax*8 + 0x522054], edx
inc eax
cmp eax, 0x100
jl 0x49ce00
pop edi
pop esi
mov byte [0x522851], 1
pop ebx
mov esp, ebp
pop ebp
ret