Function at 0x140073a85
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r13, r9
mov rbp, r8
mov rsi, rcx
mov qword [rsp + 0x28], rdx
mov rcx, rdx
call fcn.140074057
mov rcx, rax
mov rax, r13
shr rax, 0x3e
jne 0x140073f6d
mov r10, rdx
lea rax, [r13*4]
mov edi, 3
xor edx, edx
div rdi
add rax, 3
movabs r8, 0x7ffffffffffffffc
and r8, rax
cmp r8, r10
ja 0x140073f6d
mov qword [rsp + 0x50], rsi
lea r9, [0x14011fb98]
mov rdx, r10
call fcn.140061d0f
mov r14, rax
mov rbx, rdx
mov rax, r13
xor edx, edx
div rdi
mov qword [rsp + 0x40], rdx
sub r13, rdx
mov rax, rbp
add rax, r13
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
and rbx, 0xfffffffffffffffc
lea rsi, [0x14011fcb0]
mov qword [rsp + 0x48], r14
cmp r13, 3
jb 0x140073d16
lea rax, str._opt_x86_64_gnu_build_x86_64_unknown_linux_gnu_stage1_lib_rustlib_src_rust_library_core_src_slice_iter.rs
mov qword [rsp + 0x20], rax
mov r9d, 3
lea rcx, [rsp + 0x58]
mov rdx, rbp
mov r8, r13
call fcn.140073a26
test rbx, rbx
je 0x140073e9f
lea rax, [r14 + 4]
add rbx, 0xfffffffffffffffc
test r14, r14
je 0x140073d13
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140074004
cmp rcx, 1
je 0x140074011
cmp rcx, 2
jbe 0x140074024
mov rcx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
movzx r8d, byte [rcx]
movzx edx, byte [rcx + 1]
movzx ecx, byte [rcx + 2]
movzx r8d, r8w
mov r12d, r8d
shr r12d, 2
mov r11d, r12d
add r11d, 0x41
mov r10d, 0x10
mov rdi, rsi
test r10, r10
je 0x140073c06
movzx r15d, byte [rdi + 1]
test byte [rdi], 1
mov r9d, r12d
cmove r9d, r11d
sub r15d, r9d
movsx r9d, r15w
shr r9d, 8
and r9w, word [rdi + 2]
add rdi, 4
add r9d, r11d
add r10, 0xfffffffffffffffc
mov r11d, r9d
jmp 0x140073bd2
mov byte [r14], r11b
shl r8d, 4
movzx edx, dx
mov r9d, edx
shr r9d, 4
and r8d, 0x30
lea r10d, [r9 + r8]
add r10d, 0x41
or r9d, r8d
mov r8d, 0x10
mov r11, rsi
test r8, r8
je 0x140073c62
movzx edi, byte [r11 + 1]
test byte [r11], 1
mov r15d, r9d
cmove r15d, r10d
sub edi, r15d
movsx edi, di
shr edi, 8
and di, word [r11 + 2]
add r11, 4
add edi, r10d
add r8, 0xfffffffffffffffc
mov r10d, edi
jmp 0x140073c2f
mov byte [r14 + 1], r10b
movzx ecx, cx
mov r9d, ecx
shr r9d, 6
and edx, 0xf
lea r8d, [r9 + rdx*4]
lea r9d, [r9 + rdx*4]
add r9d, 0x41
mov edx, 0x10
mov r10, rsi
test rdx, rdx
je 0x140073cbc
movzx r11d, byte [r10 + 1]
test byte [r10], 1
mov edi, r8d
cmove edi, r9d
sub r11d, edi
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + 2]
add r10, 4
add r11d, r9d
add rdx, 0xfffffffffffffffc
mov r9d, r11d
jmp 0x140073c87
mov byte [r14 + 2], r9b
and ecx, 0x3f
mov r8d, ecx
add r8d, 0x41
mov edx, 0x10
mov r9, rsi
test rdx, rdx
je 0x140073d07
movzx r10d, byte [r9 + 1]
test byte [r9], 1
mov r11d, ecx
cmove r11d, r8d
sub r10d, r11d
movsx r10d, r10w
shr r10d, 8
and r10w, word [r9 + 2]
add r9, 4
add r10d, r8d
add rdx, 0xfffffffffffffffc
mov r8d, r10d
jmp 0x140073cd2
mov byte [r14 + 3], r8b
mov r14, rax
jmp 0x140073b34
mov r14, rax
cmp rbx, 4
jb 0x140073e9f
test r14, r14
je 0x140073e9f
lea r12, [rsp + 0x58]
mov byte [r12 + 2], 0
and word [r12], 0
lea r9, [0x14011fbb0]
mov edx, 3
mov rcx, r12
mov rbx, qword [rsp + 0x40]
mov r8, rbx
call fcn.140061d0f
lea rcx, [0x14011fbc8]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, qword [rsp + 0x38]
mov r9, rbx
call fcn.140061ce2
movzx edx, byte [r12]
movzx ecx, byte [r12 + 1]
movzx eax, byte [r12 + 2]
mov r8d, edx
shr r8d, 2
mov r9d, r8d
add r9d, 0x41
lea r11, [0x14011fcb0]
mov r10d, 0x10
test r10, r10
je 0x140073dd0
movzx esi, byte [r11 + 1]
test byte [r11], 1
mov edi, r8d
cmove edi, r9d
sub esi, edi
movsx esi, si
shr esi, 8
and si, word [r11 + 2]
add r11, 4
add esi, r9d
add r10, 0xfffffffffffffffc
mov r9d, esi
jmp 0x140073d9e
mov byte [r14], r9b
movzx r8d, dx
shl r8d, 4
movzx ecx, cx
mov edx, ecx
shr edx, 4
and r8d, 0x30
lea r9d, [rdx + r8]
add r9d, 0x41
or edx, r8d
lea r10, [0x14011fcb0]
mov r8d, 0x10
test r8, r8
je 0x140073e33
movzx r11d, byte [r10 + 1]
test byte [r10], 1
mov esi, edx
cmove esi, r9d
sub r11d, esi
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + 2]
add r10, 4
add r11d, r9d
add r8, 0xfffffffffffffffc
mov r9d, r11d
jmp 0x140073dff
mov byte [r14 + 1], r9b
movzx edx, ax
shr edx, 6
and ecx, 0xf
lea eax, [rdx + rcx*4]
lea ecx, [rdx + rcx*4]
add ecx, 0x41
lea r8, [0x14011fcb0]
mov edx, 0x10
test rdx, rdx
je 0x140073e8a
movzx r9d, byte [r8 + 1]
test byte [r8], 1
mov r10d, eax
cmove r10d, ecx
sub r9d, r10d
movsx r9d, r9w
shr r9d, 8
and r9w, word [r8 + 2]
add r8, 4
add r9d, ecx
add rdx, 0xfffffffffffffffc
mov ecx, r9d
jmp 0x140073e55
cmp rbx, 1
mov eax, 0x3d
cmovne eax, ecx
mov byte [r14 + 2], al
mov byte [r14 + 3], 0x3d
cmp qword [rsp + 0x48], 0
mov rsi, qword [rsp + 0x50]
je 0x140073f6d
mov rbx, qword [rsp + 0x28]
mov bpl, byte [rbx + 0x38]
cmp bpl, 3
jne 0x140073ec9
mov rcx, qword [rsp + 0x30]
jmp 0x140073f64
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
mov r8, qword [rbx + 0x20]
lea r9, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
call fcn.140073a5e
mov r14, qword [rbx + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, rcx
sub rdi, r14
jbe 0x140073f5d
lea r9, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
mov rcx, rax
mov r8, r14
call fcn.140073a5e
mov r12, rax
mov r15, rdx
mov ecx, ebp
call fcn.14005c4fd
add rdx, rdi
jb 0x140073f6d
cmp rdx, r15
jae 0x140073f6d
not r14
add r14, qword [rsp + 0x30]
mov r13, r14
cmp r13, 0xffffffffffffffff
je 0x140073f9a
cmp r14, r15
jae 0x14007403c
mov bl, byte [r12 + r13]
mov rax, qword [rsp + 0x28]
mov cl, byte [rax + 0x38]
call fcn.14005c4fd
add rdx, r13
jb 0x140073f6d
cmp rdx, r15
jae 0x140074048
mov byte [r12 + rdx], bl
dec r13
jmp 0x140073f26
sub r14, rcx
mov qword [rbx + 0x28], r14
mov rax, qword [rbx + 0x20]
add rax, rcx
jae 0x140073f86
mov byte [rsi + 1], 1
mov al, 1
mov byte [rsi], al
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rcx
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 0x20], rax
mov qword [rsi + 8], rdx
xor eax, eax
jmp 0x140073f73
mov rax, qword [rsp + 0x28]
mov cl, byte [rax + 0x38]
call fcn.14005c4fd
mov r14, rax
mov r13, rdx
lea r9, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
mov rcx, r12
mov rdx, r15
mov r8, r13
call fcn.140061d0f
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r14
mov r9, r13
call fcn.140061ce2
add qword [rsp + 0x30], r13
jb 0x140073f6d
mov rax, qword [rsp + 0x28]
mov r14, qword [rax + 0x30]
sub r14, rdi
jb 0x140073f6d
mov rbx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
jmp 0x140073f60
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
xor ecx, ecx
xor edx, edx
jmp 0x140074035
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 1
mov edx, 1
jmp 0x140074035
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 2
mov edx, 2
call fcn.1400614e3
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
mov rcx, r13
jmp 0x140074052
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_encoder.rs
mov rcx, rdx
mov rdx, r15
jmp 0x140074035