Function at 0x4a83e5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [ebp + 0xc], 0
jne 0x4a83f6
xor eax, eax
jmp 0x4a860c
xor eax, eax
inc eax
je 0x4a8438
mov dword [ebp - 4], 1
movzx eax, byte [ebp - 4]
test eax, eax
je 0x4a8422
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004a8bb0
add esp, 0xc
jmp 0x4a860c
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004a8610
add esp, 0xc
jmp 0x4a860c
mov eax, dword [ebp + 8]
xor eax, 0xffffffff
mov dword [ebp + 8], eax
cmp dword [ebp + 0x10], 8
jb 0x4a85c9
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
sub eax, 8
mov dword [ebp + 0x10], eax
jmp 0x4a8441
cmp dword [ebp + 0x10], 0
je 0x4a8606
mov eax, 0x400
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx]
xor ecx, dword [ebp + 8]
and ecx, 0xff
mov edx, dword [ebp + 8]
shr edx, 8
xor edx, dword [eax + ecx*4 + 0x4ee950]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
dec eax
mov dword [ebp + 0x10], eax
jne 0x4a85cf
mov eax, dword [ebp + 8]
xor eax, 0xffffffff
mov esp, ebp
pop ebp
ret