Function at 0x14007fbb0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
mov r14, rdx
mov rsi, rcx
mov rcx, rdx
call fcn.140072320
cmp eax, 0x70
je 0x14007fbe7
mov rcx, r14
call fcn.140072320
cmp eax, 0x50
jne 0x140080a13
mov r12, qword [r14]
cmp qword [r12 + 0x80], 0
jne 0x1400809f5
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
mov rcx, r14
call fcn.140072320
mov edi, eax
mov rcx, r14
call fcn.140072440
test al, al
je 0x14007fd08
mov rcx, r14
call fcn.1400725d0
mov rbx, qword [r14 + 0x10]
cmp qword [r12 + 0xa0], rbx
je 0x14007fd0c
lea r13, [r12 + 0xa0]
mov rcx, r14
call fcn.140072320
mov r15, qword [r13]
cmp eax, 0x7b
mov qword [rsp + 0x50], r13
jne 0x14007fefd
mov rcx, r14
call fcn.140072320
mov ecx, 1
cmp eax, 0x80
jb 0x14007fc95
mov ecx, 2
cmp eax, 0x800
jb 0x14007fc95
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add r15, rcx
jb 0x140080a2b
mov qword [rsp + 0x118], r15
mov dword [rsp + 0x5c], edi
mov r15, qword [r12 + 0xb0]
inc r15
je 0x140080a37
mov rax, qword [r12 + 0xa8]
mov qword [rsp + 0x48], rax
mov rcx, r14
call fcn.140072320
xor edi, edi
cmp eax, 0xa
sete byte [rsp + 0x30]
mov eax, 1
cmove r15, rax
mov qword [rsp + 0x120], r15
mov rcx, r14
call fcn.140072440
test al, al
je 0x140080052
lea r15, [r12 + 0x88]
jmp 0x14007fda3
mov rbx, qword [r14 + 0x10]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x88], rax
movups xmm0, xmmword [r12 + 0xa0]
movups xmmword [rsp + 0x78], xmm0
mov rdi, qword [r14 + 8]
test rbx, rbx
je 0x140080092
js 0x140080a01
movzx eax, byte [0x14013e141]
mov edx, 1
mov rcx, rbx
call fcn.140006350
test rax, rax
je 0x140080a06
mov r14, rax
jmp 0x140080098
mov rcx, qword [r12 + 0x90]
mov byte [rcx + rdx], al
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.140072440
test al, al
je 0x140080052
mov rcx, r14
call fcn.1400725d0
cmp qword [r13], rbx
je 0x140080052
mov rcx, r14
call fcn.140072320
cmp eax, 0x7d
je 0x140080052
mov rcx, r14
call fcn.140072320
cmp eax, 0x80
jae 0x14007fe00
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x88]
jne 0x14007fd80
mov rcx, r15
mov ebp, eax
call fcn.1400036c0
mov eax, ebp
mov rdx, qword [r12 + 0x98]
jmp 0x14007fd80
mov dword [rsp + 0x60], 0
mov ecx, eax
cmp eax, 0x800
jae 0x14007fe28
shr ecx, 6
or cl, 0xc0
mov byte [rsp + 0x60], cl
mov r13d, 2
mov ecx, 1
jmp 0x14007fe88
cmp eax, 0x10000
jae 0x14007fe55
shr ecx, 0xc
or cl, 0xe0
mov byte [rsp + 0x60], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x61], cl
mov r13d, 3
mov ecx, 2
jmp 0x14007fe88
shr ecx, 0x12
or cl, 0xf0
mov byte [rsp + 0x60], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x61], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x62], cl
mov r13d, 4
mov ecx, 3
and al, 0x3f
or al, 0x80
mov byte [rsp + rcx + 0x60], al
mov rax, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x14007fee5
mov rcx, qword [r12 + 0x90]
add rcx, rbp
lea rdx, [rsp + 0x60]
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, qword [rsp + 0x50]
mov rcx, r14
call fcn.140072440
test al, al
jne 0x14007fda3
jmp 0x140080052
mov rcx, r15
mov rdx, rbp
mov r8, r13
call fcn.1400b4880
mov rbp, qword [r12 + 0x98]
jmp 0x14007fea8
mov rbp, qword [r12 + 0xa8]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x120], rax
mov rcx, r14
call fcn.140072320
cmp eax, 0x5c
jne 0x140080122
mov r15, qword [r13]
mov rcx, r14
call fcn.140072320
mov ecx, 1
cmp eax, 0x80
jb 0x14007ff58
mov ecx, 2
cmp eax, 0x800
jb 0x14007ff58
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add r15, rcx
jb 0x140080a2b
mov r13, qword [r12 + 0xb0]
inc r13
je 0x140080a37
mov rdi, qword [r12 + 0xa8]
mov rcx, r14
call fcn.140072320
mov ebp, eax
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x60], xmm0
mov rdx, qword [r14 + 8]
mov ecx, 1
mov r14d, 1
test rbx, rbx
je 0x14007ffe3
mov qword [rsp + 0x50], rdx
js 0x140080a01
movzx eax, byte [0x14013e141]
mov edx, 1
mov rcx, rbx
call fcn.140006350
test rax, rax
je 0x140080a06
mov r14, rax
mov rdx, qword [rsp + 0x50]
mov ecx, 1
xor eax, eax
cmp ebp, 0xa
sete al
cmove r13, rcx
add rdi, rax
mov rcx, r14
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xe0], xmm0
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xf0], rax
mov qword [rsi], rbx
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0x1c
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rsi + 0x50], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsi + 0x60], rax
mov qword [rsi + 0x68], r15
mov qword [rsi + 0x70], rdi
mov qword [rsi + 0x78], r13
jmp 0x140080106
cmp qword [r13], rbx
jne 0x140080153
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [r13]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x88], rax
movups xmm0, xmmword [r13]
movups xmmword [rsp + 0x78], xmm0
mov rdi, qword [r14 + 8]
test rbx, rbx
jne 0x14007fd52
mov r14d, 1
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0x100], xmm2
mov qword [rsi], rbx
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0xa
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmm1, xmmword [rsp + 0xf0]
movaps xmm2, xmmword [rsp + 0x100]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov ebx, eax
mov qword [rsp + 0x118], r15
mov dword [rsp + 0x5c], edi
mov rcx, r14
call fcn.140072440
movabs r13, 0x8000000000000000
test al, al
je 0x14008014e
mov rcx, r14
call fcn.1400725d0
jmp 0x1400807ab
mov rcx, r14
call fcn.140072320
mov dword [rsp + 0xe0], eax
cmp eax, 0x7d
jne case.0x14007218a.357
movzx eax, byte [rsp + 0x30]
mov dil, al
add qword [rsp + 0x48], rdi
mov rcx, r14
call fcn.140072440
mov rbx, qword [r12 + 0x90]
mov r14, qword [r12 + 0x98]
mov qword [rsp + 0x20], 2
lea r9, [0x14011a0b8]
lea rcx, [rsp + 0x60]
mov rdx, rbx
mov r8, r14
call fcn.1400b1260
cmp qword [rsp + 0x60], 0
je 0x14008030f
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xc0]
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0xb0]
mov r11, qword [rsp + 0xb8]
cmp rdi, 0xffffffffffffffff
mov qword [rsp + 0x30], rcx
je 0x140080356
mov r15, qword [rsp + 0x88]
add rcx, r15
cmp rcx, rdx
jae 0x1400805ec
mov r9, qword [rsp + 0x80]
mov qword [rsp + 0x40], r9
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x78]
mov r10, rax
mov qword [rsp + 0xd8], r9
sub r10, r9
mov qword [rsp + 0xd0], r10
jmp 0x140080256
add r15, rax
xor edi, edi
mov r13, qword [rsp + 0x30]
lea rcx, [r15 + r13]
cmp rcx, rdx
jae 0x1400805ec
movzx ecx, byte [r8 + rcx]
mov r9, qword [rsp + 0x40]
bt r9, rcx
jae 0x14008023f
mov rcx, qword [rsp + 0x38]
cmp rcx, rdi
mov r10, rdi
cmova r10, rcx
lea r9, [r8 + r15]
mov rcx, r10
nop dword [rax]
cmp rcx, rax
jae 0x1400802ae
lea r13, [r15 + rcx]
cmp r13, rdx
jae 0x140080907
lea r13, [rcx + 1]
movzx ebp, byte [r11 + rcx]
cmp bpl, byte [r9 + rcx]
mov rcx, r13
je 0x140080280
sub r15, qword [rsp + 0x38]
add r15, r13
jmp 0x140080242
mov rcx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
nop dword [rax + rax]
cmp rdi, rcx
jae 0x1400804ee
dec rcx
cmp rcx, rax
jae 0x14008094e
lea r9, [rcx + r15]
cmp r9, rdx
jae 0x14008093f
movzx r10d, byte [r11 + rcx]
cmp r10b, byte [r8 + r9]
je 0x1400802c0
add r15, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xd0]
lea rcx, [r15 + r13]
cmp rcx, rdx
jb 0x140080256
jmp 0x1400805ec
cmp byte [rsp + 0x7a], 0
jne 0x1400805ec
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xa8]
mov r15, qword [rsp + 0xb0]
movzx eax, byte [rsp + 0x78]
test r8, r8
je 0x140080468
cmp r8, r15
jae 0x140080462
cmp byte [rcx + r8], 0xc0
jge 0x140080468
jmp 0x1400808f0
mov r15, qword [rsp + 0x88]
lea r9, [r15 + rcx]
cmp r9, rdx
jae 0x1400805ec
mov r10, qword [rsp + 0x80]
mov r13, qword [rsp + 0x68]
lea rcx, [r13 - 1]
cmp rcx, rax
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], rcx
jae 0x14008095d
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0xd0], rdi
add rcx, r11
mov qword [rsp + 0xd8], rcx
jmp 0x1400803be
add r15, rax
mov rcx, qword [rsp + 0x30]
lea r9, [r15 + rcx]
cmp r9, rdx
jae 0x1400805ec
movzx r9d, byte [r8 + r9]
bt r10, r9
jae 0x1400803a9
mov r9, r15
neg r9
lea rbp, [r8 + r15]
mov rdi, r13
nop word cs:[rax + rax]
cmp rax, rdi
je 0x140080415
lea r10, [r15 + rdi]
cmp r10, rdx
jae 0x1400809bf
movzx r10d, byte [r11 + rdi]
lea rcx, [rdi + 1]
dec r9
cmp r10b, byte [rbp + rdi]
mov rdi, rcx
je 0x1400803e0
neg r9
mov r15, r9
mov r10, qword [rsp + 0x38]
jmp 0x1400803ac
mov rcx, qword [rsp + 0x40]
lea r9, [rcx + r15]
mov rbp, qword [rsp + 0xd8]
mov rdi, r13
sub rdi, 1
jb 0x1400804ee
cmp r9, rdx
jae 0x14008093f
movzx ecx, byte [rbp]
dec rbp
lea r10, [r9 - 1]
cmp cl, byte [r8 + r9]
mov r9, r10
je 0x140080429
add r15, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x38]
jmp 0x1400803ac
jne 0x1400808f0
cmp r8, r15
jne 0x140080479
mov r15, r8
test al, al
jne 0x1400804ee
jmp 0x1400805ec
movzx r10d, byte [rcx + r8]
movzx r9d, r10b
test r9b, r9b
js 0x14008048c
mov edx, r9d
jmp 0x1400804e3
mov edx, r9d
and edx, 0x1f
movzx r11d, byte [rcx + r8 + 1]
and r11d, 0x3f
cmp r9b, 0xe0
jb 0x1400804d5
movzx r9d, byte [rcx + r8 + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp r10b, 0xf0
jb 0x1400804dd
movzx r10d, byte [rcx + r8 + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r10d, 0x3f
or r10d, r9d
or edx, r10d
jmp 0x1400804e3
shl edx, 6
or edx, r11d
jmp 0x1400804e3
shl edx, 0xc
or edx, r9d
test al, al
je 0x1400805e0
cmp edx, 0x110000
jne 0x1400808b6
xor r13d, r13d
mov rax, rbx
mov r8, r14
jmp 0x140080610
lea rax, [rbx + r13]
mov r8, r14
sub r8, r13
jb 0x1400806c4
cmp r8, 0x10
jae 0x140080640
xor edx, edx
cmp r13, r14
je 0x140080631
nop dword [rax]
cmp byte [rax + rdx], 0x3a
je 0x140080652
inc rdx
cmp r8, rdx
jne 0x140080620
mov rdx, r8
xor eax, eax
cmp rax, 1
je 0x140080660
jmp 0x1400806c4
mov cl, 0x3a
mov rdx, rax
call fcn.1400b07f0
cmp rax, 1
je 0x140080660
jmp 0x1400806c4
mov eax, 1
cmp rax, 1
jne 0x1400806c4
nop dword [rax]
lea r15, [rdx + r13]
add r13, rdx
inc r13
cmp r15, r14
jae 0x140080600
cmp byte [rbx + r15], 0x3a
jne 0x140080600
test r15, r15
je 0x140080814
js 0x140080a01
movzx eax, byte [0x14013e141]
mov edx, 1
mov rcx, r15
call fcn.140006350
test rax, rax
je 0x140080a73
mov qword [rsp + 0x30], rax
mov rcx, rax
mov rdx, rbx
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, r15
shr rcx, 0x20
mov eax, r15d
clc
jmp case.0x14007b364.252
mov rcx, rbx
mov rdx, r14
mov edx, esi
mov r8d, 0x3d
call fcn.140071e90
cmp rax, 1
cmp eax, 1
mov eax, 1
mov qword [rsp + 0x30], rax
mov eax, 1
cmp edx, 0x80
jb 0x1400808df
mov eax, 2
cmp edx, 0x800
jb 0x1400808df
cmp edx, 0x10000
mov eax, 4
sbb rax, 0
add r8, rax
je 0x140080922
cmp r8, r15
jae 0x140080920
invalid
cmp byte [rcx + r8], 0xbf
jg 0x140080922
lea r8, [0x140119650]
mov rcx, r9
call fcn.1400b7860
lea r8, [0x140119638]
mov rdx, rax
call fcn.1400b7860
lea rbp, [r8 + r13]
add r11, r13
movzx ecx, byte [r8 + r9]
bt r10, rcx
jae 0x14008099e
xor r9d, r9d
mov rdi, r15
lea rcx, [r9 + r13]
cmp rcx, rax
jae 0x1400809d8
lea rcx, [rdi + r13]
cmp rcx, rdx
jae 0x1400809bf
movzx ecx, byte [r11 + r9]
lea r10, [rdi + 1]
inc r9
cmp cl, byte [rbp + rdi]
mov rdi, r10
je 0x140080975
jmp 0x1400809a4
add r15, rax
mov r10, r15
mov rcx, qword [rsp + 0x30]
lea r9, [r10 + rcx]
mov r15, r10
cmp r9, rdx
mov r10, qword [rsp + 0x38]
jb 0x140080964
jmp 0x1400805ec
add r15, r13
cmp rdx, r15
cmova r15, rdx
lea r8, [0x140119668]
or dword [rax], eax
mov rcx, r15
call fcn.1400b7860
test r13, r13
je 0x1400804ee
lea r8, [0x140119638]