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

Disassembly:
push 0xffffffffffffffff
push 0x4c2fb8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x18]
push ebx
push esi
push edi
mov ebx, ecx
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x14], ebx
call fcn.004a9f30
xor edi, edi
mov dword [esp + 0x18], edi
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
add esi, esi
add esi, esi
mov dword [ebx], vtable.CryptoPP::RijndaelDecryption.0
je 0x4aa45d
lea edx, [eax + esi*4 + 8]
lea ecx, [eax + 8]
push ebp
mov ebp, dword [ecx - 8]
mov dword [esp + 0x28], ebp
mov ebp, dword [edx - 8]
mov dword [ecx - 8], ebp
mov ebp, dword [esp + 0x28]
mov dword [edx - 8], ebp
mov ebp, dword [ecx - 4]
mov dword [esp + 0x28], ebp
mov ebp, dword [edx - 4]
mov dword [ecx - 4], ebp
mov ebp, dword [esp + 0x28]
mov dword [edx - 4], ebp
mov ebp, dword [ecx]
mov dword [esp + 0x28], ebp
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [esp + 0x28]
mov dword [edx], ebp
mov ebp, dword [ecx + 4]
mov dword [esp + 0x28], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [esp + 0x28]
mov dword [edx + 4], ebp
add edi, 4
sub esi, 4
add ecx, 0x10
sub edx, 0x10
cmp edi, esi
jb 0x4aa400
pop ebp
mov edx, 1
cmp dword [ebx + 4], edx
jbe 0x4aa622
jmp 0x4aa470
mov ecx, dword [eax + 0x10]
movzx edi, byte [eax + 0x11]
mov edi, dword [edi*4 + str.ccccwwww]
add eax, 0x10
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff
mov esi, dword [esi*4 + 0x4db488]
and edi, 0xff
xor esi, dword [edi*4 + 0x4dbc88]
movzx edi, byte [eax + 2]
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor esi, dword [edi*4 + 0x4db888]
movzx edi, byte [eax + 5]
and ecx, 0xff
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x4dc088]
mov ecx, dword [eax + 4]
mov dword [eax], esi
mov edi, dword [edi*4 + str.ccccwwww]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff
mov esi, dword [esi*4 + 0x4db488]
and edi, 0xff
xor esi, dword [edi*4 + 0x4dbc88]
movzx edi, byte [eax + 6]
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor esi, dword [edi*4 + 0x4db888]
movzx edi, byte [eax + 9]
and ecx, 0xff
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x4dc088]
mov ecx, dword [eax + 8]
mov dword [eax + 4], esi
mov edi, dword [edi*4 + str.ccccwwww]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff
mov esi, dword [esi*4 + 0x4db488]
and edi, 0xff
xor esi, dword [edi*4 + 0x4dbc88]
movzx edi, byte [eax + 0xa]
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor esi, dword [edi*4 + 0x4db888]
movzx edi, byte [eax + 0xd]
and ecx, 0xff
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x4dc088]
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], esi
mov edi, dword [edi*4 + str.ccccwwww]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff
mov esi, dword [esi*4 + 0x4db488]
and edi, 0xff
xor esi, dword [edi*4 + 0x4dbc88]
movzx edi, byte [eax + 0xe]
mov edi, dword [edi*4 + str.ccccwwww]
and ecx, 0xff
mov ecx, dword [ecx*4 + str.ccccwwww]
and edi, 0xff
xor esi, dword [edi*4 + 0x4db888]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x4dc088]
add edx, 1
mov dword [eax + 0xc], esi
cmp edx, dword [ebx + 4]
jb 0x4aa470
mov dword [esp + 0x18], 0xffffffff
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov eax, ebx
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 8