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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xa8
xor eax, eax
cmp dword [0x53786c], 2
push esi
push edi
mov dword [ebp - 0x30], eax
jl 0x488b30
movaps xmm6, xmmword [0x520d30]
lea edx, [eax + 0x19]
movaps xmm7, xmmword [0x520d20]
lea esi, [eax + 8]
mov eax, 6
xor ecx, ecx
movd xmm3, eax
lea edi, [ecx + 3]
mov eax, 1
movaps xmmword [ebp - 0x90], xmm3
movd xmm2, eax
mov eax, 5
movaps xmmword [ebp - 0x70], xmm2
movd xmm4, eax
movaps xmmword [ebp - 0xa0], xmm4
nop word [eax + eax]
movzx eax, word [ecx + 0x51f738]
movd xmm0, eax
mov eax, 7
pmovzxbd xmm1, xmm0
movaps xmm5, xmm1
movaps xmmword [ebp - 0x40], xmm1
movq xmm0, xmm2
movaps xmm2, xmm1
pslld xmm5, xmm0
movq xmm0, xmm4
movq xmm4, xmm7
psrld xmm2, xmm0
movq xmm0, qword [0x520d40]
pxor xmm5, xmm1
pand xmm0, xmm2
movq xmm7, xmm7
movups xmmword [ebp - 0x60], xmm0
movq xmm0, xmm3
pand xmm7, xmm2
psrld xmm1, xmm0
movq xmm3, xmm6
movd xmm0, eax
pand xmm3, xmm1
pand xmm4, xmm1
movq xmm6, xmm6
movaps xmm1, xmm5
pand xmm6, xmm2
mov eax, 2
movaps xmm2, xmmword [ebp - 0x40]
psrld xmm2, xmm0
movq xmm0, qword [ebp - 0x70]
pslld xmm1, xmm0
movd xmm0, edx
pxor xmm1, xmmword [ebp - 0x40]
pslld xmm1, xmm0
movq xmm0, qword [0x520d90]
movups xmmword [ebp - 0x20], xmm1
movaps xmm1, xmmword [ebp - 0x60]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x80], xmm2
pxor xmm0, xmm1
movaps xmm1, xmm3
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm4
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm7
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm2
movaps xmm2, xmmword [0x520d60]
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmmword [ebp - 0x60]
movups xmmword [ebp - 0x20], xmm0
movd xmm0, eax
pslld xmm5, xmm0
movd xmm0, esi
pxor xmm5, xmmword [ebp - 0x40]
pslld xmm5, xmm0
movq xmm0, xmm2
pmulld xmm1, xmm0
pxor xmm5, xmm1
movq xmm0, xmm2
pmulld xmm3, xmm0
movq xmm0, xmm2
pxor xmm5, xmm3
movups xmm3, xmmword [ebp - 0x20]
mov eax, 0x10
pmulld xmm4, xmm0
movq xmm0, xmm2
pxor xmm5, xmm4
movups xmm4, xmmword [ebp - 0x60]
movaps xmm1, xmm6
pmulld xmm1, xmm0
pxor xmm5, xmm1
movq xmm0, xmm2
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm5, xmm1
movd xmm0, edi
por xmm3, xmm5
movaps xmm1, xmm4
movaps xmm5, xmmword [ebp - 0x40]
movaps xmm2, xmm5
pslld xmm2, xmm0
movd xmm0, eax
mov eax, 2
pxor xmm2, xmm5
pslld xmm2, xmm0
movq xmm0, qword [0x520d70]
pmulld xmm1, xmm0
pxor xmm2, xmm1
movq xmm0, xmm0
movaps xmm1, xmm6
pmulld xmm1, xmm0
movq xmm0, qword [0x520d70]
pxor xmm2, xmm1
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm2, xmm1
movd xmm0, eax
movaps xmm1, xmm5
por xmm3, xmm2
movaps xmm2, xmmword [0x520d50]
mov eax, 0x20
pslld xmm1, xmm0
movq xmm0, qword [ebp - 0x70]
pxor xmm1, xmm5
pslld xmm1, xmm0
movq xmm0, xmm2
pmulld xmm4, xmm0
movq xmm0, xmm2
pxor xmm1, xmm4
pmulld xmm6, xmm0
movq xmm0, xmm2
pxor xmm1, xmm6
pmulld xmm7, xmm0
movq xmm0, xmm2
pxor xmm1, xmm7
movups xmm2, xmmword [ebp - 0x80]
pmulld xmm2, xmm0
pxor xmm1, xmm2
movd xmm0, eax
movzx eax, word [ecx + 0x51f73a]
pxor xmm1, xmm5
por xmm1, xmm3
por xmm3, xmm5
pmovzxdq xmm1, xmm1
psllq xmm1, xmm0
pmovzxdq xmm0, xmm3
por xmm1, xmm0
movd xmm0, eax
movups xmmword [ecx*8 + 0x53cf60], xmm1
pmovzxbd xmm1, xmm0
movq xmm0, qword [ebp - 0x70]
movaps xmm5, xmm1
pslld xmm5, xmm0
movq xmm0, qword [ebp - 0xa0]
movaps xmm2, xmm1
movups xmmword [ebp - 0x40], xmm1
pxor xmm5, xmm1
psrld xmm2, xmm0
movq xmm0, qword [0x520d40]
mov eax, 7
pand xmm0, xmm2
movaps xmm7, xmmword [0x520d20]
movups xmmword [ebp - 0x60], xmm0
movq xmm0, qword [ebp - 0x90]
movq xmm4, xmm7
psrld xmm1, xmm0
movaps xmm0, xmmword [0x520d30]
movq xmm7, xmm7
movq xmm6, xmm0
movq xmm3, xmm0
pand xmm3, xmm1
movd xmm0, eax
pand xmm4, xmm1
pand xmm6, xmm2
pand xmm7, xmm2
movaps xmm1, xmm5
movaps xmm2, xmmword [ebp - 0x40]
mov eax, 2
psrld xmm2, xmm0
movq xmm0, qword [ebp - 0x70]
pslld xmm1, xmm0
movd xmm0, edx
pxor xmm1, xmmword [ebp - 0x40]
pslld xmm1, xmm0
movq xmm0, qword [0x520d90]
movups xmmword [ebp - 0x20], xmm1
movaps xmm1, xmmword [ebp - 0x60]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x80], xmm2
pxor xmm0, xmm1
movaps xmm1, xmm3
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm4
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm7
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm2
movaps xmm2, xmmword [0x520d60]
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [0x520d90]
pmulld xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmm1
movaps xmm1, xmmword [ebp - 0x60]
movups xmmword [ebp - 0x20], xmm0
movd xmm0, eax
pslld xmm5, xmm0
movd xmm0, esi
pxor xmm5, xmmword [ebp - 0x40]
pslld xmm5, xmm0
movq xmm0, xmm2
pmulld xmm1, xmm0
movq xmm0, xmm2
pxor xmm5, xmm1
pmulld xmm3, xmm0
movq xmm0, xmm2
pxor xmm5, xmm3
pmulld xmm4, xmm0
pxor xmm5, xmm4
movups xmm3, xmmword [ebp - 0x20]
mov eax, 0x10
movups xmm4, xmmword [ebp - 0x60]
movq xmm0, xmm2
movaps xmm1, xmm6
pmulld xmm1, xmm0
pxor xmm5, xmm1
movq xmm0, xmm2
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm5, xmm1
movd xmm0, edi
por xmm3, xmm5
movaps xmm1, xmm4
movups xmm5, xmmword [ebp - 0x40]
movaps xmm2, xmm5
pslld xmm2, xmm0
movd xmm0, eax
mov eax, 2
pxor xmm2, xmm5
pslld xmm2, xmm0
movq xmm0, qword [0x520d70]
pmulld xmm1, xmm0
pxor xmm2, xmm1
movq xmm0, xmm0
movaps xmm1, xmm6
pmulld xmm1, xmm0
movq xmm0, qword [0x520d70]
pxor xmm2, xmm1
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm2, xmm1
movd xmm0, eax
por xmm3, xmm2
movaps xmm1, xmm5
movaps xmm2, xmmword [0x520d50]
mov eax, 0x20
pslld xmm1, xmm0
movq xmm0, qword [ebp - 0x70]
pxor xmm1, xmm5
pslld xmm1, xmm0
movq xmm0, xmm2
pmulld xmm4, xmm0
movq xmm0, xmm2
pxor xmm1, xmm4
pmulld xmm6, xmm0
movaps xmm4, xmmword [ebp - 0xa0]
movq xmm0, xmm2
pmulld xmm7, xmm0
pxor xmm1, xmm6
movq xmm0, xmm2
movups xmm2, xmmword [ebp - 0x80]
movaps xmm6, xmmword [0x520d30]
pxor xmm1, xmm7
movaps xmm7, xmmword [0x520d20]
pmulld xmm2, xmm0
pxor xmm1, xmm2
movd xmm0, eax
movaps xmm2, xmmword [ebp - 0x70]
pxor xmm1, xmm5
por xmm1, xmm3
por xmm3, xmm5
pmovzxdq xmm1, xmm1
psllq xmm1, xmm0
pmovzxdq xmm0, xmm3
movaps xmm3, xmmword [ebp - 0x90]
por xmm1, xmm0
movups xmmword [ecx*8 + 0x53cf70], xmm1
add ecx, 4
cmp ecx, 0x100
jl 0x488590
mov byte [0x53b585], 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movzx esi, byte [eax + 0x51f738]
mov eax, esi
mov dword [ebp - 4], esi
shr eax, 5
mov edi, esi
mov ecx, eax
shr edi, 6
and ecx, 4
lea edx, [esi + esi]
mov dword [ebp - 0x24], ecx
xor edx, esi
mov ecx, eax
mov esi, edi
and ecx, 2
and eax, 1
mov dword [ebp - 0x28], ecx
and edi, 1
mov ecx, dword [ebp - 4]
and esi, 2
shr ecx, 7
mov dword [ebp - 0x48], ecx
imul ecx, ecx, 0x1b000000
mov dword [ebp - 0x2c], eax
lea eax, [edx + edx]
xor eax, dword [ebp - 4]
shl eax, 0x19
shl edx, 2
xor eax, ecx
xor edx, dword [ebp - 4]
imul ecx, dword [ebp - 0x2c], 0x1b000000
shl edx, 8
xor eax, ecx
imul ecx, dword [ebp - 0x28], 0x1b000000
xor eax, ecx
imul ecx, edi, 0x1b000000
xor eax, ecx
imul ecx, esi, 0x1b000000
xor eax, ecx
imul ecx, dword [ebp - 0x24], 0x1b000000
xor eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x2c]
imul ecx, eax, 0x11b00
xor edx, ecx
imul ecx, dword [ebp - 0x28], 0x11b00
xor edx, ecx
imul ecx, edi, 0x11b00
mov edi, dword [ebp - 0x44]
xor edx, ecx
imul ecx, esi, 0x11b00
xor edx, ecx
imul ecx, dword [ebp - 0x24], 0x11b00
xor edx, ecx
mov ecx, dword [ebp - 4]
or edi, edx
lea edx, [ecx*8]
xor edx, ecx
imul ecx, eax, 0x11b0000
shl edx, 0x10
xor edx, ecx
imul ecx, dword [ebp - 0x28], 0x11b0000
xor edx, ecx
imul ecx, dword [ebp - 0x24], 0x11b0000
xor edx, ecx
mov ecx, dword [ebp - 4]
or edi, edx
lea edx, [ecx*4]
xor edx, ecx
imul ecx, dword [ebp - 0x48], 0x11b
add edx, edx
xor edx, ecx
imul ecx, eax, 0x11b
mov eax, dword [ebp - 4]
xor edx, ecx
imul ecx, dword [ebp - 0x28], 0x11b
xor edx, ecx
imul ecx, dword [ebp - 0x24], 0x11b
xor edx, ecx
xor edx, eax
or edx, edi
xor ecx, ecx
or eax, edi
or ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax*8 + 0x53cf60], ecx
mov dword [eax*8 + 0x53cf64], edx
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x100
jl 0x488b30
pop edi
mov byte [0x53b585], 1
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret