Function at 0x101acc50
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x101acfd6
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x101acf19
test bl, 3
je 0x101acf69
mov eax, esi
test esi, esi
je 0x101acf37
cmp ebx, 4
mov dword [ebp - 0x18], eax
mov edi, eax
jb 0x101ace85
mov dword [ebp - 0x14], ecx
movzx ecx, byte [ecx]
mov eax, ecx
add al, 0xbf
cmp al, 0x19
mov dword [ebp - 0x20], edi
ja 0x101acd52
add ecx, 0xffffffbf
mov dword [ebp - 0x1c], ecx
test ecx, ecx
js 0x101acfc5
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 1]
mov eax, ecx
add al, 0xbf
cmp al, 0x1a
jae 0x101acd62
add ecx, 0xffffffbf
mov eax, ecx
test eax, eax
js 0x101acfc5
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
jae 0x101acd72
add ecx, 0xffffffbf
mov esi, ecx
test esi, esi
js 0x101acfc5
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
jae 0x101acd84
add ecx, 0xffffffbf
mov edi, ecx
test edi, edi
js 0x101acfc5
mov ecx, dword [ebp - 0x1c]
shl ecx, 0xc
shl eax, 6
or eax, ecx
or eax, esi
shl eax, 6
or eax, edi
mov ecx, eax
shr ecx, 0x10
mov edi, dword [ebp - 0x20]
mov byte [edi], cl
mov byte [edi + 1], ah
mov byte [edi + 2], al
mov ecx, dword [ebp - 0x14]
add ecx, 4
add edi, 3
add ebx, 0xfffffffc
cmp ebx, 3
ja 0x101acc93
jmp 0x101ace85
mov eax, ecx
add al, 0x9f
cmp al, 0x19
ja 0x101acd96
add ecx, 0xffffffb9
jmp 0x101accab
mov eax, ecx
add al, 0x9f
cmp al, 0x1a
jae 0x101acda9
add ecx, 0xffffffb9
jmp 0x101acccc
mov edx, ecx
add dl, 0x9f
cmp dl, 0x1a
jae 0x101acdbb
add ecx, 0xffffffb9
jmp 0x101accee
mov edx, ecx
add dl, 0x9f
cmp dl, 0x1a
jae 0x101acdcf
add ecx, 0xffffffb9
jmp 0x101acd0c
mov eax, ecx
add al, 0xd0
cmp al, 9
ja 0x101acde7
add ecx, 4
mov dword [ebp - 0x1c], ecx
jmp 0x101accb6
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jae 0x101ace0d
add ecx, 4
mov eax, ecx
jmp 0x101accd6
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jae 0x101ace35
add ecx, 4
mov esi, ecx
jmp 0x101accf8
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jae 0x101ace5d
add ecx, 4
mov edi, ecx
jmp 0x101acd16
xor eax, eax
cmp cl, 0x2f
setne dl
mov dword [ebp - 0x1c], 0x3e
cmp cl, 0x2b
je 0x101accb6
mov al, dl
neg eax
or eax, 0x3f
mov ecx, eax
jmp 0x101accab
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov eax, 0x3e
cmp cl, 0x2b
je 0x101accd6
mov al, byte [ebp - 0xd]
mov dl, al
neg edx
or edx, 0x3f
mov eax, edx
jmp 0x101accce
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov esi, 0x3e
cmp cl, 0x2b
je 0x101accf8
mov cl, byte [ebp - 0xd]
mov dl, cl
neg edx
or edx, 0x3f
mov esi, edx
jmp 0x101accf0
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov edi, 0x3e
cmp cl, 0x2b
je 0x101acd16
mov cl, byte [ebp - 0xd]
mov dl, cl
neg edx
or edx, 0x3f
mov edi, edx
jmp 0x101acd0e
cmp ebx, 1
je 0x101acfc5
mov esi, ecx
cmp ebx, 2
je 0x101acf87
cmp ebx, 3
jne 0x101acfc0
mov eax, esi
movzx eax, byte [esi]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x19
ja 0x101acfe0
add eax, 0xffffffbf
mov ecx, eax
test ecx, ecx
js 0x101acfc5
movzx eax, byte [esi + 1]
mov edx, eax
add dl, 0xbf
cmp dl, 0x19
ja 0x101ad001
add eax, 0xffffffbf
mov edx, eax
test edx, edx
js 0x101acfc5
movzx eax, byte [esi + 2]
mov ebx, eax
add bl, 0xbf
cmp bl, 0x19
ja 0x101ad04a
add eax, 0xffffffbf
mov esi, eax
test esi, esi
js 0x101acfc5
shl ecx, 0xa
shl edx, 4
or edx, ecx
shr esi, 2
or esi, edx
rol si, 8
mov word [edi], si
jmp 0x101acfc0
push ecx
mov edi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov ecx, edi
add esp, 4
mov ebx, eax
test eax, eax
jne 0x101acc72
xor ebx, ebx
jmp 0x101acc7b
mov eax, ebx
shr eax, 2
lea esi, [eax + eax*2]
mov eax, ebx
and eax, 3
lea edi, [eax + eax*2]
shr edi, 2
lea eax, [edi + esi]
inc eax
push eax
call sym.nss3.dll_PR_Malloc
add esp, 4
test eax, eax
je 0x101acfd6
add edi, esi
mov byte [eax + edi], 0
mov ecx, dword [ebp + 8]
jmp 0x101acc85
cmp byte [ecx + ebx - 1], 0x3d
jne 0x101acc7b
lea eax, [ebx - 2]
cmp byte [ecx + ebx - 2], 0x3d
lea ebx, [ebx - 1]
cmove ebx, eax
jmp 0x101acc7b
mov eax, esi
movzx eax, byte [esi]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x19
ja 0x101acff2
add eax, 0xffffffbf
mov ecx, eax
test ecx, ecx
js 0x101acfc5
movzx eax, byte [esi + 1]
mov edx, eax
add dl, 0xbf
cmp dl, 0x19
ja 0x101ad013
add eax, 0xffffffbf
mov edx, eax
test edx, edx
js 0x101acfc5
shl ecx, 2
shr edx, 4
or edx, ecx
mov byte [edi], dl
mov eax, dword [ebp - 0x18]
jmp 0x101acfd8
cmp dword [ebp + 0x10], 0
jne 0x101acfd6
push dword [ebp - 0x18]
call sym.nss3.dll_PR_Free
add esp, 4
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
add cl, 0x9f
cmp cl, 0x19
ja 0x101ad022
add eax, 0xffffffb9
jmp 0x101aceb8
mov ecx, eax
add cl, 0x9f
cmp cl, 0x19
ja 0x101ad036
add eax, 0xffffffb9
jmp 0x101acf99
mov edx, eax
add dl, 0x9f
cmp dl, 0x19
ja 0x101ad05c
add eax, 0xffffffb9
jmp 0x101aced7
mov edx, eax
add dl, 0x9f
cmp dl, 0x19
ja 0x101ad070
add eax, 0xffffffb9
jmp 0x101acfb0
mov ecx, eax
add cl, 0xd0
cmp cl, 9
ja 0x101ad088
add eax, 4
mov ecx, eax
jmp 0x101acec2
mov ecx, eax
add cl, 0xd0
cmp cl, 9
ja 0x101ad0aa
add eax, 4
mov ecx, eax
jmp 0x101acf9f
mov ebx, eax
add bl, 0x9f
cmp bl, 0x19
ja 0x101ad0cc
add eax, 0xffffffb9
jmp 0x101acef6
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x101ad0e0
add eax, 4
mov edx, eax
jmp 0x101acee1
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x101ad106
add eax, 4
mov edx, eax
jmp 0x101acfb6
xor edx, edx
cmp al, 0x2f
setne bl
mov ecx, 0x3e
cmp al, 0x2b
je 0x101acec2
mov dl, bl
neg edx
or edx, 0x3f
mov ecx, edx
jmp 0x101aceba
xor edx, edx
cmp al, 0x2f
setne bl
mov ecx, 0x3e
cmp al, 0x2b
je 0x101acf9f
mov dl, bl
neg edx
or edx, 0x3f
mov ecx, edx
jmp 0x101acf9b
mov ebx, eax
add bl, 0xd0
cmp bl, 9
ja 0x101ad12c
add eax, 4
mov esi, eax
jmp 0x101acf00
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov edx, 0x3e
cmp al, 0x2b
je 0x101acee1
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov edx, ebx
jmp 0x101aced9
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov edx, 0x3e
cmp al, 0x2b
je 0x101acfb6
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov edx, ebx
jmp 0x101acfb2
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov esi, 0x3e
cmp al, 0x2b
je 0x101acf00
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov esi, ebx
jmp 0x101acef8