Function at 0xaa4484
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 4
jge 0xaa44cc
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [ecx + edx]
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x30], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [eax + ecx*4 + 0xcb4]
mov ecx, dword [ebp - 4]
xor dword [ebp + ecx*4 - 0x30], edx
inc dword [ebp - 4]
add dword [ebp - 8], 4
cmp dword [ebp - 4], 4
jl 0xaa449e
mov dword [ebp - 0xc], 4
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 4
jge 0xaa45df
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc84]
mov ebx, dword [edx + ebx*4]
shr ebx, 8
and ebx, 0xff
mov esi, dword [eax + ebx*4 + 0x400]
shl esi, 8
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc84]
mov ebx, dword [edx + ebx*4]
shr ebx, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 0x400]
shr ebx, 0x18
or esi, ebx
mov ebx, dword [ebp - 0xc]
mov ebx, dword [eax + ebx*4 + 0xcb4]
mov edi, dword [ebp - 8]
movzx edi, byte [edx + edi*4]
xor ebx, dword [eax + edi*4 + 0x400]
xor esi, ebx
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc85]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x10
and ebx, 0xff
mov edi, dword [eax + ebx*4 + 0x400]
shl edi, 0x10
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc85]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x10
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 0x400]
shr ebx, 0x10
or edi, ebx
xor esi, edi
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc86]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x18
mov ebx, dword [eax + ebx*4 + 0x400]
shl ebx, 0x18
movzx edi, byte [eax + ecx + 0xc86]
mov edi, dword [edx + edi*4]
shr edi, 0x18
mov edi, dword [eax + edi*4 + 0x400]
shr edi, 8
or ebx, edi
xor esi, ebx
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
mov dword [ebx + edi*4], esi
inc dword [ebp - 0xc]
inc dword [ebp - 8]
add ecx, 3
cmp dword [ebp - 8], 4
jl 0xaa44f2
mov ecx, edx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xe
jl 0xaa44e3
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 4
jge 0xaa46dd
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc84]
mov ebx, dword [edx + ebx*4]
shr ebx, 8
and ebx, 0xff
movzx esi, byte [eax + ebx]
shl esi, 8
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc84]
mov ebx, dword [edx + ebx*4]
shr ebx, 8
and ebx, 0xff
movzx ebx, byte [eax + ebx]
shr ebx, 0x18
or esi, ebx
mov ebx, dword [ebp - 0xc]
mov ebx, dword [eax + ebx*4 + 0xcb4]
mov edi, dword [ebp - 8]
movzx edi, byte [edx + edi*4]
movzx edi, byte [eax + edi]
xor ebx, edi
xor esi, ebx
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc85]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x10
and ebx, 0xff
movzx edi, byte [eax + ebx]
shl edi, 0x10
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc85]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [eax + ebx]
shr ebx, 0x10
or edi, ebx
xor esi, edi
xor ebx, ebx
mov bl, byte [eax + ecx + 0xc86]
mov ebx, dword [edx + ebx*4]
shr ebx, 0x18
movzx ebx, byte [eax + ebx]
shl ebx, 0x18
movzx edi, byte [eax + ecx + 0xc86]
mov edi, dword [edx + edi*4]
shr edi, 0x18
movzx edi, byte [eax + edi]
shr edi, 8
or ebx, edi
xor esi, ebx
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
mov dword [ebx + edi*4], esi
inc dword [ebp - 0xc]
inc dword [ebp - 8]
add ecx, 3
cmp dword [ebp - 8], 4
jl 0xaa4603
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 4
jge 0xaa471b
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov dword [eax + ebx], ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov dword [eax + ecx*4], ebx
mov eax, dword [ebp - 4]
mov dword [edx + eax*4], ebx
inc dword [ebp - 4]
add dword [ebp - 8], 4
cmp dword [ebp - 4], 4
jl 0xaa46eb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret