Function at 0x1400041d0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x430
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3d0], rcx
mov qword [rbp + 0x3d8], rdx
mov qword [rbp + 0x3e0], r8
mov qword [rbp + 0x3e8], r9
mov rdx, qword [rbp + 0x3e0]
mov rax, qword [rbp + 0x3e8]
add rax, rdx
mov qword [rbp + 0x3a8], rax
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.binary_block_size__
movzx eax, al
cmp qword [rbp + 0x3e8], rax
setae al
test al, al
je 0x14000466c
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.binary_block_size__
movzx eax, al
neg rax
add qword [rbp + 0x3a8], rax
jmp 0x140004649
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x390], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rbp + 0x388], rax
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x380], rax
mov rax, qword [rbp + 0x390]
mov qword [rbp + 0x378], rax
mov rax, qword [rbp + 0x388]
mov qword [rbp + 0x370], rax
mov rax, qword [rbp + 0x380]
mov qword [rbp + 0x368], rax
mov rax, qword [rbp + 0x378]
mov qword [rbp + 0x360], rax
mov rax, qword [rbp + 0x370]
mov qword [rbp + 0x358], rax
mov rax, qword [rbp + 0x368]
mov qword [rbp + 0x350], rax
mov rax, qword [rbp + 0x360]
mov qword [rbp + 0x348], rax
mov rax, qword [rbp + 0x358]
mov qword [rbp + 0x340], rax
mov rax, qword [rbp + 0x350]
mov qword [rbp + 0x338], rax
mov rax, qword [rbp + 0x348]
mov qword [rbp + 0x330], rax
mov rax, qword [rbp + 0x340]
mov qword [rbp + 0x328], rax
mov rax, qword [rbp + 0x338]
mov qword [rbp + 0x320], rax
nop
mov rax, qword [rbp + 0x338]
mov qword [rbp + 0x318], rax
mov rax, qword [rbp + 0x318]
movzx eax, byte [rax]
shr al, 2
movzx eax, al
mov word [rbp + 0x316], ax
movzx eax, word [rbp + 0x316]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x348]
mov qword [rbp + 0x308], rdx
mov rdx, qword [rbp + 0x340]
mov qword [rbp + 0x300], rdx
mov byte [rbp + 0x2ff], al
movsx eax, byte [rbp + 0x2ff]
mov rdx, qword [rbp + 0x300]
mov qword [rbp + 0x2f0], rdx
mov rdx, qword [rbp + 0x308]
mov qword [rbp + 0x2e8], rdx
mov byte [rbp + 0x2e7], al
movzx edx, byte [rbp + 0x2e7]
mov rax, qword [rbp + 0x2f0]
mov r9, qword [rax]
mov rax, qword [rbp + 0x2f0]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x2f0]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
nop
mov rax, qword [rbp + 0x350]
mov qword [rbp + 0x2d8], rax
mov rax, qword [rbp + 0x2d8]
movzx eax, byte [rax]
shl eax, 4
and eax, 0x30
mov edx, eax
mov rax, qword [rbp + 0x2d8]
add rax, 1
movzx eax, byte [rax]
shr al, 4
or eax, edx
movzx eax, al
mov word [rbp + 0x2d6], ax
movzx eax, word [rbp + 0x2d6]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x360]
mov qword [rbp + 0x2c8], rdx
mov rdx, qword [rbp + 0x358]
mov qword [rbp + 0x2c0], rdx
mov byte [rbp + 0x2bf], al
movsx eax, byte [rbp + 0x2bf]
mov rdx, qword [rbp + 0x2c0]
mov qword [rbp + 0x2b0], rdx
mov rdx, qword [rbp + 0x2c8]
mov qword [rbp + 0x2a8], rdx
mov byte [rbp + 0x2a7], al
movzx edx, byte [rbp + 0x2a7]
mov rax, qword [rbp + 0x2b0]
mov r9, qword [rax]
mov rax, qword [rbp + 0x2b0]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x2b0]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
nop
mov rax, qword [rbp + 0x368]
mov qword [rbp + 0x298], rax
mov rax, qword [rbp + 0x298]
add rax, 1
movzx eax, byte [rax]
shl eax, 2
and eax, 0x3c
mov edx, eax
mov rax, qword [rbp + 0x298]
add rax, 2
movzx eax, byte [rax]
shr al, 6
or eax, edx
movzx eax, al
mov word [rbp + 0x296], ax
movzx eax, word [rbp + 0x296]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x378]
mov qword [rbp + 0x288], rdx
mov rdx, qword [rbp + 0x370]
mov qword [rbp + 0x280], rdx
mov byte [rbp + 0x27f], al
movsx eax, byte [rbp + 0x27f]
mov rdx, qword [rbp + 0x280]
mov qword [rbp + 0x270], rdx
mov rdx, qword [rbp + 0x288]
mov qword [rbp + 0x268], rdx
mov byte [rbp + 0x267], al
movzx edx, byte [rbp + 0x267]
mov rax, qword [rbp + 0x270]
mov r9, qword [rax]
mov rax, qword [rbp + 0x270]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x270]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
nop
mov rax, qword [rbp + 0x380]
mov qword [rbp + 0x258], rax
mov rax, qword [rbp + 0x258]
add rax, 2
movzx eax, byte [rax]
and eax, 0x3f
movzx eax, al
mov word [rbp + 0x256], ax
movzx eax, word [rbp + 0x256]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x390]
mov qword [rbp + 0x248], rdx
mov rdx, qword [rbp + 0x388]
mov qword [rbp + 0x240], rdx
mov byte [rbp + 0x23f], al
movsx eax, byte [rbp + 0x23f]
mov rdx, qword [rbp + 0x240]
mov qword [rbp + 0x230], rdx
mov rdx, qword [rbp + 0x248]
mov qword [rbp + 0x228], rdx
mov byte [rbp + 0x227], al
movzx edx, byte [rbp + 0x227]
mov rax, qword [rbp + 0x230]
mov r9, qword [rax]
mov rax, qword [rbp + 0x230]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x230]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
nop
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.binary_block_size__
movzx eax, al
add qword [rbp + 0x3e0], rax
mov rax, qword [rbp + 0x3e0]
cmp qword [rbp + 0x3a8], rax
jae 0x140004247
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.binary_block_size__
movzx eax, al
add qword [rbp + 0x3a8], rax
mov rax, qword [rbp + 0x3a8]
cmp qword [rbp + 0x3e0], rax
jae 0x140004e17
mov rax, qword [rbp + 0x3a8]
sub rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x3a0], rax
cmp qword [rbp + 0x3a0], 0
je 0x1400046b0
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.binary_block_size__
movzx eax, al
cmp qword [rbp + 0x3a0], rax
jl 0x1400046b7
mov eax, 1
jmp 0x1400046bc
mov eax, 0
test al, al
je 0x1400046c5
call sym.abort
mov rax, qword [rbp + 0x3a0]
movzx eax, al
mov byte [rbp - 0x52], al
cmp byte [rbp - 0x52], 1
je 0x14000471d
cmp byte [rbp - 0x52], 2
je 0x140004716
mov ecx, 0x10
call sym.__cxa_allocate_exception
mov rbx, rax
lea rax, str.invalid_number_of_bytes_in_a_tail_block
mov rdx, rax
mov rcx, rbx
call sym.std::domain_error::domain_error_char_const_
mov r8, qword [0x140069e80]
lea rax, sym.imp.libstdc_6.dll_operator_new_unsigned_long_long_
mov rdx, rax
mov rcx, rbx
call sym.__cxa_throw
mov eax, 3
jmp 0x14000473a
mov eax, 2
jmp 0x14000473a
mov byte [rbp + 0x39f], al
movzx eax, byte [rbp + 0x39f]
mov rdx, qword [rbp + 0x3d0]
mov qword [rbp + 0x1d0], rdx
mov rdx, qword [rbp + 0x3d8]
mov qword [rbp + 0x1c8], rdx
mov rdx, qword [rbp + 0x3e0]
mov qword [rbp + 0x1c0], rdx
mov byte [rbp + 0x1bf], al
cmp byte [rbp + 0x1bf], 1
jne 0x1400047dc
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x1b0], rax
mov ecx, 0x10
call sym.__cxa_allocate_exception
mov rbx, rax
lea rax, str.invalid_last_encoding_symbol_index_in_a_tail
mov rdx, rax
mov rcx, rbx
call sym.std::domain_error::domain_error_char_const_
mov r8, qword [0x140069e80]
lea rax, sym.imp.libstdc_6.dll_operator_new_unsigned_long_long_
mov rdx, rax
mov rcx, rbx
call sym.__cxa_throw
mov rsi, rax
mov rcx, rbx
call sym.__cxa_free_exception
mov rax, rsi
mov rcx, rax
call sym._Unwind_Resume
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x1a8], rax
mov rax, qword [rbp + 0x1a8]
movzx eax, byte [rax]
shr al, 2
movzx eax, al
mov word [rbp + 0x1a6], ax
movzx eax, word [rbp + 0x1a6]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x1d0]
mov qword [rbp + 0x198], rdx
mov rdx, qword [rbp + 0x1c8]
mov qword [rbp + 0x190], rdx
mov byte [rbp + 0x18f], al
movsx eax, byte [rbp + 0x18f]
mov rdx, qword [rbp + 0x190]
mov qword [rbp + 0x180], rdx
mov rdx, qword [rbp + 0x198]
mov qword [rbp + 0x178], rdx
mov byte [rbp + 0x177], al
movzx edx, byte [rbp + 0x177]
mov rax, qword [rbp + 0x180]
mov r9, qword [rax]
mov rax, qword [rbp + 0x180]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x180]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
movzx eax, byte [rbp + 0x1bf]
mov rdx, qword [rbp + 0x1d0]
mov qword [rbp + 0x168], rdx
mov rdx, qword [rbp + 0x1c8]
mov qword [rbp + 0x160], rdx
mov rdx, qword [rbp + 0x1c0]
mov qword [rbp + 0x158], rdx
mov byte [rbp + 0x157], al
cmp byte [rbp + 0x157], 2
jne 0x14000499a
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x148], rax
mov rax, qword [rbp + 0x148]
movzx eax, byte [rax]
shl eax, 4
and eax, 0x30
movzx eax, al
mov word [rbp + 0x146], ax
movzx eax, word [rbp + 0x146]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x168]
mov qword [rbp + 0x138], rdx
mov rdx, qword [rbp + 0x160]
mov qword [rbp + 0x130], rdx
mov byte [rbp + 0x12f], al
movsx eax, byte [rbp + 0x12f]
mov rdx, qword [rbp + 0x130]
mov qword [rbp + 0x120], rdx
mov rdx, qword [rbp + 0x138]
mov qword [rbp + 0x118], rdx
mov byte [rbp + 0x117], al
movzx edx, byte [rbp + 0x117]
mov rax, qword [rbp + 0x120]
mov r9, qword [rax]
mov rax, qword [rbp + 0x120]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x120]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
jmp 0x140004d36
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x108], rax
mov rax, qword [rbp + 0x108]
movzx eax, byte [rax]
shl eax, 4
and eax, 0x30
mov edx, eax
mov rax, qword [rbp + 0x108]
add rax, 1
movzx eax, byte [rax]
shr al, 4
or eax, edx
movzx eax, al
mov word [rbp + 0x106], ax
movzx eax, word [rbp + 0x106]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x168]
mov qword [rbp + 0xf8], rdx
mov rdx, qword [rbp + 0x160]
mov qword [rbp + 0xf0], rdx
mov byte [rbp + 0xef], al
movsx eax, byte [rbp + 0xef]
mov rdx, qword [rbp + 0xf0]
mov qword [rbp + 0xe0], rdx
mov rdx, qword [rbp + 0xf8]
mov qword [rbp + 0xd8], rdx
mov byte [rbp + 0xd7], al
movzx edx, byte [rbp + 0xd7]
mov rax, qword [rbp + 0xe0]
mov r9, qword [rax]
mov rax, qword [rbp + 0xe0]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0xe0]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
movzx eax, byte [rbp + 0x157]
mov rdx, qword [rbp + 0x168]
mov qword [rbp + 0xc8], rdx
mov rdx, qword [rbp + 0x160]
mov qword [rbp + 0xc0], rdx
mov rdx, qword [rbp + 0x158]
mov qword [rbp + 0xb8], rdx
mov byte [rbp + 0xb7], al
cmp byte [rbp + 0xb7], 3
jne 0x140004b6b
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0xa8], rax
mov rax, qword [rbp + 0xa8]
add rax, 1
movzx eax, byte [rax]
shl eax, 2
and eax, 0x3c
movzx eax, al
mov word [rbp + 0xa6], ax
movzx eax, word [rbp + 0xa6]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0xc8]
mov qword [rbp + 0x98], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rbp + 0x90], rdx
mov byte [rbp + 0x8f], al
movsx eax, byte [rbp + 0x8f]
mov rdx, qword [rbp + 0x90]
mov qword [rbp + 0x80], rdx
mov rdx, qword [rbp + 0x98]
mov qword [rbp + 0x78], rdx
mov byte [rbp + 0x77], al
movzx edx, byte [rbp + 0x77]
mov rax, qword [rbp + 0x80]
mov r9, qword [rax]
mov rax, qword [rbp + 0x80]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x80]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
jmp 0x140004d36
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
add rax, 1
movzx eax, byte [rax]
shl eax, 2
and eax, 0x3c
mov edx, eax
mov rax, qword [rbp + 0x68]
add rax, 2
movzx eax, byte [rax]
shr al, 6
or eax, edx
movzx eax, al
mov word [rbp + 0x66], ax
movzx eax, word [rbp + 0x66]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0xc8]
mov qword [rbp + 0x58], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rbp + 0x50], rdx
mov byte [rbp + 0x4f], al
movsx eax, byte [rbp + 0x4f]
mov rdx, qword [rbp + 0x50]
mov qword [rbp + 0x40], rdx
mov rdx, qword [rbp + 0x58]
mov qword [rbp + 0x38], rdx
mov byte [rbp + 0x37], al
movzx edx, byte [rbp + 0x37]
mov rax, qword [rbp + 0x40]
mov r9, qword [rax]
mov rax, qword [rbp + 0x40]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x40]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
movzx eax, byte [rbp + 0xb7]
mov rdx, qword [rbp + 0xc8]
mov qword [rbp + 0x28], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rbp + 0x20], rdx
mov rdx, qword [rbp + 0xb8]
mov qword [rbp + 0x18], rdx
mov byte [rbp + 0x17], al
cmp byte [rbp + 0x17], 4
jne 0x140004c91
mov rax, qword [rbp + 0x18]
mov qword [rbp + 8], rax
mov ecx, 0x10
call sym.__cxa_allocate_exception
mov rbx, rax
lea rax, str.invalid_last_encoding_symbol_index_in_a_tail
mov rdx, rax
mov rcx, rbx
call sym.std::domain_error::domain_error_char_const_
mov r8, qword [0x140069e80]
lea rax, sym.imp.libstdc_6.dll_operator_new_unsigned_long_long_
mov rdx, rax
mov rcx, rbx
call sym.__cxa_throw
mov rsi, rax
mov rcx, rbx
call sym.__cxa_free_exception
mov rax, rsi
mov rcx, rax
call sym._Unwind_Resume
mov rax, qword [rbp + 0x18]
mov qword [rbp], rax
mov rax, qword [rbp]
add rax, 2
movzx eax, byte [rax]
and eax, 0x3f
movzx eax, al
mov word [rbp - 2], ax
movzx eax, word [rbp - 2]
cdqe
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_Error_creating_output_file.
movzx eax, byte [rax + rdx]
movsx eax, al
mov rdx, qword [rbp + 0x28]
mov qword [rbp - 0x10], rdx
mov rdx, qword [rbp + 0x20]
mov qword [rbp - 0x18], rdx
mov byte [rbp - 0x19], al
movsx eax, byte [rbp - 0x19]
mov rdx, qword [rbp - 0x18]
mov qword [rbp - 0x28], rdx
mov rdx, qword [rbp - 0x10]
mov qword [rbp - 0x30], rdx
mov byte [rbp - 0x31], al
movzx edx, byte [rbp - 0x31]
mov rax, qword [rbp - 0x28]
mov r9, qword [rax]
mov rax, qword [rbp - 0x28]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp - 0x28]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
movzx eax, byte [rbp + 0x17]
mov rdx, qword [rbp + 0x28]
mov qword [rbp - 0x40], rdx
mov rdx, qword [rbp + 0x20]
mov qword [rbp - 0x48], rdx
mov rdx, qword [rbp + 0x18]
mov qword [rbp - 0x50], rdx
mov byte [rbp - 0x51], al
call sym.abort
call method.cppcodec::detail::base64_cppcodec::detail::base64_rfc4648_.encoded_block_size__
movzx edx, al
movzx eax, byte [rbp + 0x39f]
sub edx, eax
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x218], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rbp + 0x210], rax
mov dword [rbp + 0x20c], edx
mov dword [rbp + 0x208], 0
jmp 0x140004e04
mov eax, 0x3d
movsx eax, al
mov rdx, qword [rbp + 0x218]
mov qword [rbp + 0x200], rdx
mov rdx, qword [rbp + 0x210]
mov qword [rbp + 0x1f8], rdx
mov byte [rbp + 0x1f7], al
movsx eax, byte [rbp + 0x1f7]
mov rdx, qword [rbp + 0x1f8]
mov qword [rbp + 0x1e8], rdx
mov rdx, qword [rbp + 0x200]
mov qword [rbp + 0x1e0], rdx
mov byte [rbp + 0x1df], al
movzx edx, byte [rbp + 0x1df]
mov rax, qword [rbp + 0x1e8]
mov r9, qword [rax]
mov rax, qword [rbp + 0x1e8]
mov rax, qword [rax + 8]
lea r8, [rax + 1]
mov rcx, qword [rbp + 0x1e8]
mov qword [rcx + 8], r8
add rax, r9
mov byte [rax], dl
nop
nop
add dword [rbp + 0x208], 1
mov eax, dword [rbp + 0x20c]
cmp eax, dword [rbp + 0x208]
jg 0x140004d78
nop
add rsp, 0x430
pop rbx
pop rsi
pop rbp
ret