Function at 0x4b8d18
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 [0x4e34c8], 0
je 0x4b8d54
mov word [ebx + 0x110], 0
mov byte [ebx + 0x117], 0
xor eax, eax
mov dword [ebx + 0x118], eax
jmp 0x4b8d62
mov eax, ebx
xor ecx, ecx
mov edx, 0x11c
call fcn.00405ea8
cmp di, 0x80
je 0x4b8d84
cmp di, 0xc0
je 0x4b8d84
cmp di, 0x100
je 0x4b8d84
mov dword [esp + 4], 0xffffffff
jmp 0x4b8fbe
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.00405648
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 0x4b8e3a
mov ecx, 0xa
mov ebx, 0x4e34cc
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, dword [eax + 0x18]
mov dword [eax + 0x1c], edx
add eax, 0x10
add ebx, 4
dec ecx
jne 0x4b8dc8
jmp 0x4b8fbe
cmp di, 0xc0
jne 0x4b8edf
xor ecx, ecx
mov ebx, 0x4e34cc
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, dword [eax + 0x20]
mov dword [eax + 0x24], edx
cmp ecx, 7
je 0x4b8fbe
mov edi, dword [eax + 0x10]
xor edi, edx
mov dword [eax + 0x28], edi
mov edx, dword [eax + 0x14]
xor edx, dword [eax + 0x28]
mov dword [eax + 0x2c], edx
add eax, 0x18
inc ecx
add ebx, 4
cmp ecx, 8
jne 0x4b8e4c
jmp 0x4b8fbe
xor ecx, ecx
mov ebx, 0x4e34cc
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, dword [eax + 0x28]
mov dword [eax + 0x2c], edx
cmp ecx, 6
je 0x4b8fbe
mov edi, 0xff
and edi, edx
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, dword [eax + 0x38]
mov dword [eax + 0x3c], edx
add eax, 0x20
inc ecx
add ebx, 4
cmp ecx, 7
jne 0x4b8ee6
mov eax, dword [esp + 4]
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret