Function at 0x14001bfb0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
movabs rax, 0x4847464544434241
movabs rdx, 0x504f4e4d4c4b4a49
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rdx
movabs rax, 0x5857565554535251
movabs rdx, 0x6665646362615a59
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
movabs rax, 0x6e6d6c6b6a696867
movabs rdx, 0x767574737271706f
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdx
movabs rax, 0x333231307a797877
movabs rdx, 0x2f2b393837363534
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rdx
mov rcx, qword [rbp + 0x20]
call fcn.14010bed0
mov qword [rbp - 8], 0
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x60], rax
jmp 0x14001c1d2
lea rax, [rbp - 0x60]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.operator___const
movzx eax, byte [rax]
mov ebx, eax
mov rax, qword [rbp - 8]
lea rdx, [rax + 1]
mov qword [rbp - 8], rdx
lea rcx, [rbp - 0x53]
mov rdx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
mov byte [rax], bl
cmp qword [rbp - 8], 3
jne 0x14001c1c6
lea rax, [rbp - 0x53]
mov edx, 0
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
shr al, 2
movzx eax, al
and eax, 0x3f
mov rdx, rax
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
lea rax, [rbp - 0x53]
mov edx, 0
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
shl eax, 4
and eax, 0x30
mov ebx, eax
lea rax, [rbp - 0x53]
mov edx, 1
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
shr al, 4
and eax, 0xf
add eax, ebx
movzx edx, al
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
lea rax, [rbp - 0x53]
mov edx, 1
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
shl eax, 2
and eax, 0x3c
mov ebx, eax
lea rax, [rbp - 0x53]
mov edx, 2
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
shr al, 6
and eax, 3
add eax, ebx
movzx edx, al
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
lea rax, [rbp - 0x53]
mov edx, 2
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
and eax, 0x3f
mov rdx, rax
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
mov qword [rbp - 8], 0
lea rax, [rbp - 0x60]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.operator__
lea rdx, [rbp + 0x30]
lea rax, [rbp - 0x60]
mov rcx, rax
call method.bool___gnu_cxx::operator__char__std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char________gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char______const____gnu_c
test al, al
jne 0x14001c05b
cmp qword [rbp - 8], 0
je 0x14001c353
lea rax, [rbp - 0x53]
mov edx, 0
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
shr al, 2
movzx eax, al
and eax, 0x3f
mov rdx, rax
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
cmp qword [rbp - 8], 1
jne 0x14001c27e
lea rax, [rbp - 0x53]
mov edx, 0
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
shl eax, 4
movzx eax, al
and eax, 0x30
mov rdx, rax
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
jmp 0x14001c319
lea rax, [rbp - 0x53]
mov edx, 0
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
shl eax, 4
and eax, 0x30
mov ebx, eax
lea rax, [rbp - 0x53]
mov edx, 1
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
shr al, 4
and eax, 0xf
add eax, ebx
movzx edx, al
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
lea rax, [rbp - 0x53]
mov edx, 1
mov rcx, rax
call method.std::array_unsigned_char__3ull_.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx eax, al
shl eax, 2
movzx eax, al
and eax, 0x3c
mov rdx, rax
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::array_char__64ull_.operator___unsigned_long_long__const
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
jmp 0x14001c329
mov edx, 0x3d
mov rcx, qword [rbp + 0x20]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_
add qword [rbp - 8], 1
cmp qword [rbp - 8], 3
setbe al
test al, al
jne 0x14001c31b
jmp 0x14001c353
nop
mov rax, qword [rbp + 0x20]
add rsp, 0x88
pop rbx
pop rbp
ret