Function at 0x140006760
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x488
mov r14, r9
mov rsi, r8
mov rdi, rdx
mov r15, rcx
lea rcx, [rsp + 0x88]
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
movzx eax, byte [r15 + 0xa]
lea rcx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_________0123456789_ABCDEFGHIJKLMNPQRSTUVXYZ__abcdehijklmpqr
mov rbp, qword [rcx + rax*8]
mov r12, qword [r15]
movzx eax, byte [r15 + 8]
mov byte [rsp + 0x37], al
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rcx
shr rdx, 1
lea rax, [rdx + rdx*2]
mov rcx, rsi
sub rcx, rax
setne al
xor rcx, 3
mov qword [rsp + 0x38], rcx
setne cl
and cl, al
mov byte [rsp + 0x36], cl
mov rax, qword [r14]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdi
lea rax, [rdi + 2]
mov qword [rsp + 0x40], rax
xor r13d, r13d
nop dword [rax + rax]
mov r14, r13
cmp r13, rsi
jae 0x140006e0c
mov r9, rsi
sub r9, r14
cmp r12, r9
cmovb r9, r12
mov r13, r9
add r13, r14
jb 0x140006ef5
cmp r13, rsi
ja 0x140006f09
mov rax, qword [rsp + 0x50]
lea r10, [rax + r14]
mov rdx, r9
mov r8d, 0
mov ecx, 0
sub rdx, 0x1a
mov eax, 0
cmovb rdx, rax
jbe 0x140006b69
xor r11d, r11d
xor ecx, ecx
nop dword [rax]
lea rax, [rcx + 0x1a]
cmp rax, r9
ja 0x140006e9f
cmp r11, 0x3e1
jae 0x140006eab
lea r8, [r11 + 0x20]
mov rax, qword [r10 + rcx]
bswap rax
mov rdi, rax
shr rdi, 0x3a
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x88], bl
mov rdi, rax
shr rdi, 0x34
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x89], bl
mov rdi, rax
shr rdi, 0x2e
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8a], bl
mov rdi, rax
shr rdi, 0x28
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8b], bl
mov rdi, rax
shr rdi, 0x22
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8c], bl
mov rdi, rax
shr rdi, 0x1c
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8d], bl
mov edi, eax
shr edi, 0x16
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8e], bl
shr eax, 0x10
and eax, 0x3f
movzx ebx, byte [rbp + rax]
mov rax, qword [r10 + rcx + 6]
bswap rax
mov byte [rsp + r11 + 0x8f], bl
mov rdi, rax
shr rdi, 0x3a
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x90], bl
mov rdi, rax
shr rdi, 0x34
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x91], bl
mov rdi, rax
shr rdi, 0x2e
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x92], bl
mov rdi, rax
shr rdi, 0x28
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x93], bl
mov rdi, rax
shr rdi, 0x22
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x94], bl
mov rdi, rax
shr rdi, 0x1c
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x95], bl
mov edi, eax
shr edi, 0x16
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x96], bl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r11 + 0x97], al
mov rax, qword [r10 + rcx + 0xc]
bswap rax
mov rdi, rax
shr rdi, 0x3a
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x98], bl
mov rdi, rax
shr rdi, 0x34
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x99], bl
mov rdi, rax
shr rdi, 0x2e
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x9a], bl
mov rdi, rax
shr rdi, 0x28
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x9b], bl
mov rdi, rax
shr rdi, 0x22
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x9c], bl
mov rdi, rax
shr rdi, 0x1c
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x9d], bl
mov edi, eax
shr edi, 0x16
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x9e], bl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r11 + 0x9f], al
mov rax, qword [r10 + rcx + 0x12]
bswap rax
mov rdi, rax
shr rdi, 0x3a
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa0], bl
mov rdi, rax
shr rdi, 0x34
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa1], bl
mov rdi, rax
shr rdi, 0x2e
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa2], bl
mov rdi, rax
shr rdi, 0x28
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa3], bl
mov rdi, rax
shr rdi, 0x22
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa4], bl
mov rdi, rax
shr rdi, 0x1c
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa5], bl
mov edi, eax
shr edi, 0x16
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0xa6], bl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r11 + 0xa7], al
add rcx, 0x18
mov r11, r8
cmp rcx, rdx
jbe 0x140006860
mov rax, r9
movabs rdx, 0xaaaaaaaaaaaaaaab
mul rdx
shr rdx, 1
lea rax, [rdx + rdx*2]
cmp rcx, rax
jae 0x140006c3f
mov rdx, qword [rsp + 0x40]
add rdx, r14
nop word cs:[rax + rax]
lea r11, [rcx + 3]
cmp r11, r9
ja 0x140006ec3
cmp r8, 0x3fd
jae 0x140006ed8
movzx edi, byte [rdx + rcx - 2]
mov r15, rdi
shr r15, 2
movzx r15d, byte [rbp + r15]
mov byte [rsp + r8 + 0x88], r15b
movzx ebx, byte [rdx + rcx - 1]
shl dil, 4
mov r15d, ebx
shr r15b, 4
or r15b, dil
movzx edi, r15b
and edi, 0x3f
movzx edi, byte [rbp + rdi]
mov byte [rsp + r8 + 0x89], dil
movzx ecx, byte [rdx + rcx]
shl bl, 2
mov edi, ecx
shr dil, 6
or dil, bl
movzx edi, dil
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r8 + 0x8a], bl
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8b], cl
add r8, 4
mov rcx, r11
cmp r11, rax
jb 0x140006ba0
mov rcx, r9
sub rcx, rax
cmp rcx, 1
je 0x140006ce0
cmp rcx, 2
jne 0x140006d33
cmp r8, 0x3ff
ja 0x140006e3f
movzx ecx, byte [r10 + rax]
mov rdx, rcx
shr rdx, 2
movzx edx, byte [rbp + rdx]
mov byte [rsp + r8 + 0x88], dl
inc rax
cmp rax, r9
jae 0x140006e61
cmp r8, 0x3ff
jae 0x140006e7e
movzx eax, byte [r10 + rax]
mov edx, eax
shr dl, 4
shl cl, 4
or cl, dl
movzx ecx, cl
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
lea rdx, [rsp + 0x88]
mov byte [r8 + rdx + 1], cl
lea rcx, [r8 + 2]
cmp r8, 0x3fe
je 0x140006e8c
shl al, 2
and al, 0x3c
mov edx, 3
jmp 0x140006d21
cmp r8, 0x3ff
ja 0x140006e48
movzx eax, byte [r10 + rax]
mov rcx, rax
shr rcx, 2
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x88], cl
cmp r8, 0x3ff
je 0x140006e75
lea rcx, [r8 + 1]
shl al, 4
and al, 0x30
mov edx, 2
movzx eax, al
movzx eax, byte [rbp + rax]
mov byte [rsp + rcx + 0x88], al
add r8, rdx
cmp byte [rsp + 0x37], 0
je 0x140006dc5
cmp r13, rsi
jb 0x140006dc5
cmp r8, 0x401
jae 0x140006f5e
cmp byte [rsp + 0x36], 0
je 0x140006dc0
cmp r8, 0x400
je 0x140006e26
mov byte [rsp + r8 + 0x88], 0x3d
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rcx, 1
je 0x140006dc2
cmp r8, 0x3ff
je 0x140006e26
mov byte [rsp + r8 + 0x89], 0x3d
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rcx, 2
je 0x140006dc2
cmp r8, 0x3fe
je 0x140006e26
mov byte [rsp + r8 + 0x8a], 0x3d
mov rax, qword [rsp + 0x38]
jmp 0x140006dc2
xor eax, eax
add r8, rax
cmp r8, 0x401
jae 0x140006f1d
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x88]
call dbg.from_utf8
cmp qword [rsp + 0x58], 0
jne 0x140006f26
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
call sym.core::fmt::Formatter::write_str::hcebc930bad208245
test al, al
je 0x140006800
cmp r14, rsi
setb al
add rsp, 0x488
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x400
sub rcx, r8
lea r8, str._Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_encode.rs
mov rdx, rcx
call dbg.panic_bounds_check
ud2
lea rax, [0x1400d9580]
jmp 0x140006e4f
lea rax, [0x1400d95e0]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.panic_bounds_check
ud2
lea r8, [0x1400d9598]
mov rcx, rax
mov rdx, r9
call dbg.panic_bounds_check
ud2
lea r8, [0x1400d95f8]
jmp 0x140006e85
lea r8, [0x1400d95b0]
mov ecx, 0x400
jmp 0x140006e93
lea r8, [0x1400d95c8]
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400d9640]
mov rcx, rax
jmp 0x140006ece
lea r8, [0x1400d9658]
mov ecx, 0x420
mov edx, 0x400
call dbg.slice_end_index_len_fail
ud2
add rcx, 3
lea r8, [0x1400d9610]
mov rdx, r9
call dbg.slice_end_index_len_fail
ud2
add r8, 4
lea rax, [0x1400d9628]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, str._Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rsX
mov rcx, r14
mov rdx, r13
call dbg.slice_index_order_fail
ud2
lea r8, str._Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rsX
mov rcx, r13
mov rdx, rsi
call dbg.slice_end_index_len_fail
ud2
lea rax, str._Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rsX
jmp 0x140006ee3
lea rax, [rsp + 0x60]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x1400d88e0]
mov qword [rsp + 0x20], rax
lea rcx, str.base64_data_was_not_utf8_Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_display.rs
lea r9, sym._ZN4core3ptr48drop_in_place_LT_core..str..error..Utf8Error_GT_17h1772db60677734dbE.llvm.7805904411788296827
lea r8, [rsp + 0x70]
mov edx, 0x18
call dbg.unwrap_failed
ud2
lea rax, str._Users_swizzer_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rsX
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.slice_start_index_len_fail
ud2