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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, ecx
mov edi, edx
mov dword [esp], eax
mov esi, str.cw
xor eax, eax
mov dword [esp + 4], eax
cmp byte [0x4faa28], 0
je 0x4e6f5c
mov word [ebx + 0x110], 0
mov byte [ebx + 0x117], 0
xor eax, eax
mov dword [ebx + 0x118], eax
jmp 0x4e6f6a
mov eax, ebx
xor ecx, ecx
mov edx, 0x11c
call fcn.004048a4
cmp di, 0x80
je 0x4e6f8c
cmp di, 0xc0
je 0x4e6f8c
cmp di, 0x100
je 0x4e6f8c
mov dword [esp + 4], 0xffffffff
jmp 0x4e71c2
movzx ebp, di
shr ebp, 5
movzx eax, bp
mov ecx, eax
add ecx, ecx
add ecx, ecx
mov edx, ebx
mov eax, dword [esp]
call fcn.00404534
mov word [ebx + 0x114], di
add ebp, 6
mov word [ebx + 0x112], bp
mov byte [ebx + 0x116], 0
mov eax, ebx
cmp di, 0x80
jne 0x4e7041
mov ecx, 0xa
mov ebx, 0x4faa2c
mov edx, dword [eax + 0xc]
mov edi, edx
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, edx
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and edx, 0xff
movzx edx, byte [esi + edx]
shl edx, 0x18
xor edi, edx
xor edi, dword [eax]
xor edi, dword [ebx]
mov dword [eax + 0x10], edi
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x10]
mov dword [eax + 0x14], edx
mov edi, dword [eax + 8]
xor edi, edx
mov dword [eax + 0x18], edi
mov edx, dword [eax + 0xc]
xor edx, edi
mov dword [eax + 0x1c], edx
add eax, 0x10
add ebx, 4
dec ecx
jne 0x4e6fd0
jmp 0x4e71c2
cmp di, 0xc0
jne 0x4e70e4
xor ecx, ecx
mov ebx, 0x4faa2c
mov edx, dword [eax + 0x14]
mov edi, edx
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, edx
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and edx, 0xff
movzx edx, byte [esi + edx]
shl edx, 0x18
xor edi, edx
xor edi, dword [eax]
xor edi, dword [ebx]
mov dword [eax + 0x18], edi
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x18]
mov dword [eax + 0x1c], edx
mov edi, dword [eax + 8]
xor edi, edx
mov dword [eax + 0x20], edi
mov edx, dword [eax + 0xc]
xor edx, edi
mov dword [eax + 0x24], edx
cmp ecx, 7
je 0x4e71c2
mov edi, dword [eax + 0x10]
xor edi, edx
mov dword [eax + 0x28], edi
mov edx, dword [eax + 0x14]
xor edx, edi
mov dword [eax + 0x2c], edx
add eax, 0x18
inc ecx
add ebx, 4
cmp ecx, 8
jne 0x4e7053
jmp 0x4e71c2
xor ecx, ecx
mov ebx, 0x4faa2c
mov edx, dword [eax + 0x1c]
mov edi, edx
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, edx
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and edx, 0xff
movzx edx, byte [esi + edx]
shl edx, 0x18
xor edi, edx
xor edi, dword [eax]
xor edi, dword [ebx]
mov dword [eax + 0x20], edi
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x20]
mov dword [eax + 0x24], edx
mov edi, dword [eax + 8]
xor edi, edx
mov dword [eax + 0x28], edi
mov edx, dword [eax + 0xc]
xor edx, edi
mov dword [eax + 0x2c], edx
cmp ecx, 6
je 0x4e71c2
mov edi, edx
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, edx
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, edx
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
shr edx, 0x18
movzx edx, byte [esi + edx]
shl edx, 0x18
xor edi, edx
xor edi, dword [eax + 0x10]
mov dword [eax + 0x30], edi
mov edx, dword [eax + 0x14]
xor edx, dword [eax + 0x30]
mov dword [eax + 0x34], edx
mov edi, dword [eax + 0x18]
xor edi, edx
mov dword [eax + 0x38], edi
mov edx, dword [eax + 0x1c]
xor edx, edi
mov dword [eax + 0x3c], edx
add eax, 0x20
inc ecx
add ebx, 4
cmp ecx, 7
jne 0x4e70eb
mov eax, dword [esp + 4]
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret