Function at 0x4b5e12
Capabilities:
Encode data using base64

Disassembly:
mov eax, 0x4f3c35
call fcn.004e1580
sub esp, 0x1c
mov al, byte [ebp + 0x13]
push ebx
push esi
xor esi, esi
push edi
push esi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], esi
mov byte [ebp - 0x28], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], 1
mov ecx, eax
dec eax
test ecx, ecx
je 0x4b5f80
mov edi, dword [ebp + 0xc]
inc eax
mov dword [ebp - 0x10], eax
mov al, byte [edi]
mov byte [ebp + esi + 0x10], al
mov bl, byte [ebp + 0x11]
inc esi
inc edi
cmp esi, 3
jne 0x4b5ecd
mov al, byte [ebp + 0x10]
mov cl, bl
shr al, 2
mov byte [ebp + 0xc], al
mov al, byte [ebp + 0x10]
and al, 3
shl al, 4
shr cl, 4
add al, cl
mov cl, byte [ebp + 0x12]
mov byte [ebp + 0xd], al
mov al, bl
and al, 0xf
shl al, 2
shr cl, 6
add al, cl
mov byte [ebp + 0xe], al
mov al, byte [ebp + 0x12]
and al, 0x3f
xor esi, esi
mov byte [ebp + 0xf], al
mov ecx, dword [0x53374c]
test ecx, ecx
jne 0x4b5eab
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
jmp 0x4b5eb2
movzx eax, byte [ebp + esi + 0xc]
add eax, ecx
mov al, byte [eax]
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x14], al
push dword [ebp - 0x14]
push 1
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
inc esi
cmp esi, 4
jl 0x4b5e9a
xor esi, esi
dec dword [ebp - 0x10]
jne 0x4b5e53
test esi, esi
je 0x4b5f80
cmp esi, 3
jge 0x4b5efb
push 3
lea edi, [ebp + esi + 0x10]
pop ecx
xor eax, eax
sub ecx, esi
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov bl, byte [ebp + 0x11]
mov al, byte [ebp + 0x10]
xor edi, edi
mov cl, al
and al, 3
shr cl, 2
mov byte [ebp + 0xc], cl
mov cl, bl
shl al, 4
shr cl, 4
add al, cl
and bl, 0xf
mov byte [ebp + 0xd], al
mov al, byte [ebp + 0x12]
mov cl, al
and al, 0x3f
shl bl, 2
shr cl, 6
add bl, cl
mov byte [ebp + 0xf], al
mov byte [ebp + 0xe], bl
lea ebx, [esi + 1]
test ebx, ebx
jle 0x4b5f66
mov ecx, dword [0x53374c]
test ecx, ecx
jne 0x4b5f47
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
jmp 0x4b5f4e
movzx eax, byte [ebp + edi + 0xc]
add eax, ecx
mov al, byte [eax]
lea ecx, [ebp - 0x28]
mov byte [ebp + 0x10], al
push dword [ebp + 0x10]
push 1
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
inc edi
cmp edi, ebx
jl 0x4b5f36
cmp esi, 3
jge 0x4b5f80
push 4
pop esi
sub esi, ebx
push 0x3d
push 1
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
dec esi
jne 0x4b5f70
mov esi, dword [ebp + 8]
mov al, byte [ebp - 0x28]
push 0
mov ecx, esi
mov byte [esi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x28]
push 0
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
pop eax
mov dword [ebp - 0x18], eax
and byte [ebp - 4], 0
push eax
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret