Function at 0x1400b7f20
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x558
call sym.__main
lea rcx, [0x1400be090]
lea rdi, [rsp + 0x60]
call sym.printf_char_const__::_
lea rcx, [0x1400be0f0]
call sym.printf_char_const__::_
lea rcx, [0x1400be150]
call sym.printf_char_const__::_
lea rcx, [0x1400be1b0]
call sym.printf_char_const__::_
lea rcx, str._______________________________________________________________________________________________n
call sym.printf_char_const__::_
lea rax, [rsp + 0x70]
mov rcx, rdi
mov dword [rsp + 0x70], 0x6e702e6a
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x74], 0x67
mov qword [rsp + 0x68], 5
mov byte [rsp + 0x75], 0
call sym.readAndOutputAfterPattern_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
cmp eax, 1
je 0x1400b81bd
mov rdx, qword [0x1400ec038]
lea rcx, [0x1400be270]
sub edx, dword [0x1400ec030]
call sym.printf_char_const__::_
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
lea rdx, str.VirtualAlloc
mov rcx, rax
call rsi
mov rbp, rax
lea rdx, str.VirtualProtect
mov rcx, rbx
call rsi
mov r12, rax
lea rdx, str.GetThreadContext
mov rcx, rbx
call rsi
mov r14, rax
lea rdx, str.SetThreadContext
mov rcx, rbx
call rsi
mov qword [rsp + 0x38], rax
lea rdx, str.pVirtualFree
mov rcx, rbx
call rsi
mov qword [rsp + 0x40], rax
lea rdx, str.CreateThread
mov rcx, rbx
call rsi
mov r13, rax
lea rdx, str.CloseHandle
mov rcx, rbx
call rsi
mov r15, rax
lea rdx, str.ResumeThread
mov rcx, rbx
call rsi
mov qword [rsp + 0x48], rax
lea rdx, str.WaitForSingleObject
mov rcx, rbx
call rsi
mov rdx, qword [0x1400ec038]
mov rsi, rax
mov r9d, 4
xor ecx, ecx
sub rdx, qword [0x1400ec030]
mov r8d, 0x3000
call rbp
mov rbx, rax
test rax, rax
je 0x1400b8228
mov rdx, qword [0x1400ec030]
mov r8, qword [0x1400ec038]
mov rcx, rax
sub r8, rdx
call sym.memcpy
mov rdx, qword [0x1400ec038]
lea r9, [rsp + 0x5c]
mov rcx, rbx
sub rdx, qword [0x1400ec030]
mov r8d, 0x20
call r12
test eax, eax
je 0x1400b8199
mov rax, qword [0x1400ec030]
cmp rax, qword [0x1400ec038]
je 0x1400b81e0
cmp rax, qword [0x1400ec040]
mov qword [0x1400ec038], rax
jne 0x1400b81ed
xor edx, edx
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x28], rdx
lea r8, [sym.ThreadProc_void_]
xor edx, edx
call r13
mov rbp, rax
test rax, rax
je 0x1400b82d0
lea r12, [rsp + 0x80]
mov rcx, rax
mov dword [rsp + 0xb0], 0x10000b
mov rdx, r12
call r14
test eax, eax
je 0x1400b8249
mov qword [rsp + 0x178], rbx
mov rax, qword [rsp + 0x38]
mov rdx, r12
mov rcx, rbp
call rax
test eax, eax
je 0x1400b8288
mov rax, qword [rsp + 0x48]
mov rcx, rbp
call rax
or edx, 0xffffffff
mov rcx, rbp
call rsi
mov rax, qword [rsp + 0x40]
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbp
call r15
xor ebx, ebx
jmp 0x1400b81c2
mov rsi, qword [0x1400c40e0]
mov r8d, 0x23
lea rdx, str.Failed_to_change_memory_protection_
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov ebx, 1
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, ebx
add rsp, 0x558
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [0x1400ec040], rax
je 0x1400b80fe
mov rcx, qword [0x1400ec030]
xor eax, eax
mov rdx, qword [0x1400ec040]
mov qword [0x1400ec030], rax
mov qword [0x1400ec038], rax
mov qword [0x1400ec040], rax
test rcx, rcx
je 0x1400b80fe
sub rdx, rcx
call sym.operator_delete_void__unsigned_long_long_
jmp 0x1400b80fe
mov rsi, qword [0x1400c40e0]
mov r8d, 0x19
lea rdx, str.Memory_allocation_failed_
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
jmp 0x1400b81b5
mov rsi, qword [0x1400c40e0]
mov r8d, 0x19
lea rdx, str.GetThreadContext_failed:
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rsi
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov rcx, rbp
call r15
jmp 0x1400b81bd
mov rsi, qword [0x1400c40e0]
mov r8d, 0x19
lea rdx, str.SetThreadContext_failed:
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rsi
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov rax, qword [rsp + 0x40]
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call rax
jmp 0x1400b827d
mov rsi, qword [0x1400c40e0]
mov r8d, 0x15
lea rdx, str.CreateThread_failed:
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rsi
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
jmp 0x1400b81bd