Function at 0x101aed10
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 0x101af096
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x101aefd9
test bl, 3
je 0x101af029
mov eax, esi
test esi, esi
je 0x101aeff7
cmp ebx, 4
mov dword [ebp - 0x18], eax
mov edi, eax
jb 0x101aef45
mov dword [ebp - 0x14], ecx
movzx ecx, byte [ecx]
mov eax, ecx
add al, 0xbf
cmp al, 0x19
mov dword [ebp - 0x20], edi
ja 0x101aee12
add ecx, 0xffffffbf
mov dword [ebp - 0x1c], ecx
test ecx, ecx
js 0x101af085
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 1]
mov eax, ecx
add al, 0xbf
cmp al, 0x1a
jae 0x101aee22
add ecx, 0xffffffbf
mov eax, ecx
test eax, eax
js 0x101af085
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
jae 0x101aee32
add ecx, 0xffffffbf
mov esi, ecx
test esi, esi
js 0x101af085
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
jae 0x101aee44
add ecx, 0xffffffbf
mov edi, ecx
test edi, edi
js 0x101af085
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 0x101aed53
jmp 0x101aef45
mov eax, ecx
add al, 0x9f
cmp al, 0x19
ja 0x101aee56
add ecx, 0xffffffb9
jmp 0x101aed6b
mov eax, ecx
add al, 0x9f
cmp al, 0x1a
jae 0x101aee69
add ecx, 0xffffffb9
jmp 0x101aed8c
mov edx, ecx
add dl, 0x9f
cmp dl, 0x1a
jae 0x101aee7b
add ecx, 0xffffffb9
jmp 0x101aedae
mov edx, ecx
add dl, 0x9f
cmp dl, 0x1a
jae 0x101aee8f
add ecx, 0xffffffb9
jmp 0x101aedcc
mov eax, ecx
add al, 0xd0
cmp al, 9
ja 0x101aeea7
add ecx, 4
mov dword [ebp - 0x1c], ecx
jmp 0x101aed76
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jae 0x101aeecd
add ecx, 4
mov eax, ecx
jmp 0x101aed96
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jae 0x101aeef5
add ecx, 4
mov esi, ecx
jmp 0x101aedb8
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jae 0x101aef1d
add ecx, 4
mov edi, ecx
jmp 0x101aedd6
xor eax, eax
cmp cl, 0x2f
setne dl
mov dword [ebp - 0x1c], 0x3e
cmp cl, 0x2b
je 0x101aed76
mov al, dl
neg eax
or eax, 0x3f
mov ecx, eax
jmp 0x101aed6b
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov eax, 0x3e
cmp cl, 0x2b
je 0x101aed96
mov al, byte [ebp - 0xd]
mov dl, al
neg edx
or edx, 0x3f
mov eax, edx
jmp 0x101aed8e
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov esi, 0x3e
cmp cl, 0x2b
je 0x101aedb8
mov cl, byte [ebp - 0xd]
mov dl, cl
neg edx
or edx, 0x3f
mov esi, edx
jmp 0x101aedb0
xor edx, edx
cmp cl, 0x2f
setne byte [ebp - 0xd]
mov edi, 0x3e
cmp cl, 0x2b
je 0x101aedd6
mov cl, byte [ebp - 0xd]
mov dl, cl
neg edx
or edx, 0x3f
mov edi, edx
jmp 0x101aedce
cmp ebx, 1
je 0x101af085
mov esi, ecx
cmp ebx, 2
je 0x101af047
cmp ebx, 3
jne 0x101af080
mov eax, esi
movzx eax, byte [esi]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x19
ja 0x101af0a0
add eax, 0xffffffbf
mov ecx, eax
test ecx, ecx
js 0x101af085
movzx eax, byte [esi + 1]
mov edx, eax
add dl, 0xbf
cmp dl, 0x19
ja 0x101af0c1
add eax, 0xffffffbf
mov edx, eax
test edx, edx
js 0x101af085
movzx eax, byte [esi + 2]
mov ebx, eax
add bl, 0xbf
cmp bl, 0x19
ja 0x101af10a
add eax, 0xffffffbf
mov esi, eax
test esi, esi
js 0x101af085
shl ecx, 0xa
shl edx, 4
or edx, ecx
shr esi, 2
or esi, edx
rol si, 8
mov word [edi], si
jmp 0x101af080
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 0x101aed32
xor ebx, ebx
jmp 0x101aed3b
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 0x101af096
add edi, esi
mov byte [eax + edi], 0
mov ecx, dword [ebp + 8]
jmp 0x101aed45
cmp byte [ecx + ebx - 1], 0x3d
jne 0x101aed3b
lea eax, [ebx - 2]
cmp byte [ecx + ebx - 2], 0x3d
lea ebx, [ebx - 1]
cmove ebx, eax
jmp 0x101aed3b
mov eax, esi
movzx eax, byte [esi]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x19
ja 0x101af0b2
add eax, 0xffffffbf
mov ecx, eax
test ecx, ecx
js 0x101af085
movzx eax, byte [esi + 1]
mov edx, eax
add dl, 0xbf
cmp dl, 0x19
ja 0x101af0d3
add eax, 0xffffffbf
mov edx, eax
test edx, edx
js 0x101af085
shl ecx, 2
shr edx, 4
or edx, ecx
mov byte [edi], dl
mov eax, dword [ebp - 0x18]
jmp 0x101af098
cmp dword [ebp + 0x10], 0
jne 0x101af096
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 0x101af0e2
add eax, 0xffffffb9
jmp 0x101aef78
mov ecx, eax
add cl, 0x9f
cmp cl, 0x19
ja 0x101af0f6
add eax, 0xffffffb9
jmp 0x101af059
mov edx, eax
add dl, 0x9f
cmp dl, 0x19
ja 0x101af11c
add eax, 0xffffffb9
jmp 0x101aef97
mov edx, eax
add dl, 0x9f
cmp dl, 0x19
ja 0x101af130
add eax, 0xffffffb9
jmp 0x101af070
mov ecx, eax
add cl, 0xd0
cmp cl, 9
ja 0x101af148
add eax, 4
mov ecx, eax
jmp 0x101aef82
mov ecx, eax
add cl, 0xd0
cmp cl, 9
ja 0x101af16a
add eax, 4
mov ecx, eax
jmp 0x101af05f
mov ebx, eax
add bl, 0x9f
cmp bl, 0x19
ja 0x101af18c
add eax, 0xffffffb9
jmp 0x101aefb6
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x101af1a0
add eax, 4
mov edx, eax
jmp 0x101aefa1
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x101af1c6
add eax, 4
mov edx, eax
jmp 0x101af076
xor edx, edx
cmp al, 0x2f
setne bl
mov ecx, 0x3e
cmp al, 0x2b
je 0x101aef82
mov dl, bl
neg edx
or edx, 0x3f
mov ecx, edx
jmp 0x101aef7a
xor edx, edx
cmp al, 0x2f
setne bl
mov ecx, 0x3e
cmp al, 0x2b
je 0x101af05f
mov dl, bl
neg edx
or edx, 0x3f
mov ecx, edx
jmp 0x101af05b
mov ebx, eax
add bl, 0xd0
cmp bl, 9
ja 0x101af1ec
add eax, 4
mov esi, eax
jmp 0x101aefc0
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov edx, 0x3e
cmp al, 0x2b
je 0x101aefa1
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov edx, ebx
jmp 0x101aef99
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov edx, 0x3e
cmp al, 0x2b
je 0x101af076
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov edx, ebx
jmp 0x101af072
xor ebx, ebx
cmp al, 0x2f
setne byte [ebp - 0x14]
mov esi, 0x3e
cmp al, 0x2b
je 0x101aefc0
mov al, byte [ebp - 0x14]
mov bl, al
neg ebx
or ebx, 0x3f
mov esi, ebx
jmp 0x101aefb8