Function at 0x4c68c0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], edi
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov esi, dword [eax + 4]
mov edx, esi
lea eax, [esi + 0x3f]
shr eax, 6
sub edx, eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x14], eax
lea ebx, [edx + edx*2]
shr ebx, 2
add ebx, 3
cmp ecx, ebx
je 0x4c6919
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push dword [ebp - 0x14]
call fcn.004e8cdc
add esp, 0x10
test ebx, ebx
jne 0x4c6910
xor eax, eax
jmp 0x4c6919
push ebx
call fcn.004e80a4
add esp, 4
xor edx, edx
mov dword [edi + 8], eax
mov dword [edi + 4], ebx
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], edx
cmp esi, 3
jbe 0x4c6baa
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c6954
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jb 0x4c6954
lea eax, [edx + 1]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov bh, byte [edx + eax]
jmp 0x4c695d
mov dword [ecx + 0x10], 0x410
xor bh, bh
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c6984
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jb 0x4c6984
lea eax, [edx + 1]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov al, byte [edx + eax]
mov byte [ebp - 1], al
jmp 0x4c698f
mov dword [ecx + 0x10], 0x410
mov byte [ebp - 1], 0
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c69b3
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jb 0x4c69b3
lea eax, [edx + 1]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov dh, byte [edx + eax]
jmp 0x4c69bc
mov dword [ecx + 0x10], 0x410
xor dh, dh
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c69e8
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 4]
sub eax, dword [ebp - 0xc]
cmp eax, 1
jb 0x4c69e8
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
mov bl, byte [ecx + eax]
jmp 0x4c69f1
mov dword [ecx + 0x10], 0x410
xor bl, bl
test bh, bh
je 0x4c6ba7
cmp bh, 0x2b
jb 0x4c6b96
mov cl, byte [ebp - 1]
cmp cl, 0x2b
jb 0x4c6b96
cmp dh, 0x2b
jb 0x4c6b96
cmp bl, 0x2b
jb 0x4c6b96
cmp bh, 0x7a
ja 0x4c6b96
cmp cl, 0x7a
ja 0x4c6b96
cmp dh, 0x7a
ja 0x4c6b96
cmp bl, 0x7a
ja 0x4c6b96
movzx eax, bh
mov al, byte [eax + 0x56819d]
mov byte [ebp - 1], al
movzx eax, cl
mov bh, byte [eax + 0x56819d]
cmp dh, 0x3d
jne 0x4c6a62
xor dl, dl
jmp 0x4c6a6b
movzx eax, dh
mov dl, byte [eax + 0x56819d]
cmp bl, 0x3d
jne 0x4c6a74
xor al, al
jmp 0x4c6a7d
movzx eax, bl
mov al, byte [eax + 0x56819d]
mov ch, dl
mov cl, bh
shl ch, 6
or ch, al
shr cl, 4
mov al, byte [ebp - 1]
shl al, 2
or cl, al
mov eax, dword [edi + 8]
mov edi, dword [ebp - 8]
inc dword [ebp - 8]
mov byte [edi + eax], cl
mov edi, dword [ebp - 0x10]
cmp dh, 0x3d
je 0x4c6abe
mov eax, dword [edi + 8]
mov edi, dword [ebp - 8]
shr dl, 2
shl bh, 4
or dl, bh
mov byte [edi + eax], dl
mov edx, edi
mov edi, dword [ebp - 0x10]
inc edx
jmp 0x4c6ac1
mov edx, dword [ebp - 8]
cmp bl, 0x3d
je 0x4c6baa
mov eax, dword [edi + 8]
sub esi, 4
mov byte [edx + eax], ch
inc edx
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], eax
test al, 0xf
jne 0x4c6b8b
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c6b0a
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jb 0x4c6b0a
lea eax, [edx + 1]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov al, byte [edx + eax]
jmp 0x4c6b13
mov dword [ecx + 0x10], 0x410
xor al, al
dec esi
cmp al, 0x20
jne 0x4c6b52
nop dword [eax + eax]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x4c6b44
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
sub ecx, edx
cmp ecx, 1
jb 0x4c6b44
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov al, byte [edx + eax]
jmp 0x4c6b4d
mov dword [eax + 0x10], 0x410
xor al, al
dec esi
cmp al, 0x20
je 0x4c6b20
cmp al, 0xd
jne 0x4c6b84
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0x10], 0
jne 0x4c6b7a
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jb 0x4c6b7a
lea eax, [edx + 1]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov al, byte [edx + eax]
jmp 0x4c6b83
mov dword [ecx + 0x10], 0x410
xor al, al
dec esi
cmp al, 0xa
jne 0x4c6b96
mov edx, dword [ebp - 8]
cmp esi, 3
ja 0x4c6930
jmp 0x4c6baa
mov eax, dword [edi + 0xc]
pop edi
pop esi
pop ebx
mov dword [eax + 0x10], 0x411
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
cmp edx, dword [edi + 4]
je 0x4c6bb7
push edx
mov ecx, edi
call fcn.004c6cf0
mov ecx, dword [edi + 0xc]
push edi
call fcn.004e3070
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret