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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edi, dword [ebp]
bswap edi
mov dword [ecx], edi
mov edx, dword [ebp + 4]
bswap edx
mov dword [ecx + 4], edx
mov esi, dword [ebp + 8]
bswap esi
mov dword [ecx + 8], esi
mov ebx, dword [ebp + 0xc]
bswap ebx
mov dword [ecx + 0xc], ebx
cmp dword [esp + 0x28], 0x80
jne 0x5505ba
mov eax, 7
nop word cs:[eax + eax]
mov dword [esp], esi
movzx ebp, bh
mov ebp, dword [ebp*4 + str.ccccwwww]
mov esi, 0xff0000
and ebp, esi
xor ebp, edi
movzx edi, bl
mov esi, edx
mov edx, ecx
mov ecx, dword [edi*4 + str.ccccwwww]
mov edi, 0xff00
and ecx, edi
xor ecx, ebp
mov edi, ebx
shr edi, 0x18
movzx edi, byte [edi*4 + str.ccccwwww]
xor edi, ecx
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + str.ccccwwww]
mov ebp, 0xff000000
and ecx, ebp
xor edi, ecx
mov ecx, edx
mov edx, esi
mov esi, dword [esp]
xor edi, dword [eax + 0x587821]
mov dword [ecx + eax*4 - 0xc], edi
xor edx, edi
mov dword [ecx + eax*4 - 8], edx
xor esi, edx
mov dword [ecx + eax*4 - 4], esi
xor ebx, esi
mov dword [ecx + eax*4], ebx
add eax, 4
cmp eax, 0x2f
jne 0x550530
mov ebp, 0xa
jmp 0x5507db
mov eax, dword [ebp + 0x10]
bswap eax
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 0x14]
bswap eax
mov dword [esp + 8], eax
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x28]
cmp eax, 0xc0
jne 0x550698
add ecx, 0x2c
mov dword [esp + 4], ecx
mov dword [esp], 0xffffffe4
mov eax, dword [esp + 8]
jmp 0x550618
mov ecx, dword [ebp - 0x1c]
xor ecx, ebx
mov dword [ebp - 4], ecx
xor eax, ecx
mov dword [ebp], eax
add ebp, 0x18
mov dword [esp + 4], ebp
add dword [esp], 4
movzx ecx, ah
mov ecx, dword [ecx*4 + str.ccccwwww]
mov ebp, 0xff0000
and ecx, ebp
xor ecx, edi
movzx edi, al
mov ebp, dword [edi*4 + str.ccccwwww]
mov edi, 0xff00
and ebp, edi
xor ebp, ecx
mov ecx, eax
shr ecx, 0x18
movzx edi, byte [ecx*4 + str.ccccwwww]
xor edi, ebp
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + str.ccccwwww]
mov ebp, 0xff000000
and ecx, ebp
xor edi, ecx
mov ecx, dword [esp]
xor edi, dword [ecx + 0x587844]
mov ebp, dword [esp + 4]
mov dword [ebp - 0x14], edi
xor edx, edi
mov dword [ebp - 0x10], edx
xor esi, edx
mov dword [ebp - 0xc], esi
xor ebx, esi
mov dword [ebp - 8], ebx
test ecx, ecx
jne 0x550600
mov ebp, 0xc
jmp 0x5507db
mov eax, dword [ebp + 0x18]
bswap eax
mov dword [ecx + 0x18], eax
mov ebp, dword [ebp + 0x1c]
bswap ebp
mov eax, ebp
mov dword [ecx + 0x1c], ebp
xor ebp, ebp
cmp dword [esp + 0x28], 0x100
jne 0x5507db
mov dword [esp], 2
jmp 0x550755
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
mov ebp, dword [eax + str.ccccwwww]
mov ecx, 0xff0000
and ebp, ecx
movzx ecx, bh
mov ecx, dword [ecx*4 + str.ccccwwww]
mov eax, 0xff00
and ecx, eax
xor ecx, ebp
movzx eax, bl
movzx eax, byte [eax*4 + str.ccccwwww]
xor eax, ecx
mov ecx, ebx
shr ecx, 0x18
mov ecx, dword [ecx*4 + str.ccccwwww]
mov ebp, 0xff000000
and ecx, ebp
mov dword [esp + 8], ebx
mov ebx, dword [esp]
mov ebp, dword [esp + 0x20]
xor ecx, dword [ebp + ebx*8]
xor eax, ecx
mov dword [ebp + ebx*8 + 0x20], eax
xor eax, dword [ebp + ebx*8 + 4]
mov dword [ebp + ebx*8 + 0x24], eax
xor eax, dword [ebp + ebx*8 + 8]
mov dword [ebp + ebx*8 + 0x28], eax
mov ecx, dword [esp + 4]
xor ecx, eax
mov dword [ebp + ebx*8 + 0x2c], ecx
add ebx, 4
mov dword [esp], ebx
mov ebx, dword [esp + 8]
mov eax, ecx
movzx ecx, ah
mov ecx, dword [ecx*4 + str.ccccwwww]
mov ebp, eax
mov eax, 0xff0000
and ecx, eax
xor ecx, edi
mov eax, ebp
movzx edi, al
mov eax, dword [edi*4 + str.ccccwwww]
mov edi, 0xff00
and eax, edi
xor eax, ecx
mov ecx, ebp
shr ecx, 0x18
movzx edi, byte [ecx*4 + str.ccccwwww]
xor edi, eax
mov dword [esp + 4], ebp
shr ebp, 0xe
and ebp, 0x3fc
mov eax, dword [ebp + str.ccccwwww]
mov ecx, 0xff000000
and eax, ecx
xor edi, eax
mov ecx, dword [esp]
xor edi, dword [ecx + 0x587826]
mov eax, dword [esp + 0x20]
mov dword [eax + ecx*8 + 0x10], edi
xor edx, edi
mov dword [eax + ecx*8 + 0x14], edx
xor esi, edx
mov dword [eax + ecx*8 + 0x18], esi
xor ebx, esi
mov dword [eax + ecx*8 + 0x1c], ebx
cmp ecx, 0x1a
jne 0x5506d0
mov ebp, 0xe
mov eax, ebp
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret