Function at 0x4d20c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x40
mov edi, dword [ebp + 8]
mov eax, edi
and eax, 3
dec eax
je 0x4d20f6
mov eax, edi
and eax, 0x27
cmp eax, 7
je case.0x4d2109.26
mov eax, edi
mov edx, edi
and eax, 0x3f
cmp eax, 0x27
je 0x4d2246
add esp, 0x40
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [edi + 3]
cmp cl, 0x37
jg case.0x4d2109.32
movsx eax, cl
add eax, 3
cmp eax, 0x23
ja case.0x4d2109.0
jmp dword [eax*4 + 0x56d170]
mov dword [esp], edi
call fcn.00463af0
mov edx, eax
add esp, 0x40
mov eax, edx
pop esi
pop edi
pop ebp
ret
add esp, 0x40
mov edx, edi
mov eax, edx
pop esi
pop edi
pop ebp
ret
test cl, cl
js 0x4d2383
mov dword [ebp - 0x20], 0
cmp cl, 0x32
setne dl
cmp cl, 0x35
setne al
movzx eax, al
test edx, eax
jne 0x4d225c
movzx edx, ch
movsx eax, cl
shl edx, 0x18
shl eax, 0x10
lea eax, [edx + eax]
mov edx, dword [ebp - 0x20]
cmp dword [ebp + 0xc], 0x10
lea esi, [eax + edx + 0x3168b8d]
setle dl
xor eax, eax
cmp dword [ebp - 0x20], 0
setne al
test edx, eax
je 0x4d2354
mov eax, dword [ebp - 0x20]
lea ecx, [edi + 7]
mov dword [ebp - 0x24], ecx
cmp eax, 0x10
mov dword [ebp - 0x28], eax
jbe 0x4d219d
mov dword [ebp - 0x28], 0x10
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
inc edx
mov dword [ebp - 0x34], edx
add ecx, 2
mov dword [ebp - 0x38], ecx
jmp 0x4d21da
mov dword [ebp - 0x14], 0xf
mov eax, dword [ebp + 0xc]
add eax, 2
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x2c]
mov dword [esp], edx
call fcn.004d20c0
rol esi, 5
xor esi, eax
dec dword [ebp - 0x28]
je 0x4d2351
mov dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x24], 4
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
and eax, 7
cmp eax, 3
jne 0x4d21b0
cmp dword [ebp - 0x34], 0x10
mov eax, 1
jg 0x4d21cc
mov ecx, dword [ebp - 0x2c]
mov edx, fcn.004d20c0
mov eax, dword [ecx + 1]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x38]
mov dword [esp], edx
lea edx, [ebp - 0x14]
call fcn.004d15dc
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
mov edx, 1
test eax, eax
jne 0x4d2390
mov eax, dword [ebp - 0x34]
and eax, 3
movzx ecx, byte [eax + 0x56cfe4]
mov eax, dword [ebp - 0x30]
rol eax, cl
xor eax, edx
jmp 0x4d21cc
shr edi, 7
mov dword [esp], edi
call fcn.0044bfd0
lea edx, [eax - 0x35515311]
jmp 0x4d20ed
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov dword [ebp - 0x20], eax
jmp 0x4d2154
mov dword [esp], edi
call fcn.0042a170
cmp dword [ebp + 0xc], 0x10
mov esi, eax
lea eax, [eax + 0x724bd24e]
mov dword [ebp - 0x18], eax
mov edx, eax
jg 0x4d20ed
mov dword [ebp - 0xc], 0
lea eax, [ebp - 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0042a554
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x18]
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.004d1d04
mov edx, eax
jmp 0x4d211a
mov eax, dword [edi + 7]
mov dword [esp], eax
call fcn.00463af0
mov esi, eax
mov eax, dword [edi + 0xb]
mov dword [esp], eax
call fcn.00463af0
mov edx, eax
rol edx, 5
xor edx, esi
jmp 0x4d20ed
mov dword [ebp - 0x1c], 0xf1c90a73
mov esi, ecx
shr esi, 0x10
je 0x4d2314
test ch, 0x10
lea edx, [edi + 0xf]
je 0x4d2305
lea edx, [edi + 0x13]
rol dword [ebp - 0x1c], 5
mov eax, dword [edx]
add edx, 4
xor dword [ebp - 0x1c], eax
dec esi
jne 0x4d2305
cmp dword [ebp + 0xc], 0x10
mov edx, dword [ebp - 0x1c]
jg 0x4d20ed
mov esi, dword [edi + 0xb]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0042a4cc
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
inc ecx
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x1c]
jmp 0x4d22b5
mov ecx, dword [edi + 3]
test cl, cl
js 0x4d237c
shr ecx, 0x18
je 0x4d237c
mov eax, dword [ebp - 0x20]
lea edx, [edi + eax*4 + 7]
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [edx]
rol esi, 5
inc edx
xor esi, eax
dec ecx
jne 0x4d2370
mov edx, esi
jmp 0x4d20ed
mov eax, ecx
shr eax, 0x10
mov dword [ebp - 0x20], eax
jmp 0x4d2154
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx - 3]
mov ecx, fcn.004d20c0
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x38]
mov dword [esp], edx
lea edx, [ebp - 0x14]
call fcn.004d15dc
mov edx, eax
jmp 0x4d2230