Function at 0x50500c
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
jmp 0x50502d
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, 3
cdq
idiv ecx
test edx, edx
jg 0x50502a
mov eax, dword [ebp - 0x14]
mov ecx, 3
cdq
idiv ecx
shl eax, 2
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov edx, dword [ebp - 0x14]
call fcn.00405d10
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jge 0x505211
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx]
and cl, 0xfc
and ecx, 0xff
shr ecx, 2
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 8]
jge 0x5051ae
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx]
and cl, 3
and ecx, 0xff
shl ecx, 4
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
mov bl, byte [ebx + esi + 1]
and bl, 0xf0
and ebx, 0xff
shr ebx, 4
add ecx, ebx
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
mov eax, dword [ebp - 0x10]
add eax, 2
cmp eax, dword [ebp - 8]
jge 0x50516b
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx + 1]
and cl, 0xf
and ecx, 0xff
shl ecx, 2
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
mov bl, byte [ebx + esi + 2]
and bl, 0xc0
and ebx, 0xff
shr ebx, 6
add ecx, ebx
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx + 2]
and cl, 0x3f
and ecx, 0xff
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
jmp 0x505201
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx + 1]
and cl, 0xf
and ecx, 0xff
shl ecx, 2
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov byte [eax + edx - 1], 0x3d
jmp 0x505201
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov cl, byte [ecx + ebx]
and cl, 3
and ecx, 0xff
shl ecx, 4
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov byte [eax + edx - 1], 0x3d
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00405ca4
mov edx, dword [ebp - 0x14]
mov byte [eax + edx - 1], 0x3d
add dword [ebp - 0x10], 3
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jl 0x50506b
pop esi
pop ebx
mov esp, ebp
pop ebp
ret