Function at 0x140021110
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rsi, r9
mov r13, r8
mov r12, rdx
mov rbx, rcx
mov r15, qword [rsp + 0x158]
movabs rdi, 0x8000000000000001
mov rbp, qword [r9]
lea r14, [rdi + rbp]
add r14, 0xfffffffffffffffe
cmp r14, 4
mov eax, 2
cmovb rax, r14
test rax, rax
je 0x1400211e7
cmp rax, 2
jne 0x140021229
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x48], rbp
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x50], rax
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x40], rax
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x38], rax
mov rbp, qword [rsi + 0x30]
mov rax, qword [rsi + 8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x58], rax
mov r15, qword [r12 + 0x28]
cmp r15, 5
jb 0x140021253
mov rax, qword [r12 + 8]
test rax, rax
je 0x14002128b
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14002126e
bsr rcx, rcx
xor rcx, 0x3f
jmp 0x140021273
mov qword [rsp + 0x50], rbx
mov rbx, qword [r12 + 0x28]
cmp rbx, 5
jb 0x1400212af
mov rax, qword [r12 + 8]
test rax, rax
je 0x1400212e7
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x1400212ca
bsr rcx, rcx
xor rcx, 0x3f
jmp 0x1400212cf
mov qword [rbx], 0
cmp r14, 3
ja 0x140021240
cmp r14, 2
jne 0x140021464
mov r14, qword [rsi + 0x18]
mov r15, qword [rsi + 0x20]
mov rcx, r14
call qword [r15]
jmp 0x14002147c
test r15, r15
je 0x14002128b
lea rcx, [r12 + 8]
mov rax, r15
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
jne 0x1400211da
mov ecx, 0x40
shl rax, 6
sub rax, rcx
mov ecx, 0xb
cmp rax, 0x1000
ja 0x1400213cc
mov rax, qword [r12 + 0x58]
cmp rax, 5
jb 0x14002130b
mov rax, qword [r12 + 0x38]
mov rdx, qword [r12 + 0x40]
mov ecx, 0xc
test rax, rax
jne 0x14002131e
jmp 0x1400213cc
test rbx, rbx
je 0x1400212e7
lea rcx, [r12 + 8]
mov rax, rbx
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
jne 0x14002121c
mov ecx, 0x40
shl rax, 6
sub rax, rcx
mov ecx, 0xb
cmp rax, 0x1000
ja 0x140021450
mov rax, qword [r12 + 0x58]
cmp rax, 5
jb 0x140021369
mov rax, qword [r12 + 0x38]
mov rdx, qword [r12 + 0x40]
mov ecx, 0xc
test rax, rax
jne 0x14002137c
jmp 0x140021450
lea rdx, [r12 + 0x38]
mov ecx, 0xc
test rax, rax
je 0x1400213cc
cmp rax, 1
jne 0x1400213c7
mov rax, qword [rdx]
cmp rax, 2
jb 0x1400213cc
shr rax, 0x21
mov ecx, 0xd
jne 0x1400213cc
cmp r15, 5
jb 0x1400214ea
mov rax, qword [r12 + 8]
test rax, rax
je 0x140021539
mov rdx, rax
mov rax, qword [r12 + 0x10]
jmp 0x1400214f7
lea rdx, [r12 + 0x38]
mov ecx, 0xc
test rax, rax
je 0x140021450
cmp rax, 1
jne 0x14002144b
mov rax, qword [rdx]
cmp rax, 2
jb 0x140021450
shr rax, 0x21
mov ecx, 0xd
jne 0x140021450
cmp rbx, 5
jb 0x14002150e
mov rax, qword [r12 + 8]
test rax, rax
je 0x140021542
mov rdx, rax
mov rax, qword [r12 + 0x10]
jmp 0x14002151b
mov ecx, 0xd
mov qword [rbx], rcx
mov rdx, qword [rsp + 0x48]
lea rax, [rdx*2]
test rax, rax
mov rdi, qword [rsp + 0x38]
je 0x1400213f6
mov r8d, 1
mov rcx, qword [rsp + 0x60]
call sym.__rust_dealloc
mov rcx, rdi
call qword [rbp]
mov rdx, qword [rbp + 8]
test rdx, rdx
je 0x140021411
mov r8, qword [rbp + 0x10]
mov rcx, rdi
call sym.__rust_dealloc
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
mov r15, qword [rsp + 0x40]
call qword [r15]
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x140021436
mov r8, qword [r15 + 0x10]
mov rcx, rdi
call sym.__rust_dealloc
cmp r14, 3
ja 0x1400214d3
cmp r14, 2
jne 0x140021464
jmp 0x1400214d3
mov ecx, 0xd
mov rbx, qword [rsp + 0x50]
mov qword [rbx], rcx
cmp r14, 3
ja 0x14002146e
cmp r14, 2
je 0x14002146e
mov rcx, rsi
call sym.core::ptr::drop_in_place_rsa::padding::PaddingScheme_::hfc505856eafd3551
jmp 0x1400214d3
mov r14, qword [rsi + 0x18]
mov r15, qword [rsi + 0x20]
mov rcx, r14
call qword [r15]
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x140021491
mov r8, qword [r15 + 0x10]
mov rcx, r14
call sym.__rust_dealloc
mov r14, qword [rsi + 0x28]
mov r15, qword [rsi + 0x30]
mov rcx, r14
call qword [r15]
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x1400214b4
mov r8, qword [r15 + 0x10]
mov rcx, r14
call sym.__rust_dealloc
dec rdi
cmp rbp, rdi
je 0x1400214d3
test rbp, rbp
je 0x1400214d3
mov rcx, qword [rsi + 8]
mov r8d, 1
mov rdx, rbp
call sym.__rust_dealloc
mov rax, rbx
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r15, r15
je 0x140021539
lea rax, [r12 + 8]
mov rdx, r15
mov rcx, rdx
mov rax, qword [rax + rdx*8 - 8]
test rax, rax
je 0x140021549
bsr rax, rax
xor rax, 0x3f
jmp 0x14002154e
test rbx, rbx
je 0x140021542
lea rax, [r12 + 8]
mov rdx, rbx
mov rcx, rdx
mov rax, qword [rax + rdx*8 - 8]
test rax, rax
je 0x14002178b
bsr rax, rax
xor rax, 0x3f
jmp 0x140021790
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x140021562
xor ecx, ecx
jmp 0x14002179f
mov eax, 0x40
shl rcx, 6
or rcx, 7
sub rcx, rax
shr rcx, 3
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
call qword [rax + 0x48]
mov rdx, rax
mov rax, qword [rsp + 0x158]
lea rax, [rax + rdx*2]
add rax, 2
mov ecx, 3
cmp rax, qword [rsp + 0x70]
ja 0x1400213cc
dec rdi
cmp qword [rsp + 0x48], rdi
jne 0x1400215bb
mov eax, 1
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov rdi, qword [rsp + 0x70]
jmp 0x1400215ea
mov rax, qword [rsp + 0x58]
shr rax, 0x3d
mov rdi, qword [rsp + 0x70]
je 0x1400215ea
mov qword [rbx], 0x11
mov rdx, qword [rsp + 0x48]
test rdx, rdx
mov rdi, qword [rsp + 0x38]
je 0x1400213f6
jmp 0x1400213e6
mov qword [rsp + 0x68], rdx
test rdi, rdi
je 0x140021aee
mov edx, 1
mov rcx, rdi
call sym.__rust_alloc_zeroed
test rax, rax
je 0x140021b2a
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdi
dec rdi
mov r8, qword [rsp + 0x68]
sub rdi, r8
jb 0x140021b3c
mov qword [rsp + 0xe0], rax
inc rax
mov rcx, r13
mov r13, rax
mov rdx, rax
call sym.__rand_core::os::OsRng_as_rand_core::RngCore_::fill_bytes::h8bb1a99f42e532de
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
call qword [rax + 0x20]
mov qword [rsp + 0x80], rax
mov r8, qword [rsp + 0x68]
cmp r8, rdi
mov qword [rsp + 0x78], rdx
ja 0x140021b78
mov qword [rsp + 0x58], rdi
cmp r8, rdx
jne 0x140021b8c
mov qword [rsp + 0xa0], r13
add r13, r8
mov rdi, r8
not rdi
mov rcx, r13
mov rdx, qword [rsp + 0x80]
call sym.memcpy
mov rcx, qword [rsp + 0x70]
sub rcx, qword [rsp + 0x158]
lea rax, [rcx + rdi]
dec rax
mov rdx, qword [rsp + 0x58]
cmp rax, rdx
jae 0x140021a45
add rcx, rdi
mov byte [r13 + rcx - 1], 1
mov rax, rdx
sub rax, rcx
jb 0x140021ba2
mov r8, qword [rsp + 0x158]
cmp rax, r8
jne 0x140021bb5
add rcx, r13
mov rdx, qword [rsp + 0x150]
call sym.memcpy
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdi, qword [rsp + 0x58]
mov rdx, rdi
mov r8, qword [rsp + 0x38]
mov r9, rbp
call sym.rsa::algorithms::mgf1_xor::he122301d6ab86d2d
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r13
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
mov r9, rbp
call sym.rsa::algorithms::mgf1_xor::he122301d6ab86d2d
cmp r15, 5
jb 0x140021908
mov r15, qword [r12 + 8]
test r15, r15
je 0x14002192a
mov rax, qword [r12 + 0x10]
jmp 0x140021912
mov eax, 0x40
shl rcx, 6
or rcx, 7
sub rcx, rax
shr rcx, 3
lea rax, [rcx - 0xb]
cmp rax, r15
jae 0x1400217b9
mov rbx, qword [rsp + 0x50]
mov qword [rbx], 3
jmp 0x140021458
test rcx, rcx
mov qword [rsp + 0x40], rcx
je 0x140021a59
mov eax, 1
mov qword [rsp + 0x38], rax
mov edx, 1
call sym.__rust_alloc_zeroed
test rax, rax
je 0x140021a90
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rcx
cmp rcx, 1
je 0x140021bd5
mov qword [rsp + 0x60], rax
mov byte [rax + 1], 2
mov rax, rcx
sub rax, r15
lea rdx, [rax - 1]
cmp rdx, 2
jb 0x140021aa4
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x38], rdx
cmp rdx, rcx
ja 0x140021aba
mov qword [rsp + 0x58], rax
lea rbp, [rax - 3]
mov rax, qword [rsp + 0x60]
lea r15, [rax + 2]
mov rcx, r13
mov rdx, r15
mov r8, rbp
call sym.__rand_core::os::OsRng_as_rand_core::RngCore_::fill_bytes::h8bb1a99f42e532de
test rbp, rbp
je 0x14002188f
add rbp, r15
jmp 0x140021881
mov r8d, 1
mov rcx, r13
mov rdx, r15
call sym.__rand_core::os::OsRng_as_rand_core::RngCore_::fill_bytes::h8bb1a99f42e532de
cmp byte [r15], 0
je 0x140021870
inc r15
cmp r15, rbp
jne 0x140021881
mov r15, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
cmp rax, r15
jae 0x140021a2a
mov r13, qword [rsp + 0x60]
mov byte [r13 + rax], 0
mov r8, qword [rsp + 0x158]
cmp r15, r8
jb 0x140021ad5
mov rcx, r13
add rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x150]
call sym.memcpy
cmp rbx, 5
jb 0x1400218ea
mov rbx, qword [r12 + 8]
test rbx, rbx
je 0x140021926
mov rax, qword [r12 + 0x10]
jmp 0x1400218f4
test rbx, rbx
je 0x140021926
lea rax, [r12 + 8]
mov rax, qword [rax + rbx*8 - 8]
test rax, rax
je 0x14002192f
bsr rax, rax
xor rax, 0x3f
jmp 0x140021934
test r15, r15
je 0x14002192a
lea rax, [r12 + 8]
mov rax, qword [rax + r15*8 - 8]
test rax, rax
je 0x140021997
bsr rax, rax
xor rax, 0x3f
jmp 0x14002199c
xor ebx, ebx
jmp 0x140021943
xor r15d, r15d
jmp 0x1400219ab
mov eax, 0x40
shl rbx, 6
or rbx, 7
sub rbx, rax
shr rbx, 3
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x50]
mov rdx, r12
mov r8, r13
mov r9, r15
call sym.__rsa::key::RsaPublicKey_as_rsa::raw::EncryptionPrimitive_::raw_encryption_primitive::h1d6dcff29a132aa2
lea rcx, [rsp + 0xb0]
call sym.__zeroize::Zeroizing_Z__as_core::ops::drop::Drop_::drop::h98443009da327a8c
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
mov rbp, qword [rsp + 0x48]
je 0x14002198d
mov rcx, qword [rsp + 0xb8]
mov r8d, 1
call sym.__rust_dealloc
mov rbx, qword [rsp + 0x50]
jmp 0x140021458
mov eax, 0x40
shl r15, 6
or r15, 7
sub r15, rax
shr r15, 3
mov qword [rsp + 0x20], r15
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0xe0]
mov r9, qword [rsp + 0x70]
call sym.__rsa::key::RsaPublicKey_as_rsa::raw::EncryptionPrimitive_::raw_encryption_primitive::h1d6dcff29a132aa2
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x1400219e5
mov r8d, 1
mov rcx, qword [rsp + 0x80]
call sym.__rust_dealloc
lea rcx, [rsp + 0x88]
mov rdi, qword [rsp + 0x38]
call sym.__zeroize::Zeroizing_Z__as_core::ops::drop::Drop_::drop::h98443009da327a8c
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x140021a17
mov rcx, qword [rsp + 0x90]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x48]
test rdx, rdx
jne 0x1400213e6
jmp 0x1400213f6
lea r8, [0x140444f70]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
call sym.core::panicking::panic_bounds_check::hc59ada7dadd9fb7c
jmp 0x140021bd3
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
mov rcx, rax
call sym.core::panicking::panic_bounds_check::hc59ada7dadd9fb7c
jmp 0x140021bd3
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 1
mov qword [rsp + 0xc0], 0
lea r8, [0x140444f40]
mov eax, 1
mov qword [rsp + 0x38], rax
jmp 0x140021a31
mov ecx, 1
mov rdx, qword [rsp + 0x40]
call sym.alloc::raw_vec::handle_error::hb4a2c97b2f2cc7c5
jmp 0x140021bd3
lea r8, [0x140444f58]
mov ecx, 2
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x140021bd3
lea r8, [0x140444f58]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x140021bd3
lea r8, [0x140444f88]
mov rcx, qword [rsp + 0x58]
mov rdx, r15
call sym.core::slice::index::slice_start_index_len_fail::hc4490513dd7cd116
jmp 0x140021bd3
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], 0
lea rax, str.xMD_
mov qword [rsp + 0xb0], rax
lea rdx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
jmp 0x140021b52
mov ecx, 1
mov rdx, rdi
call sym.alloc::raw_vec::handle_error::hb4a2c97b2f2cc7c5
jmp 0x140021bd3
lea rax, str.xMD_
mov qword [rsp + 0xb0], rax
lea rdx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
lea rcx, [rsp + 0xb0]
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], 8
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
call sym.core::panicking::panic_fmt::hbf31d8edd17cf412
jmp 0x140021bd3
mov rcx, r8
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
mov rdx, rdi
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x140021bd3
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa8], rax
jmp 0x140021bc1
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
mov rdx, qword [rsp + 0x58]
call sym.core::slice::index::slice_start_index_len_fail::hc4490513dd7cd116
jmp 0x140021bd3
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rsa_0.7.2_src_oaep.rs
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xa8]
call sym.core::slice::__impl__T__::copy_from_slice::len_mismatch_fail::h53c967a7d2f23732
ud2
lea r8, [0x140444f40]
jmp 0x140021a31