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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov ebx, 0xa31cd8
sub eax, 0x80
je 0x8ecf2b
sub eax, 0x40
je 0x8ecfab
jmp 0x8ed048
mov ecx, 0xa
mov dword [ebp - 4], 0xa31cb0
mov eax, dword [edx + 0xc]
mov esi, eax
shr esi, 8
and esi, 0xff
movzx esi, byte [ebx + esi]
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebx + edi]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x18
movzx edi, byte [ebx + edi]
shl edi, 0x10
xor esi, edi
and eax, 0xff
movzx eax, byte [ebx + eax]
shl eax, 0x18
xor esi, eax
xor esi, dword [edx]
mov eax, dword [ebp - 4]
xor esi, dword [eax]
mov dword [edx + 0x10], esi
mov eax, dword [edx + 4]
xor eax, dword [edx + 0x10]
mov dword [edx + 0x14], eax
mov esi, dword [edx + 8]
xor esi, eax
mov dword [edx + 0x18], esi
mov eax, dword [edx + 0xc]
xor eax, esi
mov dword [edx + 0x1c], eax
add edx, 0x10
add dword [ebp - 4], 4
dec ecx
jne 0x8ecf37
jmp 0x8ed12b
xor ecx, ecx
mov dword [ebp - 8], 0xa31cb0
mov eax, dword [edx + 0x14]
mov esi, eax
shr esi, 8
and esi, 0xff
movzx esi, byte [ebx + esi]
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebx + edi]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x18
movzx edi, byte [ebx + edi]
shl edi, 0x10
xor esi, edi
and eax, 0xff
movzx eax, byte [ebx + eax]
shl eax, 0x18
xor esi, eax
xor esi, dword [edx]
mov eax, dword [ebp - 8]
xor esi, dword [eax]
mov dword [edx + 0x18], esi
mov eax, dword [edx + 4]
xor eax, dword [edx + 0x18]
mov dword [edx + 0x1c], eax
mov esi, dword [edx + 8]
xor esi, eax
mov dword [edx + 0x20], esi
mov eax, dword [edx + 0xc]
xor eax, esi
mov dword [edx + 0x24], eax
cmp ecx, 7
je 0x8ed12b
mov esi, dword [edx + 0x10]
xor esi, eax
mov dword [edx + 0x28], esi
mov eax, dword [edx + 0x14]
xor eax, esi
mov dword [edx + 0x2c], eax
add edx, 0x18
inc ecx
add dword [ebp - 8], 4
cmp ecx, 8
jne 0x8ecfb4
jmp 0x8ed12b
xor ecx, ecx
mov dword [ebp - 0xc], 0xa31cb0
mov eax, dword [edx + 0x1c]
mov esi, eax
shr esi, 8
and esi, 0xff
movzx esi, byte [ebx + esi]
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebx + edi]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x18
movzx edi, byte [ebx + edi]
shl edi, 0x10
xor esi, edi
and eax, 0xff
movzx eax, byte [ebx + eax]
shl eax, 0x18
xor esi, eax
xor esi, dword [edx]
mov eax, dword [ebp - 0xc]
xor esi, dword [eax]
mov dword [edx + 0x20], esi
mov eax, dword [edx + 4]
xor eax, dword [edx + 0x20]
mov dword [edx + 0x24], eax
mov esi, dword [edx + 8]
xor esi, eax
mov dword [edx + 0x28], esi
mov eax, dword [edx + 0xc]
xor eax, esi
mov dword [edx + 0x2c], eax
cmp ecx, 6
je 0x8ed12b
mov esi, eax
and esi, 0xff
movzx esi, byte [ebx + esi]
mov edi, eax
shr edi, 8
and edi, 0xff
movzx edi, byte [ebx + edi]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebx + edi]
shl edi, 0x10
xor esi, edi
shr eax, 0x18
movzx eax, byte [ebx + eax]
shl eax, 0x18
xor esi, eax
xor esi, dword [edx + 0x10]
mov dword [edx + 0x30], esi
mov eax, dword [edx + 0x14]
xor eax, dword [edx + 0x30]
mov dword [edx + 0x34], eax
mov esi, dword [edx + 0x18]
xor esi, eax
mov dword [edx + 0x38], esi
mov eax, dword [edx + 0x1c]
xor eax, esi
mov dword [edx + 0x3c], eax
add edx, 0x20
inc ecx
add dword [ebp - 0xc], 4
cmp ecx, 7
jne 0x8ed051
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret