Function at 0x4d4c18
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
mov edi, dword [ebp + 8]
mov ecx, edi
and ecx, 3
cmp ecx, 1
je 0x4d4c88
mov eax, edi
and eax, 7
cmp eax, 3
je 0x4d4c71
mov esi, edi
mov edx, edi
and esi, 0x3f
cmp esi, 0x27
je 0x4d4c7f
mov eax, edi
and eax, 0x37
cmp eax, 7
je 0x4d4c7f
cmp eax, 0x17
je 0x4d4c7f
cmp ecx, 2
je 0x4d4e27
test ecx, ecx
je 0x4d4cb4
cmp esi, 0x37
sete al
cmp esi, 0x3f
sete dl
or eax, edx
test al, 1
jne 0x4d4cb4
mov edx, edi
and edx, 0x7f
shl edx, 0x10
or edx, 0xdabe
add esp, 0x10
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov edx, dword [edi + 3]
cmp dl, 0x37
jg 0x4d4ca2
movsx eax, dl
lea ecx, [eax + 3]
cmp ecx, 0x29
ja case.0x4d4c9b.0
jmp dword [ecx*4 + 0x56d540]
add esp, 0x10
rol edx, 0x18
sub edx, 0x73556fa9
pop esi
mov eax, edx
pop edi
pop ebp
ret
add esp, 0x10
mov edx, edi
mov eax, edx
pop esi
pop edi
pop ebp
ret
lea ecx, [eax - 0x4fb26c62]
mov dword [ebp - 0xc], ecx
lea ecx, [eax - 0x21]
cmp ecx, 9
ja 0x4d4d34
mov eax, 1
shl eax, cl
test eax, 0x24c
jne 0x4d4d0d
test ah, 1
jne 0x4d4e3a
test al, 1
je 0x4d4d34
mov eax, dword [edi + 0x1b]
call fcn.004d139c
mov ecx, dword [ebp - 0xc]
rol eax, 1
lea edx, [eax + ecx]
jmp 0x4d4c7f
mov dword [ebp - 0xc], 0xb0dd939e
mov eax, edx
shr eax, 8
test al, al
js 0x4d4d5a
add edi, 7
test dl, dl
js 0x4d4e3f
shr edx, 0x10
movzx esi, dl
nop
mov eax, dword [edi]
add edi, 4
call fcn.004d4b78
rol dword [ebp - 0xc], 5
xor dword [ebp - 0xc], eax
dec esi
jne 0x4d4d20
mov edx, dword [ebp - 0xc]
jmp 0x4d4c7f
mov eax, dword [edi + 7]
call fcn.004d4b78
mov esi, eax
mov eax, dword [edi + 0xb]
call fcn.004d4b78
mov edx, esi
rol edx, 5
xor edx, eax
jmp 0x4d4c7f
test dh, 1
mov eax, edi
je 0x4d4d6e
mov eax, dword [edi + 7]
test byte [eax + 4], 1
jne 0x4d4e49
mov eax, dword [eax + 7]
mov eax, dword [eax + 7]
mov eax, dword [eax + 0x13]
call fcn.004d4b78
lea edx, [eax + 0x61efa249]
jmp 0x4d4c7f
movzx eax, byte [edi + 9]
lea edx, [eax + 0x3daeae55]
jmp 0x4d4c7f
mov eax, dword [edi + 0x17]
call fcn.004d139c
lea edx, [eax + 0x339b0e4c]
jmp 0x4d4c7f
add esp, 0x10
mov eax, edi
pop esi
pop edi
pop ebp
jmp fcn.004d10f0
add esp, 0x10
mov eax, edi
pop esi
pop edi
pop ebp
jmp fcn.004d10f8
mov dword [ebp + 8], edi
add esp, 0x10
pop esi
pop edi
pop ebp
jmp fcn.0045c8ec
add esp, 0x10
mov eax, edi
pop esi
pop edi
pop ebp
jmp 0x4d10c8
shr edx, 0x10
sub edx, 0x55050552
jmp 0x4d4c7f
add esp, 0x10
mov eax, edi
pop esi
pop edi
pop ebp
jmp fcn.004d139c
add esp, 0x10
mov eax, edi
pop esi
pop edi
pop ebp
jmp fcn.004d147c
shr edx, 8
add edx, 0x4ecd0a9f
jmp 0x4d4c7f
mov eax, dword [edi + 7]
call fcn.004d4b78
lea edx, [eax - 0x52d32d52]
jmp 0x4d4c7f
mov eax, dword [edi + 6]
call fcn.004d4b78
lea edx, [eax - 0xcce646]
jmp 0x4d4c7f
mov eax, dword [edi + 7]
jmp 0x4d4e2a
mov esi, edx
shr esi, 0x10
jmp 0x4d4d20
mov dword [esp], str.c:_usr_work_edrive_w32texsrc_clisp249_clisp_2.49_src_hashtabl.d
mov eax, 0xb3a
mov dword [esp + 4], eax
call fcn.00420a64
nop
push ebp
sub ebx, 4
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
mov eax, dword [ebx]
call fcn.004d4b78
mov dword [ebp - 0xc], eax
mov ecx, 0x101
mov esi, dword [ebp - 8]
mul ecx
mov edi, edx
mov edx, dword [ebp - 0xc]
sub edx, edi
shr edx, 1
add edx, edi
shr edx, 0x17
mov edi, dword [ebp - 4]
mov ecx, edx
shl ecx, 0x18
sub ecx, edx
sub dword [ebp - 0xc], ecx
shl dword [ebp - 0xc], 7
mov eax, dword [ebp - 0xc]
add eax, 7
mov dword [0x698da0], eax
mov eax, 1
mov dword [0x699010], eax
mov esp, ebp
pop ebp
ret