Function at 0x4a16b0
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push edi
mov edi, ecx
test edx, edx
je 0x4a1bd9
test eax, eax
je 0x4a1bd9
cmp edi, 0x80
je 0x4a16f1
cmp edi, 0xc0
je 0x4a16e9
cmp edi, 0x100
je 0x4a16e9
mov eax, 0xfffffffe
pop edi
pop ebp
ret
cmp edi, 0x80
jne 0x4a16fd
mov dword [eax + 0xf0], 0xa
jmp 0x4a1712
xor ecx, ecx
cmp edi, 0xc0
setne cl
lea ecx, [ecx + ecx + 0xc]
mov dword [eax + 0xf0], ecx
mov ecx, dword [edx]
push ebx
push esi
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or esi, ecx
mov dword [eax], esi
mov esi, dword [edx + 4]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 4], ebx
mov esi, dword [edx + 8]
lea ecx, [eax + 4]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 8], ebx
mov esi, dword [edx + 0xc]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 0xc], ebx
cmp edi, 0x80
jne 0x4a18a0
mov esi, ebx
mov edx, ebx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x5c47d8]
xor edx, 0x1000000
mov edi, esi
shr edi, 8
and edi, 0xff
mov edi, dword [edi*4 + 0x5c4bd8]
and edi, 0xff0000
and edx, 0xff000000
xor edx, edi
mov edi, esi
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
xor edx, edi
mov edi, esi
and edi, 0xff
mov edi, dword [edi*4 + 0x5c3fd8]
and edi, 0xff00
xor edx, edi
xor edx, dword [eax]
mov edi, dword [ecx]
xor edi, edx
mov dword [eax + 0x10], edx
mov edx, dword [eax + 8]
xor edx, edi
mov dword [eax + 0x18], edx
xor edx, esi
mov dword [eax + 0x14], edi
mov dword [eax + 0x1c], edx
mov esi, 0x5c60dc
nop
mov edx, dword [ecx + 0x18]
add ecx, 0x10
mov eax, edx
shr eax, 8
mov edi, edx
and eax, 0xff
mov eax, dword [eax*4 + 0x5c4bd8]
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x5c47d8]
and eax, 0xff0000
and edi, 0xff000000
xor eax, edi
mov edi, edx
and edx, 0xff
mov edx, dword [edx*4 + 0x5c3fd8]
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
xor eax, edi
and edx, 0xff00
xor eax, edx
xor eax, dword [ecx - 4]
add esi, 4
xor eax, dword [esi - 4]
mov dword [ecx + 0xc], eax
mov edx, dword [ecx]
xor edx, eax
mov dword [ecx + 0x10], edx
mov eax, dword [ecx + 4]
xor eax, edx
mov dword [ecx + 0x14], eax
mov edx, dword [ecx + 8]
xor edx, eax
mov dword [ecx + 0x18], edx
cmp esi, 0x5c6100
jne 0x4a1810
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
mov esi, dword [edx + 0x10]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 0x10], ebx
mov esi, dword [edx + 0x14]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 0x14], ebx
cmp edi, 0xc0
jne 0x4a1a09
mov ecx, dword [ecx]
mov esi, ebx
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x5c47d8]
mov edi, esi
shr edi, 8
xor edx, 0x1000000
and edi, 0xff
mov edi, dword [edi*4 + 0x5c4bd8]
and edx, 0xff000000
and edi, 0xff0000
xor edx, edi
mov edi, esi
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
and esi, 0xff
mov esi, dword [esi*4 + 0x5c3fd8]
xor edx, edi
and esi, 0xff00
xor edx, esi
xor edx, dword [eax]
mov esi, 0x5c60dc
xor ecx, edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
add eax, 0x28
mov ecx, dword [eax - 0x18]
xor ecx, dword [eax - 4]
mov edx, dword [eax - 0x14]
xor edx, ecx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add eax, 0x18
mov ecx, edx
shr ecx, 8
mov edi, edx
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x5c4bd8]
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x5c47d8]
and ecx, 0xff0000
and edi, 0xff000000
xor ecx, edi
mov edi, edx
and edx, 0xff
mov edx, dword [edx*4 + 0x5c3fd8]
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
xor ecx, edi
and edx, 0xff00
xor ecx, edx
xor ecx, dword [eax - 0x28]
add esi, 4
xor ecx, dword [esi - 4]
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x20]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x1c]
xor edx, ecx
mov dword [eax - 4], edx
cmp esi, 0x5c60f8
jne 0x4a1966
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
mov esi, dword [edx + 0x18]
mov ebx, esi
ror ebx, 8
and ebx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ebx, esi
mov dword [eax + 0x18], ebx
mov edx, dword [edx + 0x1c]
mov esi, edx
ror esi, 8
and esi, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or esi, edx
mov dword [eax + 0x1c], esi
cmp edi, 0x100
jne 0x4a1899
mov ecx, dword [ecx]
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x5c47d8]
mov edi, esi
shr edi, 8
xor edx, 0x1000000
and edi, 0xff
mov edi, dword [edi*4 + 0x5c4bd8]
and edx, 0xff000000
and edi, 0xff0000
xor edx, edi
mov edi, esi
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
and esi, 0xff
mov esi, dword [esi*4 + 0x5c3fd8]
xor edx, edi
and esi, 0xff00
xor edx, esi
xor edx, dword [eax]
mov esi, 0x5c60dc
xor ecx, edx
mov dword [eax + 0x20], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [eax + 0x24], ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
add eax, 0x30
lea ecx, [ecx]
mov edx, dword [eax - 4]
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x5c4bd8]
mov edi, edx
shr edi, 8
and ecx, 0xff0000
and edi, 0xff
mov edi, dword [edi*4 + 0x5c3fd8]
and edi, 0xff00
xor ecx, edi
mov edi, edx
and edx, 0xff
movzx edx, byte [edx*4 + 0x5c43d8]
shr edi, 0x18
mov edi, dword [edi*4 + 0x5c47d8]
and edi, 0xff000000
xor ecx, edi
xor ecx, edx
xor ecx, dword [eax - 0x20]
mov edx, dword [eax - 0x1c]
xor edx, ecx
mov dword [eax], ecx
mov ecx, dword [eax - 0x18]
xor ecx, edx
mov dword [eax + 4], edx
mov edx, dword [eax - 0x14]
xor edx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [eax + 0xc]
add eax, 0x20
mov ecx, edx
shr ecx, 8
mov edi, edx
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x5c4bd8]
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x5c47d8]
and ecx, 0xff0000
and edi, 0xff000000
xor ecx, edi
mov edi, edx
and edx, 0xff
mov edx, dword [edx*4 + 0x5c3fd8]
shr edi, 0x18
movzx edi, byte [edi*4 + 0x5c43d8]
xor ecx, edi
and edx, 0xff00
xor ecx, edx
xor ecx, dword [eax - 0x30]
add esi, 4
xor ecx, dword [esi - 4]
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x2c]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x28]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
mov dword [eax - 4], edx
cmp esi, 0x5c60f4
jne 0x4a1ad0
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
or eax, 0xffffffff
pop edi
pop ebp
ret