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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff0
mov edi, ecx
mov ebp, edx
mov dword [esp], eax
lea ebx, [esp + 8]
mov esi, 0x42c988
xor eax, eax
mov dword [esp + 4], eax
cmp byte [0x42ca88], 0
je 0x4104c4
mov word [edi + 0x110], 0
mov byte [edi + 0x117], 0
xor eax, eax
mov dword [edi + 0x118], eax
jmp 0x4104d2
mov eax, edi
xor ecx, ecx
mov edx, 0x11c
call fcn.0040333c
cmp bp, 0x80
je 0x4104f4
cmp bp, 0xc0
je 0x4104f4
cmp bp, 0x100
je 0x4104f4
mov dword [esp + 4], 0xffffffff
jmp 0x4107b0
movzx eax, bp
shr eax, 5
mov word [esp + 0xc], ax
movzx eax, word [esp + 0xc]
mov ecx, eax
shl ecx, 2
mov edx, edi
mov eax, dword [esp]
call fcn.00402b1c
mov word [edi + 0x114], bp
mov ax, word [esp + 0xc]
add ax, 6
mov word [edi + 0x112], ax
mov byte [edi + 0x116], 0
mov dword [ebx], edi
cmp bp, 0x80
jne 0x4105d7
mov edx, 0xa
mov ecx, 0x42ca8c
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov edi, eax
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, eax
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, eax
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and eax, 0xff
movzx eax, byte [esi + eax]
shl eax, 0x18
xor edi, eax
mov eax, dword [ebx]
xor edi, dword [eax]
xor edi, dword [ecx]
mov eax, dword [ebx]
mov dword [eax + 0x10], edi
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov edi, dword [ebx]
xor eax, dword [edi + 0x10]
mov edi, dword [ebx]
mov dword [edi + 0x14], eax
mov edi, dword [ebx]
mov edi, dword [edi + 8]
xor edi, eax
mov eax, dword [ebx]
mov dword [eax + 0x18], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov edi, dword [ebx]
xor eax, dword [edi + 0x18]
mov edi, dword [ebx]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx]
add eax, 0x10
mov dword [ebx], eax
add ecx, 4
dec edx
jne 0x410548
jmp 0x4107b0
cmp bp, 0xc0
jne 0x41069f
xor edx, edx
mov ecx, 0x42ca8c
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
mov edi, eax
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, eax
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, eax
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and eax, 0xff
movzx eax, byte [esi + eax]
shl eax, 0x18
xor edi, eax
mov eax, dword [ebx]
xor edi, dword [eax]
xor edi, dword [ecx]
mov eax, dword [ebx]
mov dword [eax + 0x18], edi
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov edi, dword [ebx]
xor eax, dword [edi + 0x18]
mov edi, dword [ebx]
mov dword [edi + 0x1c], eax
mov edi, dword [ebx]
mov edi, dword [edi + 8]
xor edi, eax
mov eax, dword [ebx]
mov dword [eax + 0x20], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov edi, dword [ebx]
xor eax, dword [edi + 0x20]
mov edi, dword [ebx]
mov dword [edi + 0x24], eax
cmp edx, 7
je 0x4107b0
mov edi, dword [ebx]
mov edi, dword [edi + 0x10]
xor edi, eax
mov eax, dword [ebx]
mov dword [eax + 0x28], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
mov edi, dword [ebx]
xor eax, dword [edi + 0x28]
mov edi, dword [ebx]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx]
add eax, 0x18
mov dword [ebx], eax
inc edx
add ecx, 4
cmp edx, 8
jne 0x4105e9
jmp 0x4107b0
xor edx, edx
mov ecx, 0x42ca8c
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edi, eax
shr edi, 8
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, eax
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, eax
shr ebp, 0x18
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
and eax, 0xff
movzx eax, byte [esi + eax]
shl eax, 0x18
xor edi, eax
mov eax, dword [ebx]
xor edi, dword [eax]
xor edi, dword [ecx]
mov eax, dword [ebx]
mov dword [eax + 0x20], edi
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov edi, dword [ebx]
xor eax, dword [edi + 0x20]
mov edi, dword [ebx]
mov dword [edi + 0x24], eax
mov edi, dword [ebx]
mov edi, dword [edi + 8]
xor edi, eax
mov eax, dword [ebx]
mov dword [eax + 0x28], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov edi, dword [ebx]
xor eax, dword [edi + 0x28]
mov edi, dword [ebx]
mov dword [edi + 0x2c], eax
cmp edx, 6
je 0x4107b0
mov edi, eax
and edi, 0xff
movzx edi, byte [esi + edi]
mov ebp, eax
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 8
xor edi, ebp
mov ebp, eax
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [esi + ebp]
shl ebp, 0x10
xor edi, ebp
shr eax, 0x18
movzx eax, byte [esi + eax]
shl eax, 0x18
xor edi, eax
mov eax, dword [ebx]
xor edi, dword [eax + 0x10]
mov eax, dword [ebx]
mov dword [eax + 0x30], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
mov edi, dword [ebx]
xor eax, dword [edi + 0x30]
mov edi, dword [ebx]
mov dword [edi + 0x34], eax
mov edi, dword [ebx]
mov edi, dword [edi + 0x18]
xor edi, eax
mov eax, dword [ebx]
mov dword [eax + 0x38], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edi, dword [ebx]
xor eax, dword [edi + 0x38]
mov edi, dword [ebx]
mov dword [edi + 0x3c], eax
mov eax, dword [ebx]
add eax, 0x20
mov dword [ebx], eax
inc edx
add ecx, 4
cmp edx, 7
jne 0x4106a6
mov eax, dword [esp + 4]
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret