Function at 0x4f2040
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x560c3d
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x5b642c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x40], esi
test ebx, ebx
jle 0x4f227a
mov edx, dword [ebp + 0x14]
lea ecx, [ebx*4]
lea eax, [edx + edx*2]
cmp ecx, eax
jg 0x4f227a
lea eax, [ebx + edi]
add edx, esi
mov ebx, dword [ebp + 0x18]
lea ecx, [eax - 3]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x3c], eax
cmp edi, ecx
jae 0x4f2100
mov edx, ecx
nop dword [eax + eax]
mov ecx, dword [edi]
add edi, 3
bswap ecx
shr ecx, 8
mov eax, ecx
and ecx, 0x3ffff
shr eax, 0x12
movzx eax, byte [eax + ebx]
mov byte [esi], al
mov eax, ecx
shr eax, 0xc
and ecx, 0xfff
movzx eax, byte [eax + ebx]
mov byte [esi + 1], al
mov eax, ecx
shr eax, 6
and ecx, 0x3f
movzx eax, byte [eax + ebx]
mov byte [esi + 2], al
movzx eax, byte [ecx + ebx]
mov byte [esi + 3], al
add esi, 4
cmp edi, edx
jb 0x4f20b0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
sub eax, edi
sub edx, esi
mov dword [ebp - 0x3c], eax
cmp eax, 3
ja case.default.0x4f2110
jmp dword [eax*4 + 0x4f2298]
sub edx, 2
js 0x4f227a
lfence
movzx ecx, byte [edi]
mov eax, ecx
and ecx, 3
shr eax, 2
add ecx, ecx
movzx eax, byte [eax + ebx]
mov byte [esi], al
movzx eax, byte [ebx + ecx*8]
mov byte [esi + 1], al
add esi, 2
cmp byte [ebp + 0x1c], 0
je case.0x4f2110.0
lea eax, [edx - 2]
test eax, eax
js 0x4f227a
mov word [esi], 0x3d3d
add esi, 2
sub esi, dword [ebp - 0x40]
mov eax, esi
jmp 0x4f227c
sub edx, 3
js 0x4f227a
lfence
mov ax, word [edi]
mov ch, al
mov cl, ah
movzx ecx, cx
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
movzx eax, byte [eax + ebx]
mov byte [esi], al
mov eax, ecx
shr eax, 4
and ecx, 0xf
movzx eax, byte [eax + ebx]
mov byte [esi + 1], al
movzx eax, byte [ebx + ecx*4]
mov byte [esi + 2], al
add esi, 3
cmp byte [ebp + 0x1c], 0
je case.0x4f2110.0
lea eax, [edx - 1]
test eax, eax
js 0x4f227a
mov byte [esi], 0x3d
inc esi
sub esi, dword [ebp - 0x40]
mov eax, esi
jmp 0x4f227c
lea eax, [edx - 4]
test eax, eax
js 0x4f227a
lfence
mov ax, word [edi + 1]
mov ch, al
mov cl, ah
movzx eax, byte [edi]
shl eax, 0x10
movzx ecx, cx
add ecx, eax
mov eax, ecx
and ecx, 0x3ffff
shr eax, 0x12
movzx eax, byte [eax + ebx]
mov byte [esi], al
mov eax, ecx
shr eax, 0xc
and ecx, 0xfff
movzx eax, byte [eax + ebx]
mov byte [esi + 1], al
mov eax, ecx
shr eax, 6
and ecx, 0x3f
movzx eax, byte [eax + ebx]
mov byte [esi + 2], al
movzx eax, byte [ecx + ebx]
mov byte [esi + 3], al
add esi, 4
sub esi, dword [ebp - 0x40]
mov eax, esi
jmp 0x4f227c
push 0x887
push str.C:Usersgazar.conandataprotobuf21.121pandev_buildd3688c94e1d0721a8f3b1ea31baef73a8d2d2927_srcgoogleprotobuf_stubs_strutil.cc
push 3
lea ecx, [ebp - 0x34]
lfence
call fcn.004a29c0
push dword [ebp - 0x3c]
mov ecx, eax
mov dword [ebp - 4], 0
push str.Logic_problem__szsrc_
call fcn.004a2ca0
mov ecx, eax
call fcn.004a2be0
push eax
lea ecx, [ebp - 0x35]
call fcn.004a2ac0
lea ecx, [ebp - 0x34]
call fcn.004a2a70
sub esi, dword [ebp - 0x40]
mov eax, esi
jmp 0x4f227c
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053a033
mov esp, ebp
pop ebp
ret