Function at 0x140007370
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 rax, qword [r15]
mov qword [rsp + 0x50], rax
movzx eax, byte [r15 + 8]
mov byte [rsp + 0x2f], 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 + 0x30], rcx
setne cl
and cl, al
mov byte [rsp + 0x2e], cl
mov rax, qword [r14]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdi
lea rax, [rdi + 2]
mov qword [rsp + 0x38], rax
xor r13d, r13d
mov r14, r13
mov r9, rsi
sub r9, r13
jbe 0x140007a4c
mov rax, qword [rsp + 0x50]
cmp rax, r9
cmovb r9, rax
mov r13, r9
add r13, r14
jb 0x140007b55
cmp r13, rsi
ja 0x140007b69
mov rax, qword [rsp + 0x48]
lea r10, [rax + r14]
mov rdx, r9
mov r11d, 0
mov r15d, 0
sub rdx, 0x1a
mov eax, 0
cmovb rdx, rax
jbe 0x140007789
xor r8d, r8d
xor r15d, r15d
nop word cs:[rax + rax]
lea rax, [r15 + 0x1a]
cmp rax, r9
ja 0x140007af8
cmp r8, 0x3e1
jae 0x140007b0c
lea r11, [r8 + 0x20]
mov rax, qword [r10 + r15]
bswap rax
mov rcx, rax
shr rcx, 0x3a
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x88], cl
mov rcx, rax
shr rcx, 0x34
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x89], cl
mov rcx, rax
shr rcx, 0x2e
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8a], cl
mov rcx, rax
shr rcx, 0x28
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8b], cl
mov rcx, rax
shr rcx, 0x22
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8c], cl
mov rcx, rax
shr rcx, 0x1c
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8d], cl
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x8e], cl
shr eax, 0x10
and eax, 0x3f
movzx ecx, byte [rbp + rax]
mov rax, qword [r10 + r15 + 6]
bswap rax
mov byte [rsp + r8 + 0x8f], cl
mov rcx, rax
shr rcx, 0x3a
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x90], cl
mov rcx, rax
shr rcx, 0x34
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x91], cl
mov rcx, rax
shr rcx, 0x2e
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x92], cl
mov rcx, rax
shr rcx, 0x28
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x93], cl
mov rcx, rax
shr rcx, 0x22
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x94], cl
mov rcx, rax
shr rcx, 0x1c
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x95], cl
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x96], cl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r8 + 0x97], al
mov rax, qword [r10 + r15 + 0xc]
bswap rax
mov rcx, rax
shr rcx, 0x3a
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x98], cl
mov rcx, rax
shr rcx, 0x34
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x99], cl
mov rcx, rax
shr rcx, 0x2e
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x9a], cl
mov rcx, rax
shr rcx, 0x28
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x9b], cl
mov rcx, rax
shr rcx, 0x22
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x9c], cl
mov rcx, rax
shr rcx, 0x1c
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x9d], cl
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x9e], cl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r8 + 0x9f], al
mov rax, qword [r10 + r15 + 0x12]
bswap rax
mov rcx, rax
shr rcx, 0x3a
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa0], cl
mov rcx, rax
shr rcx, 0x34
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa1], cl
mov rcx, rax
shr rcx, 0x2e
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa2], cl
mov rcx, rax
shr rcx, 0x28
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa3], cl
mov rcx, rax
shr rcx, 0x22
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa4], cl
mov rcx, rax
shr rcx, 0x1c
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa5], cl
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0xa6], cl
shr eax, 0x10
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [rsp + r8 + 0xa7], al
add r15, 0x18
mov r8, r11
cmp r15, rdx
jbe 0x140007480
mov rax, r9
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
lea rax, [rdx + rdx*2]
cmp r15, rax
jae 0x140007900
mov rcx, qword [rsp + 0x38]
lea rdx, [rcx + r14]
nop word cs:[rax + rax]
lea rcx, [r15 + 3]
cmp rcx, r9
ja 0x140007b24
lea r8, [r11 + 4]
cmp r11, 0x3fd
jae 0x140007b3c
movzx edi, byte [rdx + r15 - 2]
mov ebx, edi
shr ebx, 2
movzx ebx, byte [rbp + rbx]
mov byte [rsp + r11 + 0x88], bl
movzx r12d, byte [rdx + r15 - 1]
shl dil, 4
mov ebx, r12d
shr bl, 4
or bl, dil
movzx edi, bl
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x89], bl
movzx edi, byte [rdx + r15]
shl r12b, 2
mov ebx, edi
shr bl, 6
or bl, r12b
movzx ebx, bl
and ebx, 0x3f
movzx ebx, byte [rbp + rbx]
mov byte [rsp + r11 + 0x8a], bl
and edi, 0x3f
movzx ebx, byte [rbp + rdi]
mov byte [rsp + r11 + 0x8b], bl
mov r15, rcx
mov r11, r8
cmp rcx, rax
jb 0x1400077c0
mov rcx, r9
sub rcx, rax
cmp rcx, 1
je 0x140007913
cmp rcx, 2
jne 0x140007964
cmp r8, 0x3ff
ja 0x140007a7f
movzx ecx, byte [r10 + rax]
mov edx, ecx
shr edx, 2
movzx edx, byte [rbp + rdx]
mov byte [rsp + r8 + 0x88], dl
inc rax
cmp rax, r9
jae 0x140007aa1
cmp r8, 0x3ff
jae 0x140007acd
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 0x140007ae5
shl al, 2
and al, 0x3c
mov edx, 3
jmp 0x140007952
mov r8, r11
mov rcx, r9
sub rcx, rax
cmp rcx, 1
jne 0x14000786f
cmp r8, 0x3ff
ja 0x140007a88
movzx eax, byte [r10 + rax]
mov ecx, eax
shr ecx, 2
movzx ecx, byte [rbp + rcx]
mov byte [rsp + r8 + 0x88], cl
cmp r8, 0x3ff
je 0x140007ab5
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 + 0x2f], 0
je 0x140007a05
cmp r13, rsi
jb 0x140007a05
cmp r8, 0x401
jae 0x140007bbe
cmp byte [rsp + 0x2e], 0
je 0x140007a00
cmp r8, 0x400
je 0x140007a66
mov byte [rsp + r8 + 0x88], 0x3d
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rcx, 1
je 0x140007a02
cmp r8, 0x3ff
je 0x140007a66
mov byte [rsp + r8 + 0x89], 0x3d
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rcx, 2
je 0x140007a02
cmp r8, 0x3fe
je 0x140007a66
mov byte [rsp + r8 + 0x8a], 0x3d
mov rax, qword [rsp + 0x30]
jmp 0x140007a02
xor eax, eax
add r8, rax
cmp r8, 0x401
jae 0x140007b7d
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x88]
call dbg.from_utf8
cmp qword [rsp + 0x58], 0
jne 0x140007b86
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
call sym.core::fmt::Formatter::write_str::hc1f6254d0dc93f66
test al, al
je 0x140007410
cmp rsi, r14
seta 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._home_zane_.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, [0x1400e5960]
jmp 0x140007a8f
lea rax, [0x1400e59c0]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.panic_bounds_check
ud2
lea r8, [0x1400e5978]
mov rcx, rax
mov rdx, r9
call dbg.panic_bounds_check
ud2
lea r8, [0x1400e59d8]
mov ecx, 0x400
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400e5990]
mov ecx, 0x400
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400e59a8]
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400e5a20]
mov rcx, rax
mov rdx, r9
call dbg.slice_end_index_len_fail
ud2
lea r8, [0x1400e5a38]
mov ecx, 0x420
mov edx, 0x400
call dbg.slice_end_index_len_fail
ud2
add r15, 3
lea r8, [0x1400e59f0]
mov rcx, r15
mov rdx, r9
call dbg.slice_end_index_len_fail
ud2
lea rax, [0x1400e5a08]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, str._home_zane_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rs
mov rcx, r14
mov rdx, r13
call dbg.slice_index_order_fail
ud2
lea r8, str._home_zane_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rs
mov rcx, r13
mov rdx, rsi
call dbg.slice_end_index_len_fail
ud2
lea rax, str._home_zane_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rs
jmp 0x140007b43
lea rax, [rsp + 0x60]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x1400e4cc0]
mov qword [rsp + 0x20], rax
lea rcx, str.base64_data_was_not_utf8_home_zane_.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_17ha7dd627fa17eaf68E.llvm.8360847326485180999
lea r8, [rsp + 0x70]
mov edx, 0x18
call dbg.unwrap_failed
ud2
lea rax, str._home_zane_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rs
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.slice_start_index_len_fail
ud2