Function at 0x1a7f1b8294d
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov r10, rcx
test r8b, 3
je 0x1a7f1b82977
mov byte [r10 + 8], 0
and qword [r10], 0
jmp 0x1a7f1b832de
mov r14, r9
mov r13, rdx
cmp r8, 2
jb 0x1a7f1b829ff
movzx edx, byte [r8 + r13 - 1]
movzx eax, byte [r8 + r13 - 2]
mov ecx, 0x3c
mov r11d, 0x3c
sub r11d, eax
mov r9d, 0x1c2
add eax, r9d
and eax, r11d
sub ecx, edx
add edx, r9d
and edx, ecx
mov r11d, edx
shr r11d, 8
and r11d, 1
bt eax, 8
mov ecx, r11d
adc cx, 0
movzx r9d, cx
mov rcx, r8
sub rcx, r9
test r9w, r9w
je 0x1a7f1b82a0e
cmp r9d, 1
je 0x1a7f1b83032
cmp r9d, 2
jne 0x1a7f1b82969
mov qword [rsp + 0x30], r10
movzx edx, dx
movzx eax, ax
and eax, edx
xor esi, esi
bt eax, 8
setae sil
jmp 0x1a7f1b82a15
mov qword [rsp + 0x30], r10
xor ecx, ecx
test r8, r8
setne cl
jmp 0x1a7f1b82a13
mov qword [rsp + 0x30], r10
xor esi, esi
mov r15, qword [rsp + 0x1b0]
lea r9, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rdx, r13
mov qword [rsp + 0x40], r8
call fcn.1a7f1b8bdbe
mov rdi, rax
mov r12, rdx
mov rax, rdx
shr rax, 2
mov ebx, r12d
and ebx, 3
lea rax, [rax + rax*2]
lea r8d, [rbx + rbx*2]
shr r8d, 2
add r8, rax
cmp r8, r15
jbe 0x1a7f1b82a66
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 1
jmp 0x1a7f1b832da
mov qword [rsp + 0x70], r13
lea r9, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rcx, r14
mov rdx, r15
call fcn.1a7f1b66f5c
mov r8, rax
mov r9, rdx
mov qword [rsp + 0xa0], rdx
and r12, 0xfffffffffffffffc
mov rax, rdi
add rax, r12
lea rcx, [rsp + 0xd0]
mov qword [rcx], rdi
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rbx
mov qword [rcx + 0x20], 4
mov ecx, 3
mov rax, rdx
xor edx, edx
div rcx
mov qword [rsp + 0x48], r9
mov rax, r9
sub rax, rdx
lea rcx, [r8 + rax]
lea r9, [rsp + 0xf8]
mov qword [rsp + 0x68], r8
mov qword [r9 + 0x10], r8
mov qword [r9 + 0x18], rax
mov qword [r9], rcx
mov qword [r9 + 8], rdx
mov qword [r9 + 0x20], 3
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0xf8]
call fcn.1a7f1b8336a
mov r15, qword [rsp + 0x78]
test r15, r15
je 0x1a7f1b82bea
mov r12, qword [rsp + 0x80]
test r12, r12
je 0x1a7f1b83043
mov rbx, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov cl, byte [r15]
call fcn.1a7f1b833cf
cmp r12, 1
je 0x1a7f1b8304c
mov r14d, eax
mov cl, byte [r15 + 1]
call fcn.1a7f1b833cf
cmp r12, 2
jbe 0x1a7f1b83055
mov edi, eax
mov cl, byte [r15 + 2]
call fcn.1a7f1b833cf
cmp r12, 3
je 0x1a7f1b8305e
mov r13d, eax
mov cl, byte [r15 + 3]
call fcn.1a7f1b833cf
test rbp, rbp
je 0x1a7f1b83071
lea ecx, [r14*4]
movzx edx, di
shr edx, 4
or edx, ecx
mov byte [rbx], dl
cmp rbp, 1
je 0x1a7f1b8307e
mov ecx, edi
shl ecx, 4
movzx edx, r13w
shr edx, 2
or edx, ecx
mov byte [rbx + 1], dl
cmp rbp, 2
jbe 0x1a7f1b83091
mov ecx, r13d
shl ecx, 6
or ecx, eax
mov byte [rbx + 2], cl
or edi, r14d
or r13d, eax
or r13d, edi
shr r13d, 8
and r13d, 1
or esi, r13d
jmp 0x1a7f1b82af4
mov r14, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x58], rax
xor ebx, ebx
cmp r15, 1
sete bl
lea rax, [rsp + 0x3c]
and word [rax], 0
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x50], rcx
mov byte [rax + 2], 0
lea rdi, [rsp + 0xac]
mov dword [rdi], 0x41414141
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rcx, rdi
mov rdx, r15
call fcn.1a7f1b833bf
lea rcx, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r14
mov r9, r15
call fcn.1a7f1b66f2f
mov cl, byte [rdi]
call fcn.1a7f1b833cf
mov r14d, eax
mov cl, byte [rdi + 1]
call fcn.1a7f1b833cf
mov r13d, eax
movzx r12d, ax
mov cl, byte [rdi + 2]
call fcn.1a7f1b833cf
mov r15d, eax
movzx ebp, ax
mov cl, byte [rdi + 3]
call fcn.1a7f1b833cf
mov edi, eax
lea eax, [r14*4]
shr r12d, 4
or r12d, eax
lea rcx, [rsp + 0x3c]
mov byte [rcx], r12b
mov eax, r13d
shl eax, 4
shr ebp, 2
or ebp, eax
mov byte [rcx + 1], bpl
mov eax, r15d
shl eax, 6
or eax, edi
mov byte [rcx + 2], al
or r14d, r13d
or edi, r15d
or edi, r14d
shr edi, 8
and edi, 1
or edi, ebx
mov rbx, qword [rsp + 0x50]
mov rdx, rbx
call fcn.1a7f1b83458
mov r9, rdx
lea rcx, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
mov r8, rax
call fcn.1a7f1b66f2f
or di, si
je 0x1a7f1b82d16
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 0
jmp 0x1a7f1b832da
mov r14, qword [rsp + 0x48]
mov rax, r14
mov rdx, qword [rsp + 0x40]
or rax, rdx
je 0x1a7f1b832fb
xor r8d, r8d
mov rax, rdx
sub rax, 1
cmovb rax, r8
and rax, 0xfffffffffffffffc
mov rcx, qword [rsp + 0x70]
lea r10, [rcx + rax]
mov rdi, r10
cmp rax, rdx
cmova rdi, r8
ja 0x1a7f1b832d1
xor r8d, r8d
mov rcx, r14
sub rcx, 1
cmovb rcx, r8
mov r9d, 3
mov rax, rcx
xor edx, edx
div r9
sub rcx, rdx
sub r14, rcx
jb 0x1a7f1b832d1
and dword [rsp + 0x64], 0
mov rax, r14
shr rax, 0x3e
jne 0x1a7f1b832ce
lea rax, [r14*4]
mov esi, 3
xor edx, edx
div rsi
add rax, 3
movabs r8, 0x7ffffffffffffffc
and r8, rax
cmp r8, 4
ja 0x1a7f1b832ce
mov qword [rsp + 0x58], r10
mov rbx, qword [rsp + 0x68]
add rbx, rcx
lea r9, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
lea rcx, [rsp + 0x64]
mov edx, 4
call fcn.1a7f1b66f5c
mov r8, rax
mov rcx, rdx
mov rax, r14
xor edx, edx
div rsi
sub r14, rdx
lea rbp, [rsp + 0x120]
mov qword [rbp], rbx
add rbx, r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], 3
mov eax, ecx
and eax, 3
mov qword [rsp + 0x48], rcx
and rcx, 0xfffffffffffffffc
lea rdx, [r8 + rcx]
lea r13, [rsp + 0x78]
mov qword [rsp + 0x50], r8
mov qword [r13 + 0x10], r8
mov qword [r13 + 0x18], rcx
mov qword [r13], rdx
mov qword [r13 + 8], rax
mov qword [r13 + 0x20], 4
lea r15, [0x1a7f1c54efe]
lea rcx, [rsp + 0xb0]
mov rdx, rbp
mov r8, r13
call fcn.1a7f1b8336a
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x1a7f1b830a9
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x1a7f1b83316
cmp rax, 1
je 0x1a7f1b83322
cmp rax, 2
jbe 0x1a7f1b8332e
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
movzx r9d, byte [rdx]
movzx r8d, byte [rdx + 1]
movzx edx, byte [rdx + 2]
movzx r9d, r9w
mov r12d, r9d
shr r12d, 2
mov r11d, r12d
add r11d, 0x41
mov ebx, 0x10
mov rsi, r15
test rbx, rbx
je 0x1a7f1b82f04
movzx r14d, byte [rsi + 1]
test byte [rsi], 1
mov r10d, r12d
cmove r10d, r11d
sub r14d, r10d
movsx r10d, r14w
shr r10d, 8
and r10w, word [rsi + 2]
add rsi, 4
add r10d, r11d
add rbx, 0xfffffffffffffffc
mov r11d, r10d
jmp 0x1a7f1b82ed0
test rcx, rcx
je 0x1a7f1b8333a
mov byte [rax], r11b
shl r9d, 4
movzx r8d, r8w
mov r11d, r8d
shr r11d, 4
and r9d, 0x30
lea r10d, [r11 + r9]
add r10d, 0x41
or r11d, r9d
mov r9d, 0x10
mov rsi, r15
test r9, r9
je 0x1a7f1b82f67
movzx ebx, byte [rsi + 1]
test byte [rsi], 1
mov r14d, r11d
cmove r14d, r10d
sub ebx, r14d
movsx ebx, bx
shr ebx, 8
and bx, word [rsi + 2]
add rsi, 4
add ebx, r10d
add r9, 0xfffffffffffffffc
mov r10d, ebx
jmp 0x1a7f1b82f37
cmp rcx, 1
je 0x1a7f1b83346
mov byte [rax + 1], r10b
movzx edx, dx
mov r10d, edx
shr r10d, 6
and r8d, 0xf
lea r9d, [r10 + r8*4]
lea r8d, [r10 + r8*4]
add r8d, 0x41
mov r10d, 0x10
mov r11, r15
test r10, r10
je 0x1a7f1b82fca
movzx esi, byte [r11 + 1]
test byte [r11], 1
mov ebx, r9d
cmove ebx, r8d
sub esi, ebx
movsx esi, si
shr esi, 8
and si, word [r11 + 2]
add r11, 4
add esi, r8d
add r10, 0xfffffffffffffffc
mov r8d, esi
jmp 0x1a7f1b82f98
cmp rcx, 2
jbe 0x1a7f1b83352
mov byte [rax + 2], r8b
and edx, 0x3f
mov r8d, edx
add r8d, 0x41
mov r9d, 0x10
mov r10, r15
test r9, r9
je 0x1a7f1b8301f
movzx r11d, byte [r10 + 1]
test byte [r10], 1
mov esi, edx
cmove esi, r8d
sub r11d, esi
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + 2]
add r10, 4
add r11d, r8d
add r9, 0xfffffffffffffffc
mov r8d, r11d
jmp 0x1a7f1b82feb
cmp rcx, 3
je 0x1a7f1b8335e
mov byte [rax + 3], r8b
jmp 0x1a7f1b82e50
mov qword [rsp + 0x30], r10
movzx esi, r11w
xor esi, 1
jmp 0x1a7f1b82a15
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83078
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83085
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83098
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 3
mov edx, 3
jmp 0x1a7f1b830a2
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
xor ecx, ecx
xor edx, edx
jmp 0x1a7f1b830a2
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 1
mov edx, 1
jmp 0x1a7f1b830a2
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 2
mov edx, 2
call fcn.1a7f1c2fb60
ud2
mov rax, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
sub rax, r12
mov r11, qword [rsp + 0x40]
jb 0x1a7f1b83291
mov r13, qword [rsp + 0x130]
mov r14, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x88]
lea rcx, [rsi + r12]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
test rsi, rsi
je 0x1a7f1b83291
lea rbp, [rsp + 0xb0]
mov byte [rbp + 2], 0
and word [rbp], 0
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rcx, rbp
mov rdx, r14
call fcn.1a7f1b83473
lea rcx, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r13
mov r9, r14
call fcn.1a7f1b66f2f
movzx edx, byte [rbp]
movzx ecx, byte [rbp + 1]
movzx eax, byte [rbp + 2]
mov r8d, edx
shr r8d, 2
mov r9d, r8d
add r9d, 0x41
lea r11, [0x1a7f1c54efe]
mov r10d, 0x10
test r10, r10
je 0x1a7f1b83192
movzx ebx, byte [r11 + 1]
test byte [r11], 1
mov ebp, r8d
cmove ebp, r9d
sub ebx, ebp
movsx ebx, bx
shr ebx, 8
and bx, word [r11 + 2]
add r11, 4
add ebx, r9d
add r10, 0xfffffffffffffffc
mov r9d, ebx
jmp 0x1a7f1b83160
test r12, r12
je 0x1a7f1b8333a
mov byte [rsi], r9b
movzx r9d, dx
shl r9d, 4
movzx ecx, cx
mov r8d, ecx
shr r8d, 4
and r9d, 0x30
lea edx, [r8 + r9]
add edx, 0x41
or r8d, r9d
lea r10, [0x1a7f1c54efe]
mov r9d, 0x10
mov r11, qword [rsp + 0x40]
test r9, r9
je 0x1a7f1b83204
movzx r11d, byte [r10 + 1]
test byte [r10], 1
mov ebx, r8d
cmove ebx, edx
sub r11d, ebx
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + 2]
add r10, 4
add r11d, edx
add r9, 0xfffffffffffffffc
mov edx, r11d
jmp 0x1a7f1b831cb
cmp r12, 1
je 0x1a7f1b83346
mov byte [rsi + 1], dl
movzx eax, ax
shr eax, 6
and ecx, 0xf
lea edx, [rax + rcx*4]
lea eax, [rax + rcx*4]
add eax, 0x41
lea r8, [0x1a7f1c54efe]
mov ecx, 0x10
test rcx, rcx
je 0x1a7f1b83264
movzx r9d, byte [r8 + 1]
test byte [r8], 1
mov r10d, edx
cmove r10d, eax
sub r9d, r10d
movsx r9d, r9w
shr r9d, 8
and r9w, word [r8 + 2]
add r8, 4
add r9d, eax
add rcx, 0xfffffffffffffffc
mov eax, r9d
jmp 0x1a7f1b8322f
cmp r12, 2
jbe 0x1a7f1b83352
mov byte [rsi + 2], al
cmp r12, 3
je 0x1a7f1b8335e
cmp r14, 1
movzx eax, al
mov ecx, 0x3d
cmovne ecx, eax
mov byte [rsi + 2], cl
mov byte [rsi + 3], 0x3d
mov r9, qword [rsp + 0x50]
test r9, r9
mov r8, qword [rsp + 0x70]
mov rax, qword [rsp + 0x58]
je 0x1a7f1b832ce
add r8, r11
sub r8, rax
mov rax, qword [rsp + 0x48]
cmp rax, r8
cmovb r8, rax
xor eax, eax
xor ecx, ecx
cmp r8, rax
je 0x1a7f1b832f2
mov dl, byte [rdi + rax]
xor dl, byte [r9 + rax]
inc rax
or cl, dl
jmp 0x1a7f1b832bb
mov r8b, 1
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], r8b
and qword [rax], 0
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test cl, cl
je 0x1a7f1b832fb
xor r8d, r8d
jmp 0x1a7f1b832d1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xa0]
mov qword [rax + 8], rcx
jmp 0x1a7f1b832de
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83078
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83085
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83098
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83078
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83085
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83098
lea r8, str.E:.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x1a7f1b83065