Function at 0x10016cb0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10058838
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x100754f8]
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 edi, dword [ebp + 8]
lea ecx, [ebp - 0x28]
push 0x40
push str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10006df0
mov eax, dword [ebp + 0xc]
mov ecx, eax
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 0x10
jb 0x10016d13
mov ecx, dword [eax]
mov eax, dword [eax + 0x10]
xor esi, esi
cmp dword [edi + 0x14], 0x10
mov edx, edi
mov dword [edi + 0x10], esi
jb 0x10016d25
mov edx, dword [edi]
mov ebx, dword [ebp - 0x28]
mov byte [edx], 0
test eax, eax
je 0x10016e81
dec eax
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
mov byte [ebp + esi - 0x2c], al
inc esi
mov ah, byte [ebp - 0x2a]
mov dl, byte [ebp - 0x2b]
mov dh, byte [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x33], ah
mov byte [ebp - 0x31], dl
mov byte [ebp - 0x32], dh
cmp esi, 3
jne 0x10016dbc
mov al, dh
mov cl, dh
shr al, 2
and cl, 3
mov byte [ebp - 0x30], al
mov al, dl
shl cl, 4
shr al, 4
add cl, al
mov al, ah
mov byte [ebp - 0x2f], cl
mov cl, dl
and cl, 0xf
shr al, 6
shl cl, 2
add cl, al
mov al, ah
and al, 0x3f
mov byte [ebp - 0x2e], cl
mov byte [ebp - 0x2d], al
xor esi, esi
nop
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
movzx eax, byte [ebp + esi - 0x30]
cmovae ecx, ebx
movzx eax, byte [eax + ecx]
mov ecx, edi
push eax
call fcn.10017370
inc esi
cmp esi, 4
jb 0x10016d90
mov ecx, dword [ebp - 0x38]
xor esi, esi
mov dl, byte [ebp - 0x31]
mov dh, byte [ebp - 0x32]
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x10016d33
mov dword [ebp - 0x38], esi
test esi, esi
je 0x10016e81
mov eax, esi
cmp esi, 3
jae 0x10016df8
cmp eax, 3
jae 0x10016ece
mov byte [ebp + eax - 0x2c], 0
inc eax
cmp eax, 3
jb 0x10016de2
mov cl, byte [ebp - 0x2a]
mov dl, byte [ebp - 0x2b]
mov dh, byte [ebp - 0x2c]
jmp 0x10016dfb
mov cl, byte [ebp - 0x33]
mov al, dh
and dh, 3
shr al, 2
mov byte [ebp - 0x30], al
mov al, dl
shr al, 4
and dl, 0xf
shl dh, 4
add dh, al
shl dl, 2
mov al, cl
mov byte [ebp - 0x2f], dh
shr al, 6
and cl, 0x3f
add dl, al
mov byte [ebp - 0x2d], cl
lea eax, [esi + 1]
mov byte [ebp - 0x2e], dl
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x10016e64
xor esi, esi
nop word [eax + eax]
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
movzx eax, byte [ebp + esi - 0x30]
cmovae ecx, ebx
movzx eax, byte [eax + ecx]
mov ecx, edi
push eax
call fcn.10017370
inc esi
cmp esi, dword [ebp - 0x3c]
jb 0x10016e40
mov esi, dword [ebp - 0x38]
cmp esi, 3
jae 0x10016e81
mov ebx, 3
sub ebx, esi
push 0x3d
mov ecx, edi
call fcn.10017370
sub ebx, 1
jne 0x10016e70
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x10016eb0
lea ecx, [eax + 1]
mov eax, ebx
cmp ecx, 0x1000
jb 0x10016ea6
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016ed3
push ecx
push ebx
call fcn.10033b8a
add esp, 8
mov al, 1
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.10033ba6
mov esp, ebp
pop ebp
ret
call fcn.10034718
call fcn.100392dc
int3