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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
je 0x4cc7c6
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4cc7c6
mov edi, dword [ebp + 0xc]
mov ecx, 0x80
cmp edi, ecx
mov edx, 0xc0
je 0x4cc368
cmp edi, edx
je 0x4cc364
cmp edi, 0x100
je 0x4cc364
push 0xfffffffffffffffe
pop eax
jmp 0x4cc7c9
cmp edi, ecx
jne 0x4cc374
mov dword [eax + 0xf0], 0xa
jmp 0x4cc385
xor ecx, ecx
cmp edi, edx
setne cl
lea ecx, [ecx + ecx + 0xc]
mov dword [eax + 0xf0], ecx
mov edi, dword [esi]
mov ebx, edi
ror ebx, 8
mov edx, 0xff00ff00
and ebx, edx
rol edi, 8
mov ecx, 0xff00ff
and edi, ecx
or ebx, edi
mov dword [eax], ebx
mov edi, dword [esi + 4]
lea ebx, [eax + 4]
mov dword [ebp + 8], ebx
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
mov edi, dword [ebp + 8]
mov dword [edi], ebx
mov edi, dword [esi + 8]
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
mov dword [eax + 8], ebx
mov edi, dword [esi + 0xc]
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
cmp dword [ebp + 0xc], 0x80
mov dword [eax + 0xc], ebx
jne 0x4cc4ea
mov dword [ebp + 0xc], ebx
movzx ecx, byte [ebp + 0xe]
mov edx, dword [ecx*4 + 0x42b030]
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x42b430]
xor edx, 0x1000000
and edx, 0xff000000
mov edi, 0xff0000
and ecx, edi
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
mov esi, dword [ecx*4 + 0x42ac30]
mov ecx, 0xff
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and esi, ecx
xor edx, esi
mov esi, 0xff00
and ebx, esi
xor edx, ebx
xor edx, dword [eax]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
mov dword [eax + 0x10], edx
xor ebx, edx
mov edx, dword [eax + 8]
xor edx, ebx
mov dword [eax + 0x18], edx
xor edx, dword [eax + 0xc]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x1c], edx
mov eax, dword [ebp + 8]
mov dword [ebp + 8], 0x42c934
mov edx, dword [eax + 0x18]
add eax, 0x10
mov dword [ebp + 0xc], edx
movzx ebx, byte [ebp + 0xe]
mov ebx, dword [ebx*4 + 0x42b030]
movzx edx, dh
mov edx, dword [edx*4 + 0x42b430]
and ebx, 0xff000000
and edx, edi
xor edx, ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x42ac30]
and ebx, ecx
xor edx, ebx
mov ebx, dword [ebp + 0xc]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and ebx, esi
xor edx, ebx
xor edx, dword [eax - 4]
mov ebx, dword [ebp + 8]
xor edx, dword [ebx]
add dword [ebp + 8], 4
mov dword [eax + 0xc], edx
mov ebx, dword [eax]
xor ebx, edx
mov dword [eax + 0x10], ebx
mov edx, dword [eax + 4]
xor edx, ebx
mov dword [eax + 0x14], edx
mov ebx, dword [eax + 8]
xor ebx, edx
cmp dword [ebp + 8], 0x42c958
mov dword [eax + 0x18], ebx
jne 0x4cc46d
jmp 0x4cc7c2
mov edi, dword [esi + 0x10]
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
mov dword [eax + 0x10], ebx
mov edi, dword [esi + 0x14]
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
cmp dword [ebp + 0xc], 0xc0
mov dword [eax + 0x14], ebx
jne 0x4cc62e
mov dword [ebp + 0xc], ebx
movzx ecx, byte [ebp + 0xe]
mov edx, dword [ecx*4 + 0x42b030]
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x42b430]
xor edx, 0x1000000
and edx, 0xff000000
mov edi, 0xff0000
and ecx, edi
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
mov esi, dword [ecx*4 + 0x42ac30]
mov ecx, 0xff
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and esi, ecx
xor edx, esi
mov esi, 0xff00
and ebx, esi
xor edx, ebx
xor edx, dword [eax]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
xor ebx, edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ebx
mov dword [eax + 0x1c], ebx
mov ebx, dword [eax + 0xc]
xor ebx, edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ebx
add eax, 0x28
mov dword [ebp + 8], 0x42c934
mov edx, dword [eax - 0x18]
xor edx, dword [eax - 4]
mov ebx, dword [eax - 0x14]
xor ebx, edx
mov dword [eax + 4], ebx
mov dword [eax], edx
mov edx, dword [eax + 4]
add eax, 0x18
mov dword [ebp + 0xc], edx
movzx ebx, byte [ebp + 0xe]
mov ebx, dword [ebx*4 + 0x42b030]
movzx edx, dh
mov edx, dword [edx*4 + 0x42b430]
and ebx, 0xff000000
and edx, edi
xor edx, ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x42ac30]
and ebx, ecx
xor edx, ebx
mov ebx, dword [ebp + 0xc]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and ebx, esi
xor edx, ebx
xor edx, dword [eax - 0x28]
mov ebx, dword [ebp + 8]
xor edx, dword [ebx]
add dword [ebp + 8], 4
mov dword [eax - 0x10], edx
mov ebx, dword [eax - 0x24]
xor ebx, edx
mov dword [eax - 0xc], ebx
mov edx, dword [eax - 0x20]
xor edx, ebx
mov dword [eax - 8], edx
mov ebx, dword [eax - 0x1c]
xor ebx, edx
cmp dword [ebp + 8], 0x42c950
mov dword [eax - 4], ebx
jne 0x4cc59c
jmp 0x4cc7c2
mov edi, dword [esi + 0x18]
mov ebx, edi
ror ebx, 8
and ebx, edx
rol edi, 8
and edi, ecx
or ebx, edi
mov dword [eax + 0x18], ebx
mov esi, dword [esi + 0x1c]
mov edi, esi
ror edi, 8
and edi, edx
rol esi, 8
and esi, ecx
or edi, esi
cmp dword [ebp + 0xc], 0x100
mov dword [eax + 0x1c], edi
jne 0x4cc7c2
mov ebx, edi
mov dword [ebp + 0xc], ebx
movzx ecx, byte [ebp + 0xe]
mov edx, dword [ecx*4 + 0x42b030]
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x42b430]
xor edx, 0x1000000
and edx, 0xff000000
mov edi, 0xff0000
and ecx, edi
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
mov esi, dword [ecx*4 + 0x42ac30]
mov ecx, 0xff
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and esi, ecx
xor edx, esi
mov esi, 0xff00
and ebx, esi
xor edx, ebx
xor edx, dword [eax]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
xor ebx, edx
mov dword [eax + 0x20], edx
mov edx, dword [eax + 8]
xor edx, ebx
mov dword [eax + 0x24], ebx
mov ebx, dword [eax + 0xc]
xor ebx, edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ebx
add eax, 0x30
mov dword [ebp + 8], 0x42c934
mov ebx, dword [eax - 4]
mov dword [ebp + 0xc], ebx
movzx edx, byte [ebp + 0xe]
mov edx, dword [edx*4 + 0x42b430]
movzx ebx, bh
mov ebx, dword [ebx*4 + 0x42a830]
and ebx, esi
and edx, edi
xor edx, ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x42b030]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [ebp + 0xc]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42ac30]
and ebx, ecx
xor edx, ebx
xor edx, dword [eax - 0x20]
mov ebx, dword [eax - 0x1c]
xor ebx, edx
mov dword [eax + 4], ebx
mov dword [eax], edx
mov edx, dword [eax - 0x18]
xor edx, ebx
mov ebx, dword [eax - 0x14]
xor ebx, edx
mov dword [eax + 0xc], ebx
mov dword [eax + 8], edx
mov edx, dword [eax + 0xc]
add eax, 0x20
mov dword [ebp + 0xc], edx
movzx ebx, byte [ebp + 0xe]
mov ebx, dword [ebx*4 + 0x42b030]
movzx edx, dh
mov edx, dword [edx*4 + 0x42b430]
and ebx, 0xff000000
and edx, edi
xor edx, ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x42ac30]
and ebx, ecx
xor edx, ebx
mov ebx, dword [ebp + 0xc]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x42a830]
and ebx, esi
xor edx, ebx
xor edx, dword [eax - 0x30]
mov ebx, dword [ebp + 8]
xor edx, dword [ebx]
add dword [ebp + 8], 4
mov dword [eax - 0x10], edx
mov ebx, dword [eax - 0x2c]
xor ebx, edx
mov dword [eax - 0xc], ebx
mov edx, dword [eax - 0x28]
xor edx, ebx
mov dword [eax - 8], edx
mov ebx, dword [eax - 0x24]
xor ebx, edx
cmp dword [ebp + 8], 0x42c94c
mov dword [eax - 4], ebx
jne 0x4cc6e2
xor eax, eax
jmp 0x4cc7c9
or eax, 0xffffffff
pop edi
pop esi
pop ebx
pop ebp
ret 0xc