Function at 0x4d7944
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call sub.rtl170.bpl__System__LStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x4d7b2a
push dword fs:[eax]
mov dword fs:[eax], esp
push 8
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x418ccc]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 4
push 2
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [sym.imp.rtl170.bpl___xp_14TInt64DynArray]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 4
push 2
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [sym.imp.rtl170.bpl___xp_14TInt64DynArray]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 4
push 0
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, dword [0x418ccc]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 4
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
push eax
push 0
push 8
xor ecx, ecx
mov edx, dword [ebx + 0x68]
mov eax, dword [sym.imp.dac170.bpl__Clrclasses_Buffer_]
call sub.dac170.bpl__Clrclasses_Buffer_BlockCopy_qqrx25System__DynamicArray_tuc_it1ii
cmp dword [ebp - 4], 0
je 0x4d7ae4
mov eax, dword [ebx + 0x1c]
call fcn.004d48e4
mov esi, eax
mov eax, dword [sym.imp.dac170.bpl__Clrclasses_Encoding_]
call sub.dac170.bpl__Clrclasses_Encoding_Default_qqrv
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 4]
mov edi, dword [eax]
call dword [edi]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, dword [ebx]
call fcn.004d7bf4
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebx]
call fcn.004d7bf4
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
xor eax, dword [ecx]
xor edx, dword [ecx + 4]
push edx
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0xc]
xor eax, dword [ecx + 8]
xor edx, dword [ecx + 0xc]
push edx
push eax
lea edx, [ebp - 0x40]
mov eax, dword [ebx]
call fcn.004d7ba4
jmp 0x4d7a96
inc dword [ebp - 0x18]
lea edx, [ebp - 0x40]
mov eax, dword [ebx]
call fcn.004d7b3c
fmul dword [0x4d7b38]
add esp, 0xfffffff4
fstp xword [esp]
wait
call sub.rtl170.bpl__System_Math_Floor_qqrxg
add al, 0x40
mov byte [ebp - 0x1a], al
movzx edx, byte [ebp - 0x1a]
mov eax, dword [ebx + 0x1c]
call fcn.004d4bc8
mov eax, dword [ebp - 0x10]
call sub.rtl170.bpl__System__DynArrayLength_qqrpxv
cmp eax, dword [ebp - 0x18]
jg 0x4d7a66
lea edx, [ebp - 0x40]
mov eax, dword [ebx]
call fcn.004d7b3c
fmul dword [0x4d7b38]
add esp, 0xfffffff4
fstp xword [esp]
wait
call sub.rtl170.bpl__System_Math_Floor_qqrxg
mov byte [ebp - 0x19], al
mov eax, dword [ebx + 0x1c]
call fcn.004d48e4
mov edi, eax
mov eax, dword [ebx + 0x1c]
call fcn.004d48c4
cmp edi, esi
je 0x4d7ae4
movzx edx, byte [ebp - 0x19]
xor byte [eax + esi], dl
inc esi
cmp edi, esi
jne 0x4d7ad8
xor edx, edx
mov eax, dword [ebx + 0x1c]
call fcn.004d4bc8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d7b31
lea eax, [ebp - 0x14]
mov edx, dword [0x418ccc]
mov ecx, 2
call sub.rtl170.bpl__System__FinalizeArray_qqrpvt1ui
lea eax, [ebp - 0xc]
mov edx, dword [sym.imp.rtl170.bpl___xp_14TInt64DynArray]
mov ecx, 2
call sub.rtl170.bpl__System__FinalizeArray_qqrpvt1ui
lea eax, [ebp - 4]
call sub.rtl170.bpl__System__LStrClr_qqrpv
ret