Function at 0x4f0520
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
cmp ebx, edi
je 0x4f076b
push esi
mov esi, dword [ebp + 0x14]
mov al, byte [ebx]
inc ebx
mov byte [ebp - 2], al
cmp ebx, edi
je 0x4f0727
mov cl, byte [ebx]
inc ebx
mov byte [ebp + 0xb], cl
cmp ebx, edi
je 0x4f06dc
mov cl, byte [ebx]
inc ebx
mov byte [ebp - 1], cl
test esi, esi
je 0x4f05ac
movzx eax, al
shr eax, 2
mov al, byte [eax*4 + 0x835800]
mov byte [ebp + 0xf], al
mov eax, dword [esi + 0x20]
cmp dword [eax], 0
je 0x4f0596
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
test eax, eax
jle 0x4f0596
dec eax
mov dword [ecx], eax
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
mov al, byte [ebp + 0xf]
mov byte [edx], al
movzx eax, al
jmp 0x4f05a4
mov eax, dword [esi]
mov ecx, esi
mov edx, dword [eax + 0xc]
movzx eax, byte [ebp + 0xf]
push eax
call edx
mov esi, dword [ebp + 0x14]
cmp eax, 0xffffffff
jne 0x4f05b0
mov byte [ebp + 0x10], 1
test esi, esi
je 0x4f060f
movzx ecx, byte [ebp - 2]
movzx eax, byte [ebp + 0xb]
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov al, byte [ecx*4 + 0x835800]
mov byte [ebp + 0xf], al
mov eax, dword [esi + 0x20]
cmp dword [eax], 0
je 0x4f05f9
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
test eax, eax
jle 0x4f05f9
dec eax
mov dword [ecx], eax
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
mov al, byte [ebp + 0xf]
mov byte [edx], al
movzx eax, al
jmp 0x4f0607
mov eax, dword [esi]
mov ecx, esi
mov edx, dword [eax + 0xc]
movzx eax, byte [ebp + 0xf]
push eax
call edx
mov esi, dword [ebp + 0x14]
cmp eax, 0xffffffff
jne 0x4f0613
mov byte [ebp + 0x10], 1
test esi, esi
je 0x4f066f
movzx ecx, byte [ebp + 0xb]
movzx eax, byte [ebp - 1]
and ecx, 0xf
shr eax, 6
lea eax, [eax + ecx*4]
mov cl, byte [eax*4 + 0x835800]
mov eax, dword [esi + 0x20]
mov byte [ebp + 0xb], cl
cmp dword [eax], 0
je 0x4f065a
mov edx, dword [esi + 0x30]
mov eax, dword [edx]
test eax, eax
jle 0x4f065a
dec eax
mov dword [edx], eax
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
mov al, byte [ebp + 0xb]
mov byte [edx], al
movzx eax, al
jmp 0x4f0667
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
movzx eax, cl
mov ecx, esi
push eax
call edx
mov esi, dword [ebp + 0x14]
cmp eax, 0xffffffff
jne 0x4f0673
mov byte [ebp + 0x10], 1
test esi, esi
je 0x4f06c5
movzx eax, byte [ebp - 1]
and eax, 0x3f
mov cl, byte [eax*4 + 0x835800]
mov eax, dword [esi + 0x20]
mov byte [ebp + 0xb], cl
cmp dword [eax], 0
je 0x4f06b0
mov edx, dword [esi + 0x30]
mov eax, dword [edx]
test eax, eax
jle 0x4f06b0
dec eax
mov dword [edx], eax
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
mov al, byte [ebp + 0xb]
mov byte [edx], al
movzx eax, al
jmp 0x4f06bd
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
movzx eax, cl
mov ecx, esi
push eax
call edx
mov esi, dword [ebp + 0x14]
cmp eax, 0xffffffff
jne 0x4f06c9
mov byte [ebp + 0x10], 1
cmp ebx, edi
jne 0x4f0538
pop esi
mov eax, ebx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
movzx esi, al
lea ecx, [ebp + 0x10]
mov eax, esi
shr eax, 2
movzx eax, byte [eax*4 + 0x835800]
push eax
call fcn.004c6ee0
movzx edi, byte [ebp + 0xb]
lea ecx, [ebp + 0x10]
mov eax, edi
and esi, 3
shr eax, 4
shl esi, 4
add eax, esi
movzx eax, byte [eax*4 + 0x835800]
push eax
call fcn.004c6ee0
and edi, 0xf
shl edi, 4
movzx eax, byte [edi + 0x835800]
push eax
jmp 0x4f0758
movzx esi, al
lea ecx, [ebp + 0x10]
mov eax, esi
shr eax, 2
movzx eax, byte [eax*4 + 0x835800]
push eax
call fcn.004c6ee0
and esi, 3
lea ecx, [ebp + 0x10]
shl esi, 6
movzx eax, byte [esi + 0x835800]
push eax
call fcn.004c6ee0
push 0x3d
lea ecx, [ebp + 0x10]
call fcn.004c6ee0
push 0x3d
lea ecx, [ebp + 0x10]
call fcn.004c6ee0
pop esi
mov eax, ebx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x18