Function at 0x405e90
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43988e
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x448050]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov ebx, dword [ebp + 8]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
xor esi, esi
sub ecx, eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x405ff1
mov dword [ebp - 0x18], edx
mov edi, edi
mov al, byte [ebx]
movzx edx, byte [ebx + 2]
mov cl, byte [ebx + 1]
mov byte [ebp - 0xd], dl
movzx eax, al
mov edx, eax
shr edx, 2
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi], dl
movzx ecx, cl
shl eax, 4
mov edx, ecx
shr edx, 4
or edx, eax
and edx, 0x3f
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
add dword [ebp - 0x14], 4
mov byte [edi + 1], al
movzx eax, byte [ebp - 0xd]
mov edx, eax
shr edx, 6
add ecx, ecx
add ecx, ecx
or edx, ecx
and edx, 0x3f
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + 2], dl
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + 3], al
add esi, 4
add ebx, 3
add edi, 4
cmp esi, 0x44
jbe 0x405fe5
test byte [0x44c3f0], 1
jne 0x405fa5
or dword [0x44c3f0], 1
xor eax, eax
mov dword [ebp - 4], eax
mov dword [0x44c404], eax
mov byte [0x44c3f4], al
lea esi, [eax + 2]
mov eax, 0x43f500
mov ecx, 0x44c3f4
mov dword [0x44c408], 0xf
call fcn.0040b1c0
push 0x43b2a0
call fcn.004266bc
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov edx, dword [0x44c408]
mov ecx, dword [0x44c3f4]
mov eax, ecx
cmp edx, 0x10
jae 0x405fbd
mov eax, 0x44c3f4
add eax, dword [0x44c404]
cmp edx, 0x10
jae 0x405fcd
mov ecx, 0x44c3f4
sub eax, ecx
push eax
push ecx
push edi
call fcn.00424790
mov ecx, dword [0x44c404]
add esp, 0xc
xor esi, esi
add dword [ebp - 0x14], ecx
dec dword [ebp - 0x18]
jne 0x405ee0
mov ecx, dword [ebp - 0x1c]
cmp ecx, 1
jne 0x406033
movzx eax, byte [ebx]
mov edx, eax
shr edx, 2
mov cl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
and eax, 3
shl eax, 4
mov byte [edi], cl
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x14]
mov byte [edi + 1], dl
mov word [edi + 2], 0x3d3d
add eax, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 2
jne 0x406090
mov al, byte [ebx]
mov bl, byte [ebx + 1]
movzx eax, al
mov ecx, eax
shr ecx, 2
mov dl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi], dl
movzx ecx, bl
and eax, 3
mov edx, ecx
shl eax, 4
shr edx, 4
or edx, eax
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + 1], al
mov eax, dword [ebp - 0x14]
and ecx, 0xf
mov cl, byte [ecx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + 2], cl
mov byte [edi + 3], 0x3d
add eax, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret