Function at 0x4a1760
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x547bdc
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x589ed0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], 0
mov eax, 0xaaaaaaab
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], 0
lea ecx, [ecx + 2]
mul ecx
mov esi, edx
shr esi, 1
shl esi, 2
cmp byte [ebp + 0x14], 0
je 0x4a17cc
mov eax, 0x38e38e39
mov ecx, esi
mul esi
shr edx, 4
lea eax, [edx + edx*8]
shl eax, 3
sub ecx, eax
lea eax, [edx + 1]
cmove eax, edx
add esi, eax
mov ebx, dword [ebp + 8]
push esi
push ebx
call fcn.00492d00
add esp, 8
cmp dword [ebx + 4], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 1
jne 0x4a17f1
xor edx, edx
jmp 0x4a17f3
mov edx, dword [ebx]
mov ecx, dword [ebp + 0x10]
xor edi, edi
mov esi, dword [ebp + 0xc]
mov eax, edx
add ecx, esi
mov dword [ebp - 0x14], edx
mov edx, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
xor bh, bh
mov dword [ebp - 0x10], ecx
nop dword [eax]
cmp esi, ecx
je 0x4a18ce
mov bh, byte [esi]
inc esi
mov cl, bh
and bh, 3
sar cl, 2
and cl, 0x3f
shl bh, 4
movzx ecx, cl
mov cl, byte [ecx + edx]
mov byte [eax], cl
inc eax
cmp esi, dword [ebp - 0x10]
je 0x4a18c7
mov bl, byte [esi]
inc esi
mov cl, bl
sar cl, 4
and cl, 0xf
movzx edx, cl
movzx ecx, bh
mov bh, bl
or edx, ecx
and bh, 0xf
mov ecx, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
shl bh, 2
mov bl, bh
mov cl, byte [edx + ecx]
mov byte [eax], cl
inc eax
cmp esi, dword [ebp - 0x10]
je 0x4a18c0
mov bh, byte [esi]
inc edi
mov cl, bh
inc esi
sar cl, 6
and bh, 0x3f
and cl, 3
movzx edx, cl
movzx ecx, bl
or edx, ecx
mov ecx, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx ecx, byte [edx + ecx]
mov edx, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax], cl
movzx ecx, bh
movzx ecx, byte [ecx + edx]
mov byte [eax + 1], cl
add eax, 2
cmp byte [ebp + 0x14], 0
mov ecx, dword [ebp - 0x10]
je 0x4a1810
cmp edi, 0x12
jne 0x4a1810
mov byte [eax], 0xa
inc eax
xor edi, edi
jmp 0x4a1810
mov esi, 2
jmp 0x4a18d0
mov esi, 1
jmp 0x4a18d0
xor esi, esi
mov edx, dword [ebp - 0x14]
sub eax, edx
add edx, eax
mov ecx, edx
sub esi, 1
je 0x4a18fa
sub esi, 1
jne 0x4a1914
mov esi, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx ecx, bh
mov cl, byte [ecx + esi]
mov byte [edx], cl
lea ecx, [edx + 1]
mov byte [ecx], 0x3d
inc ecx
jmp 0x4a1913
mov esi, dword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx ecx, bh
mov cl, byte [ecx + esi]
mov byte [edx], cl
lea ecx, [edx + 1]
mov word [ecx], 0x3d3d
add ecx, 2
inc edi
cmp byte [ebp + 0x14], 0
je 0x4a1922
test edi, edi
jle 0x4a1922
mov byte [ecx], 0xa
inc ecx
mov edi, dword [ebp + 8]
sub ecx, edx
lea ebx, [eax + ecx]
mov eax, dword [edi + 4]
mov edx, eax
mov dword [ebp - 0x14], ebx
neg edx
sbb edx, edx
lea ecx, [eax - 1]
and edx, ecx
lea esi, [eax - 1]
cmp ebx, edx
jne 0x4a1956
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
test eax, eax
lea eax, [ebp - 0x14]
mov dword [ebp + 0x14], ecx
push eax
lea eax, [ebp - 0x30]
cmove esi, ecx
push eax
mov dword [ebp - 0x10], esi
call fcn.00487810
lea eax, [ebp - 0x10]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00487810
add esp, 0x10
push 2
lea eax, [ebp - 0x30]
mov dword [ebp - 4], 2
push eax
push 0x557b2c
push str.total__output.size__
push 0
push 0x349
push str.c:_rime_thirdparty_srccapnprotoc_srckjencoding.c
lea ecx, [ebp + 0x14]
call fcn.0049ab80
push fcn.00477ba0
push 2
push 0xc
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0
push eax
call fcn.004b9e0b
lea ecx, [ebp + 0x14]
mov dword [ebp - 4], 3
call fcn.0049a5a0
int3