Function at 0x10001430
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [0x10014014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ebx, dword [ecx + 0x10]
cmp ebx, 1
je 0x1000145b
test ebx, ebx
jne 0x10001462
mov eax, dword [edx]
mov dword [edx + 4], eax
mov bl, 1
jmp 0x100016a7
xor ebx, ebx
jmp 0x100016a7
mov edi, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x1000146c
mov edi, dword [edi]
cmp ebx, 0xf
mov dword [ebp - 0x2c], edx
ja 0x10001482
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x28], xmm0
mov eax, 0xf
jmp 0x100014d3
mov ecx, ebx
or ecx, 0xf
mov eax, 0x7fffffff
cmp ecx, eax
cmovae ecx, eax
mov esi, ecx
cmp ecx, 0xfff
jb 0x100014b4
lea eax, [ecx + 0x24]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x100014c0
lea eax, [ecx + 1]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x28], eax
lea ecx, [ebx + 1]
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, esi
lea esi, [ebp - 0x28]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
xor edi, edi
cmp dword [ebp - 0x14], 0x10
mov ecx, esi
jb 0x100014e9
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx + edi]
mov eax, edx
add al, 0xbf
cmp al, 0x1a
jb 0x1000150f
mov eax, edx
add al, 0x9f
cmp al, 0x19
ja 0x10001502
add dl, 0xb9
jmp 0x1000150d
mov eax, edx
add al, 0xd0
cmp al, 9
ja 0x1000151f
add dl, 4
mov eax, edx
mov byte [ecx + edi], al
inc edi
mov ebx, dword [ebp - 0x18]
cmp edi, ebx
jb 0x100014de
jmp 0x100015bc
cmp edx, 0x2e
jle 0x10001532
cmp edx, 0x2f
je 0x1000152e
cmp edx, 0x5f
jne 0x10001540
mov al, 0x3f
jmp 0x1000150f
mov al, 0x3e
cmp edx, 0x2b
je 0x1000150f
cmp edx, 0x2d
je 0x1000150f
jmp 0x1000156b
cmp edx, 0x3d
jne 0x1000156b
mov byte [ecx + edi], 0
mov eax, dword [ebp - 0x18]
mov edx, edi
sub edx, eax
jbe 0x10001583
mov ecx, dword [ebp - 0x14]
mov esi, ecx
sub esi, eax
cmp esi, edx
jae 0x1000158e
lea ecx, [ebp - 0x28]
push edx
call fcn.1000a010
add esp, 4
jmp 0x100015bc
cmp ebx, edi
jb 0x100016cd
mov dword [ebp - 0x18], edi
mov al, byte [ecx + ebx]
mov byte [ecx + edi], al
xor ebx, ebx
jmp 0x10001673
cmp dword [ebp - 0x14], 0x10
jb 0x1000159b
mov eax, dword [ebp - 0x28]
jmp 0x1000159e
mov dword [ebp - 0x18], edi
cmp ecx, 0x10
jb 0x100015a7
mov esi, dword [ebp - 0x28]
jmp 0x100015aa
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], edi
mov byte [eax + edi], 0
jmp 0x100015bc
lea esi, [ebp - 0x28]
add eax, esi
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [esi + edi], 0
mov eax, dword [ebp - 0x18]
lea edx, [eax + eax*2]
shr edx, 2
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, eax
sub edi, ecx
mov esi, edx
sub esi, edi
jae 0x100015de
add ecx, edx
mov dword [ebx + 4], ecx
jmp 0x10001602
jbe 0x10001602
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebx + 8]
sub edi, ecx
cmp edi, edx
jb 0x100016bb
lea edi, [eax + esi]
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebx + 4], edi
mov bl, 1
cmp dword [ebp - 0x18], 0
je 0x10001673
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
xor edi, edi
lea esi, [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x14], 0x10
mov ecx, esi
jb 0x10001621
mov ecx, dword [ebp - 0x28]
movsx ebx, byte [ecx + edi]
test eax, eax
je 0x10001654
mov cl, 6
sub cl, al
sar ebx, cl
or byte [edx], bl
inc edx
mov ecx, dword [ebp - 0x2c]
cmp edx, dword [ecx + 4]
je 0x10001671
cmp dword [ebp - 0x14], 0x10
mov ecx, esi
jb 0x10001645
mov ecx, dword [ebp - 0x28]
movzx ebx, byte [ecx + edi]
add eax, 2
mov ecx, eax
shl ebx, cl
mov byte [edx], bl
jmp 0x1000165e
shl bl, 2
mov byte [edx], bl
mov eax, 2
lea ecx, [eax + 7]
test eax, eax
cmovns ecx, eax
and ecx, 0xfffffff8
sub eax, ecx
inc edi
cmp edi, dword [ebp - 0x18]
jb 0x10001616
mov bl, 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100016a7
mov ecx, dword [ebp - 0x28]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x1000169d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100016c7
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000e850
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebx
call fcn.1000fe50
jmp 0x10001602
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.1000f450
int3