Function at 0x4c7440
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
mov ecx, ebp
call fcn.004e3cd0
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4c76b5
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4c76b5
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 8
jb 0x4c76b5
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 9
jb 0x4c76b5
push 0x10
lea eax, [esp + 0x10]
push edx
push eax
call fcn.004f1c30
add esp, 0xc
mov byte [esp + 0x1c], 0
xor ecx, ecx
mov edx, 1
movsx edi, byte [edx + esi - 1]
movsx eax, byte [edx + esi]
sub eax, edi
jns 0x4c74bc
neg eax
test ecx, ecx
jge 0x4c74c4
add ecx, eax
jmp 0x4c74c6
sub ecx, eax
inc edx
cmp edx, 8
jl 0x4c74ad
test ecx, ecx
jge 0x4c74d2
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x4c74df
cmp eax, 0x39
jle 0x4c751d
cmp eax, 0x61
jl 0x4c74e9
cmp eax, 0x7a
jle 0x4c751d
cmp eax, 0x41
jl 0x4c74f3
cmp eax, 0x5a
jle 0x4c751d
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x4c7504
cmp eax, 0x39
jle 0x4c751d
cmp eax, 0x61
jl 0x4c750e
cmp eax, 0x7a
jle 0x4c751d
cmp eax, 0x41
jl 0x4c7518
cmp eax, 0x5a
jle 0x4c751d
mov eax, 0x78
mov byte [esp + 0x14], al
xor eax, eax
xor ecx, ecx
movsx edx, byte [ecx + esi]
xor eax, edx
inc ecx
cmp ecx, 9
jl 0x4c7525
cmp eax, 0x30
jge 0x4c753c
movsx eax, byte [esp + 0xc]
inc eax
cmp eax, 0x7a
jle 0x4c7547
movsx eax, byte [esp + 0xd]
inc eax
cmp eax, 0x30
jl 0x4c7551
cmp eax, 0x39
jle 0x4c756a
cmp eax, 0x61
jl 0x4c755b
cmp eax, 0x7a
jle 0x4c756a
cmp eax, 0x41
jl 0x4c7565
cmp eax, 0x5a
jle 0x4c756a
mov eax, 0x52
mov byte [esp + 0x15], al
xor ecx, ecx
mov edx, 1
movsx edi, byte [esp + edx + 0xb]
movsx eax, byte [esp + edx + 0xc]
sub eax, edi
jns 0x4c7585
neg eax
test ecx, ecx
jge 0x4c758d
add ecx, eax
jmp 0x4c758f
sub ecx, eax
inc edx
cmp edx, 8
jl 0x4c7575
mov edx, 2
movsx edi, byte [edx + esi - 2]
movsx eax, byte [edx + esi]
sub eax, edi
jns 0x4c75a9
neg eax
test ecx, ecx
jge 0x4c75b1
add ecx, eax
jmp 0x4c75b3
sub ecx, eax
inc edx
cmp edx, 0xa
jl 0x4c759a
test ecx, ecx
jge 0x4c75bf
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x4c75cc
cmp eax, 0x39
jle 0x4c760a
cmp eax, 0x61
jl 0x4c75d6
cmp eax, 0x7a
jle 0x4c760a
cmp eax, 0x41
jl 0x4c75e0
cmp eax, 0x5a
jle 0x4c760a
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x4c75f1
cmp eax, 0x39
jle 0x4c760a
cmp eax, 0x61
jl 0x4c75fb
cmp eax, 0x7a
jle 0x4c760a
cmp eax, 0x41
jl 0x4c7605
cmp eax, 0x5a
jle 0x4c760a
mov eax, 0x6e
mov byte [esp + 0x16], al
xor eax, eax
xor ecx, ecx
movsx edx, byte [ecx + esi]
add ecx, 2
xor eax, edx
cmp ecx, 0xa
jl 0x4c7612
xor ecx, ecx
movsx edx, byte [esp + ecx + 0xc]
xor eax, edx
inc ecx
cmp ecx, 8
jl 0x4c7622
cmp eax, 0x30
jge 0x4c763c
movsx eax, byte [esp + 0x11]
add eax, 0x14
cmp eax, 0x7a
jle 0x4c7649
movsx eax, byte [esp + 0xe]
sub eax, 0xa
cmp eax, 0x30
jge 0x4c7656
movsx eax, byte [esp + 0xf]
add eax, 0x14
cmp eax, 0x7a
jle 0x4c7663
movsx eax, byte [esp + 0x10]
sub eax, 0xa
cmp eax, 0x30
jl 0x4c766d
cmp eax, 0x39
jle 0x4c7686
cmp eax, 0x61
jl 0x4c7677
cmp eax, 0x7a
jle 0x4c7686
cmp eax, 0x41
jl 0x4c7681
cmp eax, 0x5a
jle 0x4c7686
mov eax, 0x47
push esi
mov ecx, ebp
mov byte [esp + 0x1b], al
mov byte [esp + 0x1c], 0
call fcn.004e5040
push 0x5f
mov ecx, ebp
call fcn.004e3f90
lea eax, [esp + 0xc]
mov ecx, ebp
push eax
call fcn.004e5040
pop edi
pop esi
mov al, 1
pop ebp
add esp, 0x18
ret
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x18
ret