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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x94
xor eax, eax
cmp dword [0x4a27e8], 2
push ebx
push esi
push edi
jl 0x445ba0
movaps xmm6, xmmword [0x490dc0]
lea edx, [eax + 0x19]
movaps xmm7, xmmword [0x490db0]
lea esi, [eax + 8]
mov eax, 6
xor ecx, ecx
movd xmm3, eax
lea edi, [ecx + 3]
mov eax, 1
movaps xmmword [esp + 0x80], xmm3
lea ebx, [ecx + 0x10]
movd xmm2, eax
mov eax, 5
movaps xmmword [esp + 0x60], xmm2
movd xmm4, eax
movaps xmmword [esp + 0x90], xmm4
nop word [eax + eax]
movzx eax, word [ecx + 0x48d778]
movd xmm0, eax
mov eax, 7
pmovzxbd xmm1, xmm0
movaps xmm5, xmm1
movaps xmmword [esp + 0x40], xmm1
movq xmm0, xmm2
movaps xmm2, xmm1
pslld xmm5, xmm0
movq xmm0, xmm4
movq xmm4, xmm7
psrld xmm2, xmm0
movq xmm0, qword [0x490dd0]
pxor xmm5, xmm1
pand xmm0, xmm2
movq xmm7, xmm7
movups xmmword [esp + 0x50], 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 [esp + 0x40]
psrld xmm2, xmm0
movq xmm0, qword [esp + 0x60]
pslld xmm1, xmm0
movd xmm0, edx
pxor xmm1, xmmword [esp + 0x40]
pslld xmm1, xmm0
movq xmm0, qword [0x490e50]
movups xmmword [esp + 0x20], xmm1
movaps xmm1, xmmword [esp + 0x50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
movups xmmword [esp + 0x70], xmm2
pxor xmm0, xmm1
movaps xmm1, xmm3
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm4
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm7
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm2
movaps xmm2, xmmword [0x490e20]
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmmword [esp + 0x50]
movups xmmword [esp + 0x20], xmm0
movd xmm0, eax
pslld xmm5, xmm0
movd xmm0, esi
pxor xmm5, xmmword [esp + 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 [esp + 0x20]
pmulld xmm4, xmm0
movq xmm0, xmm2
pxor xmm5, xmm4
movups xmm4, xmmword [esp + 0x50]
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 [esp + 0x40]
movaps xmm2, xmm5
pslld xmm2, xmm0
movd xmm0, ebx
pxor xmm2, xmm5
pslld xmm2, xmm0
movq xmm0, qword [0x490e30]
pmulld xmm1, xmm0
pxor xmm2, xmm1
movq xmm0, xmm0
movaps xmm1, xmm6
pmulld xmm1, xmm0
movq xmm0, qword [0x490e30]
pxor xmm2, xmm1
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm2, xmm1
movd xmm0, eax
movaps xmm1, xmm5
por xmm3, xmm2
movaps xmm2, xmmword [0x490e10]
mov eax, 0x20
pslld xmm1, xmm0
movq xmm0, qword [esp + 0x60]
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 [esp + 0x70]
pmulld xmm2, xmm0
pxor xmm1, xmm2
movd xmm0, eax
movzx eax, word [ecx + 0x48d77a]
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 + 0x4a3a48], xmm1
pmovzxbd xmm1, xmm0
movq xmm0, qword [esp + 0x60]
movaps xmm5, xmm1
pslld xmm5, xmm0
movq xmm0, qword [esp + 0x90]
movaps xmm2, xmm1
psrld xmm2, xmm0
movq xmm0, qword [0x490dd0]
pxor xmm5, xmm1
movups xmmword [esp + 0x40], xmm1
pand xmm0, xmm2
movaps xmm7, xmmword [0x490db0]
movups xmmword [esp + 0x50], xmm0
mov eax, 7
movq xmm0, qword [esp + 0x80]
movq xmm4, xmm7
psrld xmm1, xmm0
movaps xmm0, xmmword [0x490dc0]
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 [esp + 0x40]
mov eax, 2
psrld xmm2, xmm0
movq xmm0, qword [esp + 0x60]
pslld xmm1, xmm0
movd xmm0, edx
pxor xmm1, xmmword [esp + 0x40]
pslld xmm1, xmm0
movq xmm0, qword [0x490e50]
movups xmmword [esp + 0x20], xmm1
movaps xmm1, xmmword [esp + 0x50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
movups xmmword [esp + 0x70], xmm2
pxor xmm0, xmm1
movaps xmm1, xmm3
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm4
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm7
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmm2
movaps xmm2, xmmword [0x490e20]
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [0x490e50]
pmulld xmm1, xmm0
movups xmm0, xmmword [esp + 0x20]
pxor xmm0, xmm1
movaps xmm1, xmmword [esp + 0x50]
movups xmmword [esp + 0x20], xmm0
movd xmm0, eax
pslld xmm5, xmm0
movd xmm0, esi
pxor xmm5, xmmword [esp + 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
movq xmm0, xmm2
movaps xmm1, xmm6
pmulld xmm1, xmm0
movups xmm3, xmmword [esp + 0x20]
pxor xmm5, xmm1
movq xmm0, xmm2
movups xmm4, xmmword [esp + 0x50]
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm5, xmm1
movd xmm0, edi
por xmm3, xmm5
movaps xmm1, xmm4
movups xmm5, xmmword [esp + 0x40]
movaps xmm2, xmm5
pslld xmm2, xmm0
movd xmm0, ebx
pxor xmm2, xmm5
pslld xmm2, xmm0
movq xmm0, qword [0x490e30]
pmulld xmm1, xmm0
pxor xmm2, xmm1
movq xmm0, xmm0
movaps xmm1, xmm6
pmulld xmm1, xmm0
movq xmm0, qword [0x490e30]
pxor xmm2, xmm1
movaps xmm1, xmm7
pmulld xmm1, xmm0
pxor xmm2, xmm1
movd xmm0, eax
por xmm3, xmm2
movaps xmm1, xmm5
movaps xmm2, xmmword [0x490e10]
mov eax, 0x20
pslld xmm1, xmm0
movq xmm0, qword [esp + 0x60]
pxor xmm1, xmm5
pslld xmm1, xmm0
movq xmm0, xmm2
pmulld xmm4, xmm0
movq xmm0, xmm2
pxor xmm1, xmm4
pmulld xmm6, xmm0
movaps xmm4, xmmword [esp + 0x90]
movq xmm0, xmm2
pmulld xmm7, xmm0
pxor xmm1, xmm6
movq xmm0, xmm2
movups xmm2, xmmword [esp + 0x70]
movaps xmm6, xmmword [0x490dc0]
pxor xmm1, xmm7
movaps xmm7, xmmword [0x490db0]
pmulld xmm2, xmm0
pxor xmm1, xmm2
movd xmm0, eax
movaps xmm2, xmmword [esp + 0x60]
pxor xmm1, xmm5
por xmm1, xmm3
por xmm3, xmm5
pmovzxdq xmm1, xmm1
psllq xmm1, xmm0
pmovzxdq xmm0, xmm3
movaps xmm3, xmmword [esp + 0x80]
por xmm1, xmm0
movups xmmword [ecx*8 + 0x4a3a58], xmm1
add ecx, 4
cmp ecx, 0x100
jl 0x4455e0
mov byte [0x4a4249], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx esi, byte [eax + 0x48d778]
mov ebx, esi
mov dword [esp + 0x1c], esi
shr ebx, 5
mov edi, esi
mov ecx, ebx
shr edi, 6
and ecx, 4
lea edx, [esi + esi]
mov dword [esp + 0x38], ecx
xor edx, esi
mov ecx, ebx
mov esi, edi
and ecx, 2
and ebx, 1
mov dword [esp + 0x3c], ecx
and edi, 1
lea ecx, [edx + edx]
mov dword [esp + 0x34], ebx
xor ecx, dword [esp + 0x1c]
and esi, 2
mov ebx, dword [esp + 0x1c]
shl ecx, 0x19
mov dword [esp + 0x18], ecx
shr ebx, 7
imul ecx, ebx, 0x1b000000
shl edx, 2
xor edx, dword [esp + 0x1c]
shl edx, 8
xor dword [esp + 0x18], ecx
imul ecx, dword [esp + 0x34], 0x1b000000
xor dword [esp + 0x18], ecx
imul ecx, dword [esp + 0x3c], 0x1b000000
xor dword [esp + 0x18], ecx
imul ecx, edi, 0x1b000000
xor dword [esp + 0x18], ecx
imul ecx, esi, 0x1b000000
xor dword [esp + 0x18], ecx
imul ecx, dword [esp + 0x38], 0x1b000000
xor dword [esp + 0x18], ecx
imul ecx, dword [esp + 0x34], 0x11b00
xor edx, ecx
imul ecx, dword [esp + 0x3c], 0x11b00
xor edx, ecx
imul ecx, edi, 0x11b00
mov edi, dword [esp + 0x18]
xor edx, ecx
imul ecx, esi, 0x11b00
xor edx, ecx
imul ecx, dword [esp + 0x38], 0x11b00
xor edx, ecx
mov ecx, dword [esp + 0x1c]
or edi, edx
lea edx, [ecx*8]
xor edx, ecx
imul ecx, dword [esp + 0x34], 0x11b0000
shl edx, 0x10
xor edx, ecx
imul ecx, dword [esp + 0x3c], 0x11b0000
xor edx, ecx
imul ecx, dword [esp + 0x38], 0x11b0000
xor edx, ecx
mov ecx, dword [esp + 0x1c]
or edi, edx
lea edx, [ecx*4]
xor edx, ecx
imul ecx, ebx, 0x11b
mov ebx, dword [esp + 0x1c]
add edx, edx
xor edx, ecx
imul ecx, dword [esp + 0x34], 0x11b
xor edx, ecx
imul ecx, dword [esp + 0x3c], 0x11b
xor edx, ecx
imul ecx, dword [esp + 0x38], 0x11b
xor edx, ecx
xor ecx, ecx
xor edx, ebx
or ebx, edi
or edx, edi
or ecx, ebx
mov dword [eax*8 + 0x4a3a48], ecx
mov dword [eax*8 + 0x4a3a4c], edx
inc eax
cmp eax, 0x100
jl 0x445ba0
pop edi
pop esi
mov byte [0x4a4249], 1
pop ebx
mov esp, ebp
pop ebp
ret