Function at 0x1400318f7
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rax, rdx
shr rax, 0x3e
je 0x14003191a
xor esi, esi
jmp 0x140031d49
mov r14, rdx
mov r15, rcx
lea rax, [rdx*4]
xor esi, esi
mov ebx, 3
xor edx, edx
div rbx
add rax, 3
movabs rcx, 0x7ffffffffffffffc
and rcx, rax
cmp rcx, r9
ja 0x140031d49
lea rax, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rdx, r8
mov r8, r9
mov r9, rax
call fcn.140037f19
mov rsi, rax
mov rcx, rdx
mov rax, r14
xor edx, edx
div rbx
sub r14, rdx
lea rbx, [rsp + 0x80]
mov qword [rbx], r15
add r15, r14
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], rdx
mov qword [rbx + 0x20], 3
mov eax, ecx
and eax, 3
mov qword [rsp + 0x30], rcx
and rcx, 0xfffffffffffffffc
lea r14, [rsp + 0x58]
mov qword [r14 + 0x10], rsi
mov rdx, rsi
add rdx, rcx
mov qword [r14 + 0x18], rcx
mov qword [r14], rdx
mov qword [r14 + 8], rax
mov qword [r14 + 0x20], 4
lea r15, [rsp + 0x38]
lea r12, [0x1400668ce]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.140031865
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140031b93
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140031d91
cmp rax, 1
je 0x140031da1
cmp rax, 2
jbe 0x140031db7
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
movzx r9d, byte [rdx]
movzx r8d, byte [rdx + 1]
movzx edx, byte [rdx + 2]
movzx r9d, r9w
mov edi, r9d
shr edi, 2
mov r10d, edi
add r10d, 0x41
xor r13d, r13d
cmp r13, 0x10
je 0x140031a71
movzx ebp, byte [r13 + r12 + 1]
test byte [r13 + r12], 1
mov r11d, edi
cmove r11d, r10d
sub ebp, r11d
movsx r11d, bp
shr r11d, 8
and r11w, word [r13 + r12 + 2]
add r13, 4
add r11d, r10d
mov r10d, r11d
jmp 0x140031a3b
test rcx, rcx
je 0x140031d60
mov byte [rax], r10b
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
xor r9d, r9d
cmp r9, 0x10
je 0x140031ad0
movzx edi, byte [r9 + r12 + 1]
test byte [r9 + r12], 1
mov ebp, r11d
cmove ebp, r10d
sub edi, ebp
movsx edi, di
shr edi, 8
and di, word [r9 + r12 + 2]
add r9, 4
add edi, r10d
mov r10d, edi
jmp 0x140031a9e
cmp rcx, 1
je 0x140031d69
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
xor r10d, r10d
cmp r10, 0x10
je 0x140031b30
movzx r11d, byte [r10 + r12 + 1]
test byte [r10 + r12], 1
mov edi, r9d
cmove edi, r8d
sub r11d, edi
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + r12 + 2]
add r10, 4
add r11d, r8d
mov r8d, r11d
jmp 0x140031afb
cmp rcx, 2
jbe 0x140031d72
mov byte [rax + 2], r8b
and edx, 0x3f
mov r8d, edx
add r8d, 0x41
xor r9d, r9d
cmp r9, 0x10
je 0x140031b80
movzx r10d, byte [r9 + r12 + 1]
test byte [r9 + r12], 1
mov r11d, edx
cmove r11d, r8d
sub r10d, r11d
movsx r10d, r10w
shr r10d, 8
and r10w, word [r9 + r12 + 2]
add r9, 4
add r10d, r8d
mov r8d, r10d
jmp 0x140031b4b
cmp rcx, 3
je 0x140031d7b
mov byte [rax + 3], r8b
jmp 0x1400319d2
mov rax, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
sub rax, rbp
jb 0x140031d44
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
mov r13, qword [rsp + 0x68]
mov rcx, r13
add rcx, rbp
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
test r13, r13
je 0x140031d44
lea r15, [rsp + 0x38]
mov byte [r15 + 2], 0
and word [r15], 0
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov rcx, r15
mov rdx, rbx
call fcn.140031dce
lea rcx, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_srcencoding.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r14
mov r9, rbx
call fcn.14001b7c1
movzx edx, byte [r15]
movzx ecx, byte [r15 + 1]
movzx eax, byte [r15 + 2]
mov r9d, edx
shr r9d, 2
mov r8d, r9d
add r8d, 0x41
xor r10d, r10d
cmp r10, 0x10
je 0x140031c63
movzx r11d, byte [r10 + r12 + 1]
test byte [r10 + r12], 1
mov edi, r9d
cmove edi, r8d
sub r11d, edi
movsx r11d, r11w
shr r11d, 8
and r11w, word [r10 + r12 + 2]
add r10, 4
add r11d, r8d
mov r8d, r11d
jmp 0x140031c2e
test rbp, rbp
je 0x140031d60
mov byte [r13], r8b
movzx r8d, dx
shl r8d, 4
movzx ecx, cx
mov r9d, ecx
shr r9d, 4
and r8d, 0x30
lea edx, [r8 + r9]
add r8d, r9d
add r8d, 0x41
xor r9d, r9d
cmp r9, 0x10
je 0x140031cc9
movzx r10d, byte [r9 + r12 + 1]
test byte [r9 + r12], 1
mov r11d, edx
cmove r11d, r8d
sub r10d, r11d
movsx r10d, r10w
shr r10d, 8
and r10w, word [r9 + r12 + 2]
add r9, 4
add r10d, r8d
mov r8d, r10d
jmp 0x140031c94
cmp rbp, 1
je 0x140031d69
mov byte [r13 + 1], r8b
movzx eax, ax
shr eax, 6
and ecx, 0xf
lea edx, [rax + rcx*4]
lea eax, [rax + rcx*4]
add eax, 0x41
xor ecx, ecx
cmp rcx, 0x10
je 0x140031d20
movzx r8d, byte [rcx + r12 + 1]
test byte [rcx + r12], 1
mov r9d, edx
cmove r9d, eax
sub r8d, r9d
movsx r8d, r8w
shr r8d, 8
and r8w, word [rcx + r12 + 2]
add rcx, 4
add r8d, eax
mov eax, r8d
jmp 0x140031ceb
cmp rbp, 2
jbe 0x140031d72
cmp rbp, 3
je 0x140031d7b
cmp rbx, 1
movzx eax, al
mov ecx, 0x3d
cmovne ecx, eax
mov byte [r13 + 2], cl
mov byte [r13 + 3], 0x3d
mov rdx, qword [rsp + 0x30]
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x140031d98
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x140031da8
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
jmp 0x140031dbe
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 3
mov edx, 3
call fcn.140056bf0
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
xor ecx, ecx
xor edx, edx
call fcn.140056bf0
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 1
mov edx, 1
call fcn.140056bf0
lea r8, str.registery_srcindex.crates.io_6f17d22bba15001f_base64ct_1.6.0_src_alphabet.rs
mov ecx, 2
mov edx, 2
call fcn.140056bf0
int3