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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
test ecx, ecx
je 0x496110
test esi, esi
je 0x496110
cmp edi, 0x80
je 0x495f94
cmp edi, 0xc0
je 0x495f94
mov eax, 0xfffffffe
cmp edi, 0x100
jne 0x496108
mov ebx, esi
jmp 0x495fae
mov ebx, esi
cmp edi, 0x80
je 0x496118
cmp edi, 0xc0
je 0x496346
mov dword [esi + 0xf0], 0xe
xor eax, eax
xor edx, edx
mov al, byte [ecx]
mov dl, byte [ecx + 3]
shl eax, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 1]
shl eax, 0x10
xor edx, eax
xor eax, eax
mov al, byte [ecx + 2]
shl eax, 8
xor edx, eax
xor eax, eax
mov dword [esi], edx
xor edx, edx
mov dl, byte [ecx + 4]
mov al, byte [ecx + 5]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 7]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 6]
shl eax, 8
xor edx, eax
xor eax, eax
mov dword [esi + 4], edx
xor edx, edx
mov dl, byte [ecx + 8]
mov al, byte [ecx + 9]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xb]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xa]
shl eax, 8
xor edx, eax
xor eax, eax
mov dword [esi + 8], edx
xor edx, edx
mov dl, byte [ecx + 0xc]
mov al, byte [ecx + 0xd]
shl edx, 0x18
shl eax, 0x10
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xf]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xe]
shl eax, 8
xor edx, eax
cmp edi, 0x80
mov dword [esi + 0xc], edx
je 0x496220
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 0x10]
mov al, byte [ecx + 0x11]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x13]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x12]
shl eax, 8
xor edx, eax
xor eax, eax
mov dword [esi + 0x10], edx
xor edx, edx
mov dl, byte [ecx + 0x14]
mov al, byte [ecx + 0x15]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x17]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x16]
shl eax, 8
xor edx, eax
cmp edi, 0xc0
mov dword [esi + 0x14], edx
je 0x4962a6
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 0x18]
mov al, byte [ecx + 0x19]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1b]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1a]
shl eax, 8
xor edx, eax
xor eax, eax
mov dword [esi + 0x18], edx
xor edx, edx
mov dl, byte [ecx + 0x1c]
mov al, byte [ecx + 0x1d]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1f]
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1e]
shl eax, 8
xor edx, eax
cmp edi, 0x100
mov dword [esi + 0x1c], edx
je 0x496127
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
or eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 0xf0], 0xa
jmp 0x495fb8
xor esi, esi
jmp 0x49619a
mov eax, ecx
mov edi, dword [ebx - 0xc]
movzx edx, cl
shr eax, 0x18
movzx edx, byte [edx*4 + 0x4d4940]
mov eax, dword [eax*4 + 0x4d4d40]
and eax, 0xff000000
xor eax, edx
mov edx, dword [ebx - 0x10]
xor eax, edx
mov edx, ecx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x4d5140]
and edx, 0xff0000
xor eax, edx
movzx edx, ch
mov ecx, dword [ebx - 8]
mov edx, dword [edx*4 + 0x4d4540]
and edx, 0xff00
xor eax, edx
mov edx, dword [ebx - 4]
mov dword [ebx + 0x10], eax
xor eax, edi
mov dword [ebx + 0x14], eax
xor eax, ecx
mov dword [ebx + 0x18], eax
xor eax, edx
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x1c]
add ebx, 0x20
mov eax, dword [esi*4 + 0x4d5540]
inc esi
mov edx, dword [ebx - 0x20]
mov edi, dword [ebx - 0x14]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x4d4540]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x4d4940]
xor edx, eax
mov eax, ecx
shr eax, 0x10
and eax, 0xff
movzx ecx, ch
mov eax, dword [eax*4 + 0x4d4d40]
and eax, 0xff000000
xor edx, eax
mov eax, dword [ecx*4 + 0x4d5140]
and eax, 0xff0000
xor edx, eax
mov eax, dword [ebx - 0x1c]
mov dword [ebx], edx
xor edx, eax
mov eax, dword [ebx - 0x18]
mov dword [ebx + 4], edx
xor edx, eax
mov ecx, edx
mov dword [ebx + 8], edx
xor ecx, edi
cmp esi, 7
mov dword [ebx + 0xc], ecx
jne 0x496130
jmp 0x496106
xor esi, esi
mov ecx, dword [ebx + 0xc]
add ebx, 0x10
mov edx, dword [esi*4 + 0x4d5540]
inc esi
mov eax, dword [ebx - 0x10]
mov edi, dword [ebx - 0xc]
xor eax, edx
movzx edx, cl
mov edx, dword [edx*4 + 0x4d4540]
and edx, 0xff00
xor eax, edx
mov edx, ecx
shr edx, 0x18
movzx edx, byte [edx*4 + 0x4d4940]
xor eax, edx
mov edx, ecx
shr edx, 0x10
and edx, 0xff
movzx ecx, ch
mov edx, dword [edx*4 + 0x4d4d40]
and edx, 0xff000000
xor eax, edx
mov edx, dword [ecx*4 + 0x4d5140]
and edx, 0xff0000
mov ecx, dword [ebx - 8]
xor eax, edx
mov edx, dword [ebx - 4]
mov dword [ebx], eax
xor eax, edi
mov dword [ebx + 4], eax
xor eax, ecx
mov dword [ebx + 8], eax
xor eax, edx
mov dword [ebx + 0xc], eax
cmp esi, 0xa
jne 0x496222
jmp 0x496106
xor esi, esi
jmp 0x4962c0
mov ecx, dword [ebx - 8]
mov edx, dword [ebx - 4]
xor eax, ecx
mov dword [ebx + 0x10], eax
xor eax, edx
mov dword [ebx + 0x14], eax
mov ecx, dword [ebx + 0x14]
add ebx, 0x18
mov eax, dword [esi*4 + 0x4d5540]
inc esi
mov edx, dword [ebx - 0x18]
mov edi, dword [ebx - 0xc]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x4d4540]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x4d4940]
xor edx, eax
mov eax, ecx
shr eax, 0x10
and eax, 0xff
movzx ecx, ch
mov eax, dword [eax*4 + 0x4d4d40]
and eax, 0xff000000
xor edx, eax
mov eax, dword [ecx*4 + 0x4d5140]
and eax, 0xff0000
xor edx, eax
mov eax, dword [ebx - 0x14]
mov dword [ebx], edx
xor edx, eax
mov eax, dword [ebx - 0x10]
mov dword [ebx + 4], edx
xor edx, eax
mov eax, edx
mov dword [ebx + 8], edx
xor eax, edi
cmp esi, 8
mov dword [ebx + 0xc], eax
jne 0x4962b0
jmp 0x496106
mov dword [esi + 0xf0], 0xc
jmp 0x495fb8