Function at 0x4dfe00
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xe0
call fcn.005c8080
mov eax, dword [0x678dc8]
xor eax, esp
mov dword [esp + 0xdc], eax
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0x104]
push ebx
mov ebx, dword [esp + 0x100]
push ebp
mov ebp, dword [esp + 0xf8]
push esi
mov esi, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov eax, dword [edx]
mov ecx, eax
push edi
sub ecx, ebx
mov dword [esp + 0x18], ebp
xor edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edi
cmp dword [esp + 0xf8], ebx
jb 0x4dfe7a
cmp ebx, 0x40
ja 0x4dfe7a
test ebx, ebx
jne 0x4dfe95
cmp dword [esp + 0x110], edi
jne 0x4e0076
xor eax, eax
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005c77ea
add esp, 0xe0
ret
cmp dword [esp + 0x108], 1
mov dword [edx], ecx
jne 0x4dfec2
test ebp, ebp
je 0x4dfeb1
mov eax, dword [esp + 0xfc]
add eax, ecx
mov dword [ebp], eax
test esi, esi
je 0x4e0076
mov dword [esi], edi
mov eax, 1
jmp 0x4dfe7c
push 0
push ebx
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x20]
call fcn.004bd710
add esp, 0x10
test eax, eax
je 0x4dfe7a
test ebp, ebp
je 0x4dfe7a
test esi, esi
je 0x4dfe7a
push 0
push 0x66ed1f
push ebx
call fcn.004a4e80
mov ebp, eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ebp
mov dword [eax], ebp
test ebp, ebp
je 0x4dfe7a
mov edx, dword [esp + 0xf8]
lea ecx, [esp + 0x6c]
neg ecx
mov dword [esi], 1
and ecx, 0x3f
lea eax, [esp + 0x6c]
add ecx, eax
lea eax, [ebx + 0x100]
mov dword [esp + 0x18], ecx
cmp edx, eax
jbe 0x4dff3e
mov edi, edx
sub edi, ebx
sub edi, 0x100
mov dword [esp + 0x10], edi
push ebx
xor esi, esi
mov dword [esp + 0x18], 0
push esi
push ecx
call fcn.005c9580
add esp, 0xc
mov dword [esp + 0x20], esi
cmp edi, dword [esp + 0xf8]
jae 0x4dfff8
mov ebp, dword [esp + 0x10]
mov ecx, ebp
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov eax, ebp
mov edx, ecx
xor eax, dword [esp + 0x24]
xor edx, dword [esp + 0x1c]
lea edi, [eax - 1]
not eax
shr eax, 0x1f
shr edi, 0x1f
and edi, eax
mov eax, ebp
xor eax, dword [esp + 0x1c]
neg edi
or edx, eax
mov eax, dword [esp + 0xfc]
xor edx, ebp
shr edx, 0x1f
neg edx
mov cl, byte [eax + ebp]
mov eax, edi
or eax, dword [esp + 0x14]
inc ebp
and edi, dword [esp + 0x20]
and eax, edx
mov edx, dword [esp + 0x18]
or esi, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], eax
and al, cl
or byte [edi + edx], al
inc edi
mov ecx, edi
mov eax, ebx
sub ecx, ebx
xor eax, edi
xor ecx, ebx
or ecx, eax
xor ecx, edi
shr ecx, 0x1f
neg ecx
and edi, ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], ecx
cmp ebp, dword [esp + 0xf8]
jb 0x4dff72
mov ebp, dword [esp + 0x28]
jmp 0x4dfffc
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x4e0076
movzx eax, byte [esp + 0x110]
mov edi, ebx
mov ecx, eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x2c]
not ecx
sub eax, ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, esi
lea ebp, [ebp + 1]
xor eax, 0x20
mov al, byte [eax + edx]
mov dl, byte [esi + edx]
inc esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov cl, byte [ecx + ebp - 1]
and cl, al
mov eax, dword [esp + 0x1c]
and al, dl
mov edx, dword [esp + 0x18]
or al, cl
mov ecx, esi
sub ecx, ebx
mov byte [ebp - 1], al
xor ecx, ebx
mov eax, ebx
xor eax, esi
or ecx, eax
xor ecx, esi
shr ecx, 0x1f
neg ecx
and esi, ecx
mov ecx, dword [esp + 0x10]
sub edi, 1
jne 0x4e0020
mov eax, 1
jmp 0x4dfe7c