Function at 0x1400044b0
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 0x140004b8c
mov rax, qword [rsp + 0x50]
cmp rax, r9
cmovb r9, rax
mov r13, r9
add r13, r14
jb 0x140004c95
cmp r13, rsi
ja 0x140004ca9
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 0x1400048c9
xor r8d, r8d
xor r15d, r15d
nop word cs:[rax + rax]
lea rax, [r15 + 0x1a]
cmp rax, r9
ja 0x140004c38
cmp r8, 0x3e1
jae 0x140004c4c
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 0x1400045c0
mov rax, r9
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
lea rax, [rdx + rdx*2]
cmp r15, rax
jae 0x140004a40
mov rcx, qword [rsp + 0x38]
lea rdx, [rcx + r14]
nop word cs:[rax + rax]
lea rcx, [r15 + 3]
cmp rcx, r9
ja 0x140004c64
lea r8, [r11 + 4]
cmp r11, 0x3fd
jae 0x140004c7c
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 0x140004900
mov rcx, r9
sub rcx, rax
cmp rcx, 1
je 0x140004a53
cmp rcx, 2
jne 0x140004aa4
cmp r8, 0x3ff
ja 0x140004bbf
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 0x140004be1
cmp r8, 0x3ff
jae 0x140004c0d
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 0x140004c25
shl al, 2
and al, 0x3c
mov edx, 3
jmp 0x140004a92
mov r8, r11
mov rcx, r9
sub rcx, rax
cmp rcx, 1
jne 0x1400049af
cmp r8, 0x3ff
ja 0x140004bc8
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 0x140004bf5
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 0x140004b45
cmp r13, rsi
jb 0x140004b45
cmp r8, 0x401
jae 0x140004cfe
cmp byte [rsp + 0x2e], 0
je 0x140004b40
cmp r8, 0x400
je 0x140004ba6
mov byte [rsp + r8 + 0x88], 0x3d
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rcx, 1
je 0x140004b42
cmp r8, 0x3ff
je 0x140004ba6
mov byte [rsp + r8 + 0x89], 0x3d
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rcx, 2
je 0x140004b42
cmp r8, 0x3fe
je 0x140004ba6
mov byte [rsp + r8 + 0x8a], 0x3d
mov rax, qword [rsp + 0x30]
jmp 0x140004b42
xor eax, eax
add r8, rax
cmp r8, 0x401
jae 0x140004cbd
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x88]
call dbg.from_utf8
cmp qword [rsp + 0x58], 0
jne 0x140004cc6
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
call sym.core::fmt::Formatter::write_str::h8580674b97d7c9aa
test al, al
je 0x140004550
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_kali_.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, [0x1400fee58]
jmp 0x140004bcf
lea rax, [0x1400feeb8]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.panic_bounds_check
ud2
lea r8, [0x1400fee70]
mov rcx, rax
mov rdx, r9
call dbg.panic_bounds_check
ud2
lea r8, [0x1400feed0]
mov ecx, 0x400
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400fee88]
mov ecx, 0x400
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400feea0]
mov edx, 0x400
call dbg.panic_bounds_check
ud2
lea r8, [0x1400fef18]
mov rcx, rax
mov rdx, r9
call dbg.slice_end_index_len_fail
ud2
lea r8, [0x1400fef30]
mov ecx, 0x420
mov edx, 0x400
call dbg.slice_end_index_len_fail
ud2
add r15, 3
lea r8, [0x1400feee8]
mov rcx, r15
mov rdx, r9
call dbg.slice_end_index_len_fail
ud2
lea rax, [0x1400fef00]
mov edx, 0x400
mov rcx, r8
mov r8, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, str._home_kali_.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_kali_.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_kali_.cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.13.1_src_chunked_encoder.rs
jmp 0x140004c83
lea rax, [rsp + 0x60]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x1400fe1b8]
mov qword [rsp + 0x20], rax
lea rcx, str.base64_data_was_not_utf8_home_kali_.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_17hc68e48754119115eE.llvm.14742244632343642739
lea r8, [rsp + 0x70]
mov edx, 0x18
call dbg.unwrap_failed
ud2
lea rax, str._home_kali_.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