Function at 0x140010bf0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r15, rdx
mov rbx, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul rcx
mov rax, r8
shr rax, 0x3e
cmp eax, 2
ja 0x14001127a
mov r14, r8
mov rdi, rdx
shr rdi, 1
lea rax, [rdi + rdi*2]
mov r12, r8
sub r12, rax
shl rdi, 2
test r12, r12
je 0x140010c4c
add rdi, 4
jb 0x14001127a
test rdi, rdi
je 0x140010c72
js 0x1400112ee
mov ecx, 8
mov rdx, rdi
call fcn.1401860d0
test rax, rax
je 0x1400112f3
mov rsi, rax
jmp 0x140010c77
mov esi, 1
xor ecx, ecx
mov r9, r14
mov r13d, 0
sub r9, 0x1a
cmovb r9, rcx
jbe 0x140010f5e
xor r10d, r10d
lea rbp, [0x140201128]
lea r8, [0x140201140]
lea r11, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.13.1_srcencode.rs
xor r13d, r13d
nop dword [rax + rax]
lea rcx, [r13 + 0x1a]
cmp rcx, r14
ja 0x140011241
mov rcx, r10
add rcx, 0x20
jb 0x1400111c6
cmp rcx, rdi
ja 0x14001124a
mov rdx, qword [r15 + r13]
bswap rdx
mov rax, rdx
shr rax, 0x3a
movzx eax, byte [rax + r11]
mov byte [rsi + r10], al
mov rax, rdx
shr rax, 0x34
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 1], al
mov rax, rdx
shr rax, 0x2e
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 2], al
mov rax, rdx
shr rax, 0x28
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 3], al
mov rax, rdx
shr rax, 0x22
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 4], al
mov rax, rdx
shr rax, 0x1c
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 5], al
mov eax, edx
shr eax, 0x16
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 6], al
shr edx, 0x10
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rsi + r10 + 7], al
mov rdx, qword [r15 + r13 + 6]
bswap rdx
mov rax, rdx
shr rax, 0x3a
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 8], al
mov rax, rdx
shr rax, 0x34
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 9], al
mov rax, rdx
shr rax, 0x2e
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0xa], al
mov rax, rdx
shr rax, 0x28
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0xb], al
mov rax, rdx
shr rax, 0x22
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0xc], al
mov rax, rdx
shr rax, 0x1c
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0xd], al
mov eax, edx
shr eax, 0x16
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0xe], al
shr edx, 0x10
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rsi + r10 + 0xf], al
mov rdx, qword [r15 + r13 + 0xc]
bswap rdx
mov rax, rdx
shr rax, 0x3a
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x10], al
mov rax, rdx
shr rax, 0x34
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x11], al
mov rax, rdx
shr rax, 0x2e
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x12], al
mov rax, rdx
shr rax, 0x28
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x13], al
mov rax, rdx
shr rax, 0x22
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x14], al
mov rax, rdx
shr rax, 0x1c
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x15], al
mov eax, edx
shr eax, 0x16
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x16], al
shr edx, 0x10
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rsi + r10 + 0x17], al
mov rdx, qword [r15 + r13 + 0x12]
bswap rdx
mov rax, rdx
shr rax, 0x3a
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x18], al
mov rax, rdx
shr rax, 0x34
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x19], al
mov rax, rdx
shr rax, 0x2e
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x1a], al
mov rax, rdx
shr rax, 0x28
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x1b], al
mov rax, rdx
shr rax, 0x22
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x1c], al
mov rax, rdx
shr rax, 0x1c
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x1d], al
mov eax, edx
shr eax, 0x16
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rsi + r10 + 0x1e], al
shr edx, 0x10
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rsi + r10 + 0x1f], al
add r13, 0x18
add r10, 0x20
cmp r13, r9
jbe 0x140010cb0
mov r9, r14
sub r9, r12
cmp r13, r9
jae 0x1400110ce
lea rax, [0x1402010c8]
mov qword [rsp + 0x28], rax
lea rbp, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.13.1_srcencode.rs
mov rdx, r13
nop word cs:[rax + rax]
add rdx, 3
jb 0x1400111b6
cmp rdx, r14
ja 0x140011254
mov r10, rcx
add r10, 4
jb 0x1400111bf
cmp r10, rdi
ja 0x140011259
movzx r11d, byte [r15 + r13]
mov eax, r11d
shr eax, 2
movzx eax, byte [rax + rbp]
mov byte [rsi + rcx], al
movzx r8d, byte [r15 + r13 + 1]
shl r11b, 4
mov eax, r8d
shr al, 4
or al, r11b
movzx eax, al
and eax, 0x3f
movzx eax, byte [rax + rbp]
mov byte [rsi + rcx + 1], al
movzx eax, byte [r15 + r13 + 2]
shl r8b, 2
mov r11d, eax
shr r11b, 6
or r11b, r8b
movzx r8d, r11b
and r8d, 0x3f
movzx r8d, byte [r8 + rbp]
mov byte [rsi + rcx + 2], r8b
and eax, 0x3f
movzx eax, byte [rax + rbp]
mov byte [rsi + rcx + 3], al
add rcx, 4
mov r13, rdx
cmp rdx, r9
jb 0x140010f90
cmp r12, 1
je 0x1400110db
cmp r12, 2
jne 0x14001111d
cmp r10, rdi
jae 0x1400111d8
movzx ecx, byte [r15 + r9]
mov edx, ecx
shr edx, 2
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.13.1_srcencode.rs
movzx edx, byte [rdx + rax]
mov byte [rsi + r10], dl
inc r9
je 0x1400111f8
cmp r9, r14
jae 0x140011212
lea rdx, [r10 + 1]
cmp rdx, rdi
jae 0x14001121b
movzx edx, byte [r15 + r9]
mov r8d, edx
shr r8b, 4
shl cl, 4
or cl, r8b
movzx ecx, cl
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [rsi + r10 + 1], cl
lea r9, [r10 + 2]
cmp r9, rdi
jae 0x140011227
and edx, 0xf
movzx eax, byte [rax + rdx*4]
mov byte [rsi + r10 + 2], al
add r10, 3
jae 0x14001111d
lea rcx, [0x140201068]
jmp 0x1400111ff
mov r10, rcx
cmp r12, 1
jne 0x140011037
cmp r10, rdi
jae 0x1400111e1
movzx eax, byte [r15 + r9]
mov edx, eax
shr edx, 2
lea rcx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.13.1_srcencode.rs
movzx edx, byte [rdx + rcx]
mov byte [rsi + r10], dl
lea r9, [r10 + 1]
cmp r9, rdi
jae 0x140011209
shl eax, 4
and eax, 0x30
movzx eax, byte [rax + rcx]
mov byte [rsi + r10 + 1], al
add r10, 2
mov rcx, r10
mov r10, rdi
sub r10, rcx
jb 0x14001127f
xor eax, eax
test r12, r12
je 0x140011175
xor r12, 3
je 0x140011175
lea r8, [0x140201158]
cmp rdi, rcx
je 0x1400111d3
mov byte [rsi + rcx], 0x3d
cmp r12, 1
je 0x140011172
cmp r10, 1
je 0x1400111d3
mov byte [rsi + rcx + 1], 0x3d
cmp r12, 2
je 0x140011172
mov rdx, r10
cmp r10, 2
je 0x1400111eb
mov byte [rsi + rcx + 2], 0x3d
mov rax, r12
add rcx, rax
jb 0x140011290
lea rcx, [rsp + 0x30]
mov rdx, rsi
mov r8, rdi
call fcn.14002a090
cmp qword [rsp + 0x30], 0
jne 0x1400112aa
mov qword [rbx], rdi
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], rdi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rbp, [0x1402010b0]
jmp 0x1400111c6
lea rbp, [0x1402010e0]
mov rcx, rbp
call fcn.14002f520
jmp 0x1400112ec
mov rdx, r10
jmp 0x1400111eb
lea r8, [0x140200ff0]
jmp 0x1400111e8
lea r8, [0x140201080]
mov rdx, rdi
mov rcx, r10
call fcn.140028700
jmp 0x1400112ec
lea rcx, [0x140201008]
call fcn.14002f520
jmp 0x1400112ec
lea r8, [0x140201098]
jmp 0x14001122e
lea r8, [0x140201020]
jmp 0x140011231
lea r8, [0x140201038]
mov r9, rdx
jmp 0x14001122e
lea r8, [0x140201050]
mov r14, rdi
mov rcx, r9
mov rdx, r14
call fcn.140028700
jmp 0x1400112ec
lea rax, [0x140201110]
jmp 0x140011266
mov qword [rsp + 0x28], r8
mov r14, rdi
jmp 0x14001126b
mov rcx, rdx
jmp 0x14001126b
mov rcx, r10
mov r14, rdi
lea rax, [0x1402010f8]
mov qword [rsp + 0x28], rax
mov rdx, r14
mov r8, qword [rsp + 0x28]
call fcn.140029060
jmp 0x1400112ec
call fcn.140001b60
lea r8, [0x140200fc0]
mov rdx, rdi
call fcn.1400286f0
jmp 0x1400112ec
lea rcx, str.usize_overflow_when_calculating_b64_length
lea r8, [0x140200fd8]
mov edx, 0x2a
call fcn.14002c4c0
jmp 0x1400112ec
movups xmm0, xmmword [rsp + 0x38]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rdi
movups xmmword [rsp + 0x48], xmm0
lea rax, [0x1401ff5b8]
mov qword [rsp + 0x20], rax
lea rcx, str.Invalid_UTF8
lea r9, [0x1401fefa8]
lea r8, [rsp + 0x30]
mov edx, 0xc
call fcn.14002b190
ud2
call fcn.1400257e0
mov ecx, 1
mov rdx, rdi
call fcn.1400257c0
mov rbx, rax
cmp qword [rsp + 0x30], 0
je 0x140011339
mov r8, qword [rsp + 0x38]
mov rcx, qword [0x1402f90f8]
xor edx, edx
jmp 0x140011334
call fcn.1401d02bc
mov rcx, rbx
call fcn.1401d0750
int3