Function at 0x4e9f40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404870
xor eax, eax
push ebp
push 0x4ea162
push dword fs:[eax]
mov dword fs:[eax], esp
push 8
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, dword [0x4b8420]
call fcn.004059d8
add esp, 4
push 2
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x406a5c]
call fcn.004059d8
add esp, 4
push 2
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x406a5c]
call fcn.004059d8
add esp, 4
push 0
lea eax, [ebp - 0x28]
mov ecx, 1
mov edx, dword [0x4b8420]
call fcn.004059d8
add esp, 4
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push 0
push 8
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x64]
mov eax, dword [0x4b87f0]
call fcn.004b9e08
cmp dword [ebp - 8], 0
je 0x4ea110
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
call fcn.004e0ec8
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4b84f8]
call fcn.004b8e54
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004ea268
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004ea268
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
xor eax, dword [ecx]
xor edx, dword [ecx + 4]
push edx
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x10]
xor eax, dword [ecx + 8]
xor edx, dword [ecx + 0xc]
push edx
push eax
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004ea1fc
jmp 0x4ea0a6
inc dword [ebp - 0x18]
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004ea174
fmul dword [0x4ea170]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004329e0
add al, 0x40
mov byte [ebp - 0x2d], al
mov dl, byte [ebp - 0x2d]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
call fcn.004e1124
mov eax, dword [ebp - 0x14]
call fcn.0040581c
cmp eax, dword [ebp - 0x18]
jg 0x4ea071
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004ea174
fmul dword [0x4ea170]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004329e0
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
call fcn.004e0ec8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
call fcn.004e0e6c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
je 0x4ea110
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x21]
xor byte [eax + edx], cl
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jne 0x4ea0f9
xor edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
call fcn.004e1124
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ea169
lea eax, [ebp - 0x28]
mov edx, dword [0x4b8420]
call fcn.00405af8
lea eax, [ebp - 0x14]
mov edx, dword [0x4b8420]
call fcn.00405af8
lea eax, [ebp - 0x10]
mov edx, dword [0x406a5c]
mov ecx, 2
call fcn.00404fb8
lea eax, [ebp - 8]
call fcn.004043c0
ret