Function at 0x103aabb0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
cmp dword [0x104ccd04], 0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
je 0x103aadb2
cmp dword [0x104ccc8c], 0
je 0x103aadb2
cmp byte [0x104ccaa3], 0
mov dword [ebp - 4], 0
je 0x103aac21
cmp dword [0x104ccdd0], 0
je 0x103aadb2
pushaw
lea ecx, [ebp - 0x268]
call dword [0x104ccdd0]
lea eax, [ebp - 4]
mov dl, 1
push eax
push 0
push 0
lea ecx, [ebp - 0x268]
call dword [0x104ccc8c]
add esp, 0xc
popaw
jmp 0x103aac56
cmp byte [0x104ccd94], 0
je 0x103aac40
pushaw
push 0
push 0
lea edx, [ebp - 4]
call dword [0x104ccc8c]
add esp, 8
popaw
jmp 0x103aac56
pushaw
push 0
push 0
push 0
lea esi, [ebp - 4]
call dword [0x104ccc8c]
add esp, 0xc
popaw
mov eax, dword [ebp - 4]
test eax, eax
je 0x103aac66
cmp eax, 0xffffffff
je 0x103aac66
mov eax, dword [eax]
jmp 0x103aac68
xor eax, eax
lea ecx, [ebp - 8]
mov dword [ebp - 8], 0
push ecx
lea ecx, [ebp - 0x10]
push ecx
push 1
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
call dword [0x104ccd04]
mov ebx, dword [ebp - 0xc]
push 0x1000
push 0
push ebx
call fcn.103ce630
mov edx, dword [ebp - 8]
add esp, 0x28
test edx, edx
jle 0x103aada8
mov esi, dword [ebp - 0x10]
mov edi, edx
cmp edi, 3
jl 0x103aad27
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
nop
movzx eax, byte [esi]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 3
shr eax, 4
shl ecx, 4
or ecx, eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 1], al
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0xf
shr eax, 6
shl ecx, 2
or ecx, eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 2], al
movzx eax, byte [esi + 2]
add esi, 3
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 3], al
add ebx, 4
sub edx, 1
jne 0x103aacc0
mov edx, dword [ebp - 8]
cmp edi, 1
jne 0x103aad60
movzx eax, byte [esi]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
movzx eax, byte [esi]
and eax, 3
mov word [ebx + 2], 0x3d3d
shl eax, 4
test edx, edx
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 1], al
setg al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 2
jne 0x103aada6
movzx eax, byte [esi]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 3
shr eax, 4
shl ecx, 4
or ecx, eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 1], al
movzx eax, byte [esi + 1]
and eax, 0xf
mov byte [ebx + 3], 0x3d
movzx eax, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 2], al
test edx, edx
setg al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret