Function at 0x14000219e
Capabilities:
Create pipe
Create process on windows
Read file on windows

Disassembly:
push rbp
push rbx
mov eax, 0x1478
call fcn.14000fd50
sub rsp, rax
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1410], rcx
mov qword [rbp + 0x1268], 0
mov qword [rbp + 0x1260], 0
lea rax, [rbp + 0x131f]
mov qword [rbp + 0x13e0], rax
nop
nop
lea rdx, [rbp + 0x131f]
lea rax, [rbp + 0x230]
mov r8, rdx
lea rdx, [0x14010e255]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x131f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x12b0]
mov r8d, 0x68
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x12b0], 0x68
lea rax, [rbp + 0x1290]
mov r8d, 0x18
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x1270], 0x18
mov dword [rbp + 0x1280], 1
mov qword [rbp + 0x1278], 0
lea rcx, [rbp + 0x1270]
lea rdx, [rbp + 0x1260]
lea rax, [rbp + 0x1268]
mov r9d, 0
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreatePipe]
call rax
test eax, eax
sete al
test al, al
je 0x1400022d7
lea rax, str.Failed_to_create_pipe.
mov rdx, rax
mov rax, qword [0x140115160]
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 ebx, 0
jmp 0x140002a3d
mov rax, qword [rbp + 0x1268]
mov r8d, 0
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetHandleInformation]
call rax
mov eax, dword [rbp + 0x12ec]
or ah, 1
mov dword [rbp + 0x12ec], eax
mov rax, qword [rbp + 0x1260]
mov qword [rbp + 0x1308], rax
mov rax, qword [rbp + 0x1260]
mov qword [rbp + 0x1310], rax
lea rax, [rbp + 0x1320]
mov rdx, qword [rbp + 0x1410]
lea r8, str._code.exe
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp + 0x210]
lea rdx, [rbp + 0x1320]
lea r8, str._tunnel
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rbp + 0x1320]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x210]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rdx, rax
lea rax, [rbp + 0x1290]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x12b0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
mov r9d, 0
mov r8d, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
test eax, eax
sete al
test al, al
je 0x140002433
lea rax, str.Failed_to_start_process.
mov rdx, rax
mov rax, qword [0x140115160]
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 + 0x1260]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x1268]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov ebx, 0
jmp 0x140002a1d
mov dword [rbp + 0x134c], 2
lea rdx, [rbp + 0x134c]
lea rax, [rbp + 0x1340]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_1ll__1ll___.duration_int__void__int_const_
lea rax, [rbp + 0x1340]
mov rcx, rax
call method.void_std::this_thread::sleep_for_long_long__std.ratio_1ll__1ll____std::chrono::duration_long_long__std::ratio_1ll__1ll____const_
mov ecx, 0x28
call sym.simulateKeyPress_int_
mov dword [rbp + 0x135c], 0x64
lea rdx, [rbp + 0x135c]
lea rax, [rbp + 0x1350]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_1ll__1000ll___.duration_int__void__int_const_
lea rax, [rbp + 0x1350]
mov rcx, rax
call method.void_std::this_thread::sleep_for_long_long__std.ratio_1ll__1000ll____std::chrono::duration_long_long__std::ratio_1ll__1000ll____const_
mov ecx, 0xd
call sym.simulateKeyPress_int_
mov rax, qword [rbp + 0x1260]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rax, [rbp + 0x1f0]
mov rcx, rax
call fcn.1400d0e50
lea rax, [rbp + 0x1d0]
mov rcx, rax
call fcn.1400d0e50
mov byte [rbp + 0x13ef], 0
mov byte [rbp + 0x13ee], 0
jmp 0x1400025fa
mov eax, dword [rbp + 0x25c]
mov eax, eax
mov byte [rbp + rax + 0x260], 0
lea rdx, [rbp + 0x260]
lea rax, [rbp + 0x230]
mov rcx, rax
call fcn.1400d1c80
lea rax, [rbp + 0x260]
mov rdx, rax
mov rax, qword [0x140115180]
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 rax, [rbp - 0x30]
mov r8d, 0x10
lea rdx, str.code___A_Z0_9__4__A_Z0_9__4_
mov rcx, rax
call method.std::__cxx11::basic_regex_char__std::__cxx11::regex_traits_char___.basic_regex_char_const__std::regex_constants::syntax_option_type_
lea rax, [rbp - 0x10]
mov rcx, rax
call fcn.1400d67f0
lea rcx, [rbp - 0x30]
lea rdx, [rbp - 0x10]
lea rax, [rbp + 0x230]
mov r9d, 0
mov r8, rcx
mov rcx, rax
call sym._ZSt12regex_searchISt11char_traitsIcESaIcESaINSt7__cxx119sub_matchIN9__gnu_cxx17__normal_iteratorIPKcNS3_12basic_stringIcS1_S2
test al, al
je 0x1400025c7
lea rax, [rbp - 0x10]
mov edx, 1
mov rcx, rax
call fcn.140036a60
mov rdx, rax
lea rax, [rbp + 0x1360]
mov rcx, rax
call method.std::__cxx11::sub_match___gnu_cxx::__normal_iterator_char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
lea rdx, [rbp + 0x1360]
lea rax, [rbp + 0x1f0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x1360]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov byte [rbp + 0x13ef], 1
mov ebx, 0
jmp 0x1400025cc
mov ebx, 1
lea rax, [rbp - 0x10]
mov rcx, rax
call fcn.1400d6830
cmp ebx, 1
jne 0x1400025e4
mov ebx, 1
jmp 0x1400025e9
mov ebx, 0
lea rax, [rbp - 0x30]
mov rcx, rax
call method.std::__cxx11::basic_regex_char__std::__cxx11::regex_traits_char___.basic_regex__
cmp ebx, 1
jne 0x14000264f
mov rax, qword [rbp + 0x1268]
lea rcx, [rbp + 0x25c]
lea rdx, [rbp + 0x260]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0xfff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ReadFile]
call rax
test eax, eax
je 0x140002642
mov eax, dword [rbp + 0x25c]
test eax, eax
je 0x140002642
mov eax, 1
jmp 0x140002647
mov eax, 0
test al, al
jne 0x1400024e9
cmp byte [rbp + 0x13ef], 0
je 0x14000271b
lea rax, [rbp + 0x1380]
mov rdx, qword [rbp + 0x1410]
lea r8, str._code.txt
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rdx, [rbp + 0x1380]
lea rax, [rbp - 0x10]
mov r8d, 0x10
mov rcx, rax
call fcn.1400b6ae0
lea rax, [rbp + 0x1380]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x10]
lea rdx, str.Code:
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
lea rax, [rbp + 0x1f0]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char
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, [rbp - 0x10]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
lea rax, str.Code_written_to_code.txt
mov rdx, rax
mov rax, qword [0x140115180]
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, [rbp - 0x10]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
lea rax, [rbp + 0x230]
lea rdx, [0x14010e255]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_const_
jmp 0x140002888
mov eax, dword [rbp + 0x25c]
mov eax, eax
mov byte [rbp + rax + 0x260], 0
lea rdx, [rbp + 0x260]
lea rax, [rbp + 0x230]
mov rcx, rax
call fcn.1400d1c80
lea rax, [rbp + 0x260]
mov rdx, rax
mov rax, qword [0x140115180]
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 rax, [rbp - 0x30]
mov r8d, 0x10
lea rdx, str._https_:___w.____:._w._____:___s____
mov rcx, rax
call method.std::__cxx11::basic_regex_char__std::__cxx11::regex_traits_char___.basic_regex_char_const__std::regex_constants::syntax_option_type_
lea rax, [rbp - 0x10]
mov rcx, rax
call fcn.1400d67f0
lea rcx, [rbp - 0x30]
lea rdx, [rbp - 0x10]
lea rax, [rbp + 0x230]
mov r9d, 0
mov r8, rcx
mov rcx, rax
call sym._ZSt12regex_searchISt11char_traitsIcESaIcESaINSt7__cxx119sub_matchIN9__gnu_cxx17__normal_iteratorIPKcNS3_12basic_stringIcS1_S2
test al, al
je 0x140002855
lea rax, [rbp - 0x10]
mov edx, 1
mov rcx, rax
call fcn.140036a60
mov rdx, rax
lea rax, [rbp + 0x13a0]
mov rcx, rax
call method.std::__cxx11::sub_match___gnu_cxx::__normal_iterator_char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
lea rdx, [rbp + 0x13a0]
lea rax, [rbp + 0x1d0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x13a0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, str.URL_found:
mov rdx, rax
mov rax, qword [0x140115180]
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
lea rax, [rbp + 0x1d0]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char
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 byte [rbp + 0x13ee], 1
mov ebx, 0
jmp 0x14000285a
mov ebx, 1
lea rax, [rbp - 0x10]
mov rcx, rax
call fcn.1400d6830
cmp ebx, 1
jne 0x140002872
mov ebx, 1
jmp 0x140002877
mov ebx, 0
lea rax, [rbp - 0x30]
mov rcx, rax
call method.std::__cxx11::basic_regex_char__std::__cxx11::regex_traits_char___.basic_regex__
cmp ebx, 1
jne 0x1400028dd
mov rax, qword [rbp + 0x1268]
lea rcx, [rbp + 0x25c]
lea rdx, [rbp + 0x260]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0xfff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ReadFile]
call rax
test eax, eax
je 0x1400028d0
mov eax, dword [rbp + 0x25c]
test eax, eax
je 0x1400028d0
mov eax, 1
jmp 0x1400028d5
mov eax, 0
test al, al
jne 0x140002736
cmp byte [rbp + 0x13ee], 0
je 0x1400029a9
lea rax, [rbp + 0x13c0]
mov rdx, qword [rbp + 0x1410]
lea r8, str._url.txt
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rdx, [rbp + 0x13c0]
lea rax, [rbp - 0x10]
mov r8d, 0x10
mov rcx, rax
call fcn.1400b6ae0
lea rax, [rbp + 0x13c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x10]
lea rdx, str.URL:
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
lea rax, [rbp + 0x1d0]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char
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, [rbp - 0x10]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
lea rax, str.URL_written_to_url.txt
mov rdx, rax
mov rax, qword [0x140115180]
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, [rbp - 0x10]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
mov rax, qword [rbp + 0x1290]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov rax, qword [rbp + 0x1268]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x1290]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x1298]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rax, [rbp + 0x1d0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1f0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov ebx, 1
lea rax, [rbp + 0x210]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jne 0x140002a38
mov ebx, 1
jmp 0x140002a3d
mov ebx, 0
lea rax, [rbp + 0x230]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jmp 0x140002b62
add rsp, 0x1478
pop rbx
pop rbp
ret