Function at 0x10098350
Capabilities:
Encode data using base64

Disassembly:
mov ecx, dword [esp + 0xc]
sub esp, 0x11c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x130]
push edi
test ecx, ecx
jne 0x10098380
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10098370
sub ecx, edx
mov dword [esp + 0x138], ecx
lea edx, [ecx - 3]
xor ebp, ebp
xor eax, eax
test edx, edx
jle 0x1009850b
dec edx
mov eax, 0xaaaaaaab
mul edx
mov eax, edx
shr eax, 1
inc eax
mov dword [esp + 0x10], eax
lea ecx, [eax*4]
lea eax, [eax + eax*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x18], eax
nop dword [eax]
mov ebp, dword [ecx]
mov eax, ebp
movups xmm3, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov bl, byte [0x10266d28]
mov edx, ebp
movups xmm2, xmmword [0x10266cf8]
shr eax, 2
add ecx, 3
movups xmm1, xmmword [0x10266d08]
and eax, 0x3f
mov byte [esp + 0xa0], bl
movups xmm0, xmmword [0x10266d18]
shr edx, 0xc
movups xmmword [esp + 0x60], xmm3
and edx, 0xf
mov byte [esp + 0xe4], bl
movups xmmword [esp + 0x70], xmm2
mov byte [esp + 0x5c], bl
movups xmmword [esp + 0x80], xmm1
mov byte [esp + 0x128], bl
movups xmmword [esp + 0x90], xmm0
mov al, byte [esp + eax + 0x60]
movsx edi, al
mov eax, ebp
and eax, 3
mov ebx, dword [esp + 0x130]
shl eax, 4
or edx, eax
mov eax, ebp
shr eax, 0x16
movups xmmword [esp + 0xa4], xmm3
and eax, 3
movups xmmword [esp + 0xb4], xmm2
movups xmmword [esp + 0xc4], xmm1
movups xmmword [esp + 0xd4], xmm0
movsx esi, byte [esp + edx + 0xa4]
mov edx, ebp
shr edx, 8
and edx, 0xf
shr ebp, 0x10
shl edx, 2
and ebp, 0x3f
or edx, eax
movups xmmword [esp + 0x1c], xmm3
movups xmmword [esp + 0x2c], xmm2
movups xmmword [esp + 0x3c], xmm1
movups xmmword [esp + 0x4c], xmm0
movsx eax, byte [esp + ebp + 0x1c]
shl eax, 8
movups xmmword [esp + 0xe8], xmm3
movups xmmword [esp + 0xf8], xmm2
movups xmmword [esp + 0x108], xmm1
movups xmmword [esp + 0x118], xmm0
movsx edx, byte [esp + edx + 0xe8]
or eax, edx
shl eax, 8
or eax, esi
shl eax, 8
or eax, edi
mov dword [ebx], eax
add ebx, 4
sub dword [esp + 0x10], 1
mov dword [esp + 0x130], ebx
jne 0x100983c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x138]
mov esi, dword [esp + 0x134]
jmp 0x10098512
mov ebx, dword [esp + 0x130]
cmp eax, ecx
jge 0x100986ba
sub ecx, eax
xor edi, edi
xor edx, edx
mov dword [esp + 0x10], edi
test ecx, ecx
jle 0x10098542
nop dword [eax + eax]
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [esp + edx + 0x10], al
inc edx
cmp edx, ecx
jl 0x10098530
mov edi, dword [esp + 0x10]
movups xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx eax, byte [0x10266d28]
mov edx, edi
mov byte [esp + 0x5c], al
mov eax, edi
movups xmmword [esp + 0x1c], xmm0
shr eax, 2
movups xmm0, xmmword [0x10266cf8]
and eax, 0x3f
shr edx, 0xc
and edx, 0xf
movups xmmword [esp + 0x2c], xmm0
movups xmm0, xmmword [0x10266d08]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [0x10266d18]
movups xmmword [esp + 0x4c], xmm0
movzx eax, byte [esp + eax + 0x1c]
mov byte [ebx], al
movups xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx eax, byte [0x10266d28]
mov byte [esp + 0x5c], al
mov eax, edi
movups xmmword [esp + 0x1c], xmm0
and eax, 3
movups xmm0, xmmword [0x10266cf8]
shl eax, 4
or edx, eax
movups xmmword [esp + 0x2c], xmm0
movups xmm0, xmmword [0x10266d08]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [0x10266d18]
movups xmmword [esp + 0x4c], xmm0
mov al, byte [esp + edx + 0x1c]
mov byte [ebx + 1], al
cmp ecx, 1
jle 0x1009863b
movups xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx eax, byte [0x10266d28]
mov edx, edi
mov byte [esp + 0x5c], al
mov eax, edi
movups xmmword [esp + 0x1c], xmm0
shr edx, 8
movups xmm0, xmmword [0x10266cf8]
shr eax, 0x16
and edx, 0xf
and eax, 3
shl edx, 2
movups xmmword [esp + 0x2c], xmm0
or edx, eax
movups xmm0, xmmword [0x10266d08]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [0x10266d18]
movups xmmword [esp + 0x4c], xmm0
mov al, byte [esp + edx + 0x1c]
jmp 0x1009863d
mov al, 0x3d
mov byte [ebx + 2], al
cmp ecx, 2
jle 0x100986a1
movups xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx eax, byte [0x10266d28]
shr edi, 0x10
movups xmmword [esp + 0x1c], xmm0
and edi, 0x3f
mov byte [esp + 0x5c], al
movups xmm0, xmmword [0x10266cf8]
movups xmmword [esp + 0x2c], xmm0
movups xmm0, xmmword [0x10266d08]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [0x10266d18]
movups xmmword [esp + 0x4c], xmm0
mov al, byte [esp + edi + 0x1c]
pop edi
mov byte [ebx + 3], al
lea eax, [ebp + 4]
pop esi
pop ebp
mov byte [ebx + 4], 0
pop ebx
add esp, 0x11c
ret 0xc
pop edi
mov al, 0x3d
mov byte [ebx + 3], al
lea eax, [ebp + 4]
pop esi
pop ebp
mov byte [ebx + 4], 0
pop ebx
add esp, 0x11c
ret 0xc
pop edi
pop esi
mov eax, ebp
mov byte [ebx], 0
pop ebp
pop ebx
add esp, 0x11c
ret 0xc